From 4615ec963ef26cf6905174cd65ac034d6e824110 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Fri, 6 Oct 2023 14:24:30 +0000 Subject: [PATCH] build based on f1b922a --- dev/assets/documenter.js | 331 + dev/assets/logo.svg | 184 + dev/assets/search.js | 267 + dev/assets/themes/documenter-dark.css | 7 + dev/assets/themes/documenter-light.css | 9 + dev/assets/themeswap.js | 66 + dev/assets/warner.js | 49 + dev/bcreader/index.html | 15 + dev/checkpointer/index.html | 2 + dev/conservation/index.html | 15 + dev/couplerstate/index.html | 6 + dev/diagnostics/index.html | 4 + dev/fieldexchanger/index.html | 2 + dev/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 515 ++ dev/generated/sea_breeze/atmos_rhs/index.html | 298 + dev/generated/sea_breeze/land_rhs/index.html | 65 + dev/generated/sea_breeze/ocean_rhs/index.html | 65 + dev/generated/sea_breeze/run/index.html | 149 + dev/images/canvas_coupler.png | Bin 0 -> 396337 bytes dev/images/cplsetup.png | Bin 0 -> 49923 bytes dev/images/cpltimestep.png | Bin 0 -> 23036 bytes dev/index.html | 2 + dev/interfacer/index.html | 12 + dev/performance/index.html | 2 + dev/postprocessor/index.html | 10 + dev/regridder/index.html | 27 + dev/search/index.html | 2 + dev/search_index.js | 3 + dev/siteinfo.js | 1 + dev/testhelper/index.html | 3 + dev/timemanager/index.html | 2 + dev/timestepping/index.html | 2 + dev/utilities/index.html | 2 + index.html | 2 + previews/PR109/assets/documenter.js | 331 + previews/PR109/assets/logo.svg | 184 + previews/PR109/assets/search.js | 267 + .../PR109/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR109/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR109/assets/themeswap.js | 66 + previews/PR109/assets/warner.js | 49 + previews/PR109/couplerstate/index.html | 6 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR109/generated/sea_breeze/run/index.html | 149 + previews/PR109/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR109/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR109/index.html | 2 + previews/PR109/search/index.html | 2 + previews/PR109/search_index.js | 3 + previews/PR109/siteinfo.js | 1 + previews/PR109/timestepping/index.html | 2 + previews/PR113/assets/documenter.js | 331 + previews/PR113/assets/logo.svg | 184 + previews/PR113/assets/search.js | 267 + .../PR113/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR113/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR113/assets/themeswap.js | 66 + previews/PR113/assets/warner.js | 49 + previews/PR113/couplerstate/index.html | 6 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR113/generated/sea_breeze/run/index.html | 149 + previews/PR113/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR113/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR113/index.html | 2 + previews/PR113/search/index.html | 2 + previews/PR113/search_index.js | 3 + previews/PR113/siteinfo.js | 1 + previews/PR113/timestepping/index.html | 2 + previews/PR125/assets/documenter.js | 331 + previews/PR125/assets/logo.svg | 184 + previews/PR125/assets/search.js | 267 + .../PR125/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR125/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR125/assets/themeswap.js | 66 + previews/PR125/assets/warner.js | 49 + previews/PR125/couplerstate/index.html | 6 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR125/generated/sea_breeze/run/index.html | 149 + previews/PR125/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR125/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR125/index.html | 2 + previews/PR125/search/index.html | 2 + previews/PR125/search_index.js | 3 + previews/PR125/siteinfo.js | 1 + previews/PR125/timestepping/index.html | 2 + previews/PR19/assets/documenter.js | 264 + previews/PR19/assets/logo.svg | 138 + previews/PR19/assets/search.js | 251 + .../PR19/assets/themes/documenter-dark.css | 7642 ++++++++++++++++ .../PR19/assets/themes/documenter-light.css | 7630 ++++++++++++++++ previews/PR19/assets/themeswap.js | 66 + .../PR19/boundary_conditions_doc/index.html | 42 + previews/PR19/coupledmodel/index.html | 14 + previews/PR19/couplerstate/index.html | 9 + .../PR19/generated/run_script_v2/index.html | 212 + .../generated/simple_2testcomp/index.html | 281 + previews/PR19/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR19/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR19/index.html | 2 + previews/PR19/search/index.html | 2 + previews/PR19/search_index.js | 3 + previews/PR19/siteinfo.js | 1 + previews/PR19/timestepping/index.html | 2 + previews/PR246/assets/documenter.js | 331 + previews/PR246/assets/logo.svg | 184 + previews/PR246/assets/search.js | 267 + .../PR246/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR246/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR246/assets/themeswap.js | 66 + previews/PR246/assets/warner.js | 49 + previews/PR246/bcreader/index.html | 15 + previews/PR246/conservation/index.html | 22 + previews/PR246/couplerstate/index.html | 6 + previews/PR246/diagnostics/index.html | 4 + .../generated/amip/coupler_driver/index.html | 387 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR246/generated/sea_breeze/run/index.html | 149 + previews/PR246/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR246/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR246/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR246/index.html | 2 + previews/PR246/performance/index.html | 2 + previews/PR246/postprocessor/index.html | 10 + previews/PR246/regridder/index.html | 27 + previews/PR246/search/index.html | 2 + previews/PR246/search_index.js | 3 + previews/PR246/siteinfo.js | 1 + previews/PR246/testhelper/index.html | 3 + previews/PR246/timemanager/index.html | 2 + previews/PR246/timestepping/index.html | 2 + previews/PR246/utilities/index.html | 2 + previews/PR258/assets/documenter.js | 331 + previews/PR258/assets/logo.svg | 184 + previews/PR258/assets/search.js | 267 + .../PR258/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR258/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR258/assets/themeswap.js | 66 + previews/PR258/assets/warner.js | 49 + previews/PR258/bcreader/index.html | 15 + previews/PR258/conservation/index.html | 22 + previews/PR258/couplerstate/index.html | 6 + previews/PR258/diagnostics/index.html | 4 + .../generated/amip/coupler_driver/index.html | 387 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR258/generated/sea_breeze/run/index.html | 149 + previews/PR258/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR258/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR258/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR258/index.html | 2 + previews/PR258/performance/index.html | 2 + previews/PR258/postprocessor/index.html | 10 + previews/PR258/regridder/index.html | 27 + previews/PR258/search/index.html | 2 + previews/PR258/search_index.js | 3 + previews/PR258/siteinfo.js | 1 + previews/PR258/testhelper/index.html | 3 + previews/PR258/timemanager/index.html | 2 + previews/PR258/timestepping/index.html | 2 + previews/PR258/utilities/index.html | 2 + previews/PR265/assets/documenter.js | 331 + previews/PR265/assets/logo.svg | 184 + previews/PR265/assets/search.js | 267 + .../PR265/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR265/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR265/assets/themeswap.js | 66 + previews/PR265/assets/warner.js | 49 + previews/PR265/bcreader/index.html | 15 + previews/PR265/conservation/index.html | 22 + previews/PR265/couplerstate/index.html | 6 + previews/PR265/diagnostics/index.html | 4 + .../generated/amip/coupler_driver/index.html | 387 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR265/generated/sea_breeze/run/index.html | 149 + previews/PR265/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR265/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR265/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR265/index.html | 2 + previews/PR265/performance/index.html | 2 + previews/PR265/postprocessor/index.html | 10 + previews/PR265/regridder/index.html | 27 + previews/PR265/search/index.html | 2 + previews/PR265/search_index.js | 3 + previews/PR265/siteinfo.js | 1 + previews/PR265/testhelper/index.html | 3 + previews/PR265/timemanager/index.html | 2 + previews/PR265/timestepping/index.html | 2 + previews/PR265/utilities/index.html | 2 + previews/PR296/assets/documenter.js | 331 + previews/PR296/assets/logo.svg | 184 + previews/PR296/assets/search.js | 267 + .../PR296/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR296/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR296/assets/themeswap.js | 66 + previews/PR296/assets/warner.js | 49 + previews/PR296/bcreader/index.html | 15 + previews/PR296/conservation/index.html | 22 + previews/PR296/couplerstate/index.html | 6 + previews/PR296/diagnostics/index.html | 4 + .../generated/amip/coupler_driver/index.html | 387 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR296/generated/sea_breeze/run/index.html | 149 + previews/PR296/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR296/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR296/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR296/index.html | 2 + previews/PR296/performance/index.html | 2 + previews/PR296/postprocessor/index.html | 10 + previews/PR296/regridder/index.html | 27 + previews/PR296/search/index.html | 2 + previews/PR296/search_index.js | 3 + previews/PR296/siteinfo.js | 1 + previews/PR296/testhelper/index.html | 3 + previews/PR296/timemanager/index.html | 2 + previews/PR296/timestepping/index.html | 2 + previews/PR296/utilities/index.html | 2 + previews/PR340/assets/documenter.js | 331 + previews/PR340/assets/logo.svg | 184 + previews/PR340/assets/search.js | 267 + .../PR340/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR340/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR340/assets/themeswap.js | 66 + previews/PR340/assets/warner.js | 49 + previews/PR340/bcreader/index.html | 15 + previews/PR340/conservation/index.html | 22 + previews/PR340/couplerstate/index.html | 6 + previews/PR340/diagnostics/index.html | 4 + previews/PR340/fieldexchanger/index.html | 2 + previews/PR340/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 443 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR340/generated/sea_breeze/run/index.html | 149 + previews/PR340/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR340/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR340/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR340/index.html | 2 + previews/PR340/interfacer/index.html | 12 + previews/PR340/performance/index.html | 2 + previews/PR340/postprocessor/index.html | 10 + previews/PR340/regridder/index.html | 27 + previews/PR340/search/index.html | 2 + previews/PR340/search_index.js | 3 + previews/PR340/siteinfo.js | 1 + previews/PR340/testhelper/index.html | 3 + previews/PR340/timemanager/index.html | 2 + previews/PR340/timestepping/index.html | 2 + previews/PR340/utilities/index.html | 2 + previews/PR362/assets/documenter.js | 331 + previews/PR362/assets/logo.svg | 184 + previews/PR362/assets/search.js | 267 + .../PR362/assets/themes/documenter-dark.css | 7 + .../PR362/assets/themes/documenter-light.css | 9 + previews/PR362/assets/themeswap.js | 66 + previews/PR362/assets/warner.js | 49 + previews/PR362/bcreader/index.html | 15 + previews/PR362/conservation/index.html | 22 + previews/PR362/couplerstate/index.html | 6 + previews/PR362/diagnostics/index.html | 4 + previews/PR362/fieldexchanger/index.html | 2 + previews/PR362/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 427 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR362/generated/sea_breeze/run/index.html | 149 + previews/PR362/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR362/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR362/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR362/index.html | 2 + previews/PR362/interfacer/index.html | 12 + previews/PR362/performance/index.html | 2 + previews/PR362/postprocessor/index.html | 10 + previews/PR362/regridder/index.html | 27 + previews/PR362/search/index.html | 2 + previews/PR362/search_index.js | 3 + previews/PR362/siteinfo.js | 1 + previews/PR362/testhelper/index.html | 3 + previews/PR362/timemanager/index.html | 2 + previews/PR362/timestepping/index.html | 2 + previews/PR362/utilities/index.html | 2 + previews/PR379/assets/documenter.js | 331 + previews/PR379/assets/logo.svg | 184 + previews/PR379/assets/search.js | 267 + .../PR379/assets/themes/documenter-dark.css | 7 + .../PR379/assets/themes/documenter-light.css | 9 + previews/PR379/assets/themeswap.js | 66 + previews/PR379/assets/warner.js | 49 + previews/PR379/bcreader/index.html | 15 + previews/PR379/checkpointer/index.html | 2 + previews/PR379/conservation/index.html | 22 + previews/PR379/couplerstate/index.html | 6 + previews/PR379/diagnostics/index.html | 4 + previews/PR379/fieldexchanger/index.html | 2 + previews/PR379/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 412 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR379/generated/sea_breeze/run/index.html | 149 + previews/PR379/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR379/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR379/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR379/index.html | 2 + previews/PR379/interfacer/index.html | 12 + previews/PR379/performance/index.html | 2 + previews/PR379/postprocessor/index.html | 10 + previews/PR379/regridder/index.html | 27 + previews/PR379/search/index.html | 2 + previews/PR379/search_index.js | 3 + previews/PR379/siteinfo.js | 1 + previews/PR379/testhelper/index.html | 3 + previews/PR379/timemanager/index.html | 2 + previews/PR379/timestepping/index.html | 2 + previews/PR379/utilities/index.html | 2 + previews/PR383/assets/documenter.js | 331 + previews/PR383/assets/logo.svg | 184 + previews/PR383/assets/search.js | 267 + .../PR383/assets/themes/documenter-dark.css | 7 + .../PR383/assets/themes/documenter-light.css | 9 + previews/PR383/assets/themeswap.js | 66 + previews/PR383/assets/warner.js | 49 + previews/PR383/bcreader/index.html | 15 + previews/PR383/checkpointer/index.html | 2 + previews/PR383/conservation/index.html | 22 + previews/PR383/couplerstate/index.html | 6 + previews/PR383/diagnostics/index.html | 4 + previews/PR383/fieldexchanger/index.html | 2 + previews/PR383/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 412 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR383/generated/sea_breeze/run/index.html | 149 + previews/PR383/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR383/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR383/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR383/index.html | 2 + previews/PR383/interfacer/index.html | 12 + previews/PR383/performance/index.html | 2 + previews/PR383/postprocessor/index.html | 10 + previews/PR383/regridder/index.html | 27 + previews/PR383/search/index.html | 2 + previews/PR383/search_index.js | 3 + previews/PR383/siteinfo.js | 1 + previews/PR383/testhelper/index.html | 3 + previews/PR383/timemanager/index.html | 2 + previews/PR383/timestepping/index.html | 2 + previews/PR383/utilities/index.html | 2 + previews/PR385/assets/documenter.js | 331 + previews/PR385/assets/logo.svg | 184 + previews/PR385/assets/search.js | 267 + .../PR385/assets/themes/documenter-dark.css | 7 + .../PR385/assets/themes/documenter-light.css | 9 + previews/PR385/assets/themeswap.js | 66 + previews/PR385/assets/warner.js | 49 + previews/PR385/bcreader/index.html | 15 + previews/PR385/checkpointer/index.html | 2 + previews/PR385/conservation/index.html | 22 + previews/PR385/couplerstate/index.html | 6 + previews/PR385/diagnostics/index.html | 4 + previews/PR385/fieldexchanger/index.html | 2 + previews/PR385/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 482 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR385/generated/sea_breeze/run/index.html | 149 + previews/PR385/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR385/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR385/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR385/index.html | 2 + previews/PR385/interfacer/index.html | 12 + previews/PR385/performance/index.html | 2 + previews/PR385/postprocessor/index.html | 10 + previews/PR385/regridder/index.html | 27 + previews/PR385/search/index.html | 2 + previews/PR385/search_index.js | 3 + previews/PR385/siteinfo.js | 1 + previews/PR385/testhelper/index.html | 3 + previews/PR385/timemanager/index.html | 2 + previews/PR385/timestepping/index.html | 2 + previews/PR385/utilities/index.html | 2 + previews/PR4/assets/documenter.js | 264 + previews/PR4/assets/logo.svg | 138 + previews/PR4/assets/search.js | 251 + .../PR4/assets/themes/documenter-dark.css | 7642 ++++++++++++++++ .../PR4/assets/themes/documenter-light.css | 7630 ++++++++++++++++ previews/PR4/assets/themeswap.js | 66 + previews/PR4/couplerstate/index.html | 9 + .../PR4/generated/simple_2testcomp/index.html | 288 + previews/PR4/index.html | 2 + previews/PR4/search/index.html | 2 + previews/PR4/search_index.js | 3 + previews/PR4/siteinfo.js | 1 + previews/PR4/timestepping/index.html | 2 + previews/PR424/assets/documenter.js | 331 + previews/PR424/assets/logo.svg | 184 + previews/PR424/assets/search.js | 267 + .../PR424/assets/themes/documenter-dark.css | 7 + .../PR424/assets/themes/documenter-light.css | 9 + previews/PR424/assets/themeswap.js | 66 + previews/PR424/assets/warner.js | 49 + previews/PR424/bcreader/index.html | 15 + previews/PR424/checkpointer/index.html | 2 + previews/PR424/conservation/index.html | 22 + previews/PR424/couplerstate/index.html | 6 + previews/PR424/diagnostics/index.html | 4 + previews/PR424/fieldexchanger/index.html | 2 + previews/PR424/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 488 ++ .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR424/generated/sea_breeze/run/index.html | 149 + previews/PR424/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR424/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR424/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR424/index.html | 2 + previews/PR424/interfacer/index.html | 12 + previews/PR424/performance/index.html | 2 + previews/PR424/postprocessor/index.html | 10 + previews/PR424/regridder/index.html | 27 + previews/PR424/search/index.html | 2 + previews/PR424/search_index.js | 3 + previews/PR424/siteinfo.js | 1 + previews/PR424/testhelper/index.html | 3 + previews/PR424/timemanager/index.html | 2 + previews/PR424/timestepping/index.html | 2 + previews/PR424/utilities/index.html | 2 + previews/PR430/assets/documenter.js | 331 + previews/PR430/assets/logo.svg | 184 + previews/PR430/assets/search.js | 267 + .../PR430/assets/themes/documenter-dark.css | 7 + .../PR430/assets/themes/documenter-light.css | 9 + previews/PR430/assets/themeswap.js | 66 + previews/PR430/assets/warner.js | 49 + previews/PR430/bcreader/index.html | 15 + previews/PR430/checkpointer/index.html | 2 + previews/PR430/conservation/index.html | 22 + previews/PR430/couplerstate/index.html | 6 + previews/PR430/diagnostics/index.html | 4 + previews/PR430/fieldexchanger/index.html | 2 + previews/PR430/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 486 ++ .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR430/generated/sea_breeze/run/index.html | 149 + previews/PR430/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR430/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR430/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR430/index.html | 2 + previews/PR430/interfacer/index.html | 12 + previews/PR430/performance/index.html | 2 + previews/PR430/postprocessor/index.html | 10 + previews/PR430/regridder/index.html | 27 + previews/PR430/search/index.html | 2 + previews/PR430/search_index.js | 3 + previews/PR430/siteinfo.js | 1 + previews/PR430/testhelper/index.html | 3 + previews/PR430/timemanager/index.html | 2 + previews/PR430/timestepping/index.html | 2 + previews/PR430/utilities/index.html | 2 + previews/PR456/assets/documenter.js | 331 + previews/PR456/assets/logo.svg | 184 + previews/PR456/assets/search.js | 267 + .../PR456/assets/themes/documenter-dark.css | 7 + .../PR456/assets/themes/documenter-light.css | 9 + previews/PR456/assets/themeswap.js | 66 + previews/PR456/assets/warner.js | 49 + previews/PR456/bcreader/index.html | 15 + previews/PR456/checkpointer/index.html | 2 + previews/PR456/conservation/index.html | 15 + previews/PR456/couplerstate/index.html | 6 + previews/PR456/diagnostics/index.html | 4 + previews/PR456/fieldexchanger/index.html | 2 + previews/PR456/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 515 ++ .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR456/generated/sea_breeze/run/index.html | 149 + previews/PR456/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR456/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR456/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR456/index.html | 2 + previews/PR456/interfacer/index.html | 12 + previews/PR456/performance/index.html | 2 + previews/PR456/postprocessor/index.html | 10 + previews/PR456/regridder/index.html | 27 + previews/PR456/search/index.html | 2 + previews/PR456/search_index.js | 3 + previews/PR456/siteinfo.js | 1 + previews/PR456/testhelper/index.html | 3 + previews/PR456/timemanager/index.html | 2 + previews/PR456/timestepping/index.html | 2 + previews/PR456/utilities/index.html | 2 + previews/PR459/assets/documenter.js | 331 + previews/PR459/assets/logo.svg | 184 + previews/PR459/assets/search.js | 267 + .../PR459/assets/themes/documenter-dark.css | 7 + .../PR459/assets/themes/documenter-light.css | 9 + previews/PR459/assets/themeswap.js | 66 + previews/PR459/assets/warner.js | 49 + previews/PR459/bcreader/index.html | 15 + previews/PR459/checkpointer/index.html | 2 + previews/PR459/conservation/index.html | 15 + previews/PR459/couplerstate/index.html | 6 + previews/PR459/diagnostics/index.html | 4 + previews/PR459/fieldexchanger/index.html | 2 + previews/PR459/fluxcalculator/index.html | 4 + .../amip/coupler_driver_modular/index.html | 543 ++ .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR459/generated/sea_breeze/run/index.html | 149 + previews/PR459/images/canvas_coupler.png | Bin 0 -> 396337 bytes previews/PR459/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR459/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR459/index.html | 2 + previews/PR459/interfacer/index.html | 12 + previews/PR459/performance/index.html | 2 + previews/PR459/postprocessor/index.html | 10 + previews/PR459/regridder/index.html | 27 + previews/PR459/search/index.html | 2 + previews/PR459/search_index.js | 3 + previews/PR459/siteinfo.js | 1 + previews/PR459/testhelper/index.html | 3 + previews/PR459/timemanager/index.html | 2 + previews/PR459/timestepping/index.html | 2 + previews/PR459/utilities/index.html | 2 + previews/PR50/assets/documenter.js | 264 + previews/PR50/assets/logo.svg | 184 + previews/PR50/assets/search.js | 251 + .../PR50/assets/themes/documenter-dark.css | 7642 ++++++++++++++++ .../PR50/assets/themes/documenter-light.css | 7630 ++++++++++++++++ previews/PR50/assets/themeswap.js | 66 + previews/PR50/couplerstate/index.html | 9 + previews/PR50/generated/images/tc1_f1.png | Bin 0 -> 15341 bytes previews/PR50/generated/images/tc1_f2.png | Bin 0 -> 24017 bytes previews/PR50/generated/images/tc1_f3.png | Bin 0 -> 31883 bytes previews/PR50/generated/run/index.html | 184 + previews/PR50/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR50/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR50/index.html | 2 + previews/PR50/search/index.html | 2 + previews/PR50/search_index.js | 3 + previews/PR50/siteinfo.js | 1 + previews/PR50/timestepping/index.html | 2 + previews/PR82/assets/documenter.js | 331 + previews/PR82/assets/logo.svg | 184 + previews/PR82/assets/search.js | 267 + .../PR82/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR82/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR82/assets/themeswap.js | 66 + previews/PR82/assets/warner.js | 49 + previews/PR82/couplerstate/index.html | 6 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR82/generated/sea_breeze/run/index.html | 149 + previews/PR82/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR82/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR82/index.html | 2 + previews/PR82/search/index.html | 2 + previews/PR82/search_index.js | 3 + previews/PR82/siteinfo.js | 1 + previews/PR82/timestepping/index.html | 2 + previews/PR91/assets/documenter.js | 264 + previews/PR91/assets/logo.svg | 184 + previews/PR91/assets/search.js | 251 + .../PR91/assets/themes/documenter-dark.css | 7642 ++++++++++++++++ .../PR91/assets/themes/documenter-light.css | 7630 ++++++++++++++++ previews/PR91/assets/themeswap.js | 66 + previews/PR91/couplerstate/index.html | 6 + previews/PR91/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR91/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR91/index.html | 2 + previews/PR91/search/index.html | 2 + previews/PR91/search_index.js | 3 + previews/PR91/siteinfo.js | 1 + previews/PR91/timestepping/index.html | 2 + previews/PR94/assets/documenter.js | 331 + previews/PR94/assets/logo.svg | 184 + previews/PR94/assets/search.js | 267 + .../PR94/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR94/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR94/assets/themeswap.js | 66 + previews/PR94/assets/warner.js | 49 + previews/PR94/couplerstate/index.html | 6 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR94/generated/sea_breeze/run/index.html | 149 + previews/PR94/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR94/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR94/index.html | 2 + previews/PR94/search/index.html | 2 + previews/PR94/search_index.js | 3 + previews/PR94/siteinfo.js | 1 + previews/PR94/timestepping/index.html | 2 + previews/PR98/assets/documenter.js | 331 + previews/PR98/assets/logo.svg | 184 + previews/PR98/assets/search.js | 267 + .../PR98/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR98/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR98/assets/themeswap.js | 66 + previews/PR98/assets/warner.js | 49 + previews/PR98/couplerstate/index.html | 16 + .../generated/sea_breeze/atmos_rhs/index.html | 298 + .../generated/sea_breeze/land_rhs/index.html | 65 + .../generated/sea_breeze/ocean_rhs/index.html | 65 + .../PR98/generated/sea_breeze/run/index.html | 149 + previews/PR98/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR98/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR98/index.html | 2 + previews/PR98/search/index.html | 2 + previews/PR98/search_index.js | 3 + previews/PR98/siteinfo.js | 1 + previews/PR98/timestepping/index.html | 10 + previews/PR99/assets/documenter.js | 264 + previews/PR99/assets/logo.svg | 184 + previews/PR99/assets/search.js | 251 + .../PR99/assets/themes/documenter-dark.css | 7642 ++++++++++++++++ .../PR99/assets/themes/documenter-light.css | 7630 ++++++++++++++++ previews/PR99/assets/themeswap.js | 66 + previews/PR99/couplerstate/index.html | 6 + previews/PR99/images/cplsetup.png | Bin 0 -> 49923 bytes previews/PR99/images/cpltimestep.png | Bin 0 -> 23036 bytes previews/PR99/index.html | 2 + previews/PR99/search/index.html | 2 + previews/PR99/search_index.js | 3 + previews/PR99/siteinfo.js | 1 + previews/PR99/timestepping/index.html | 2 + versions.js | 5 + 651 files changed, 288676 insertions(+) create mode 100644 dev/assets/documenter.js create mode 100644 dev/assets/logo.svg create mode 100644 dev/assets/search.js create mode 100644 dev/assets/themes/documenter-dark.css create mode 100644 dev/assets/themes/documenter-light.css create mode 100644 dev/assets/themeswap.js create mode 100644 dev/assets/warner.js create mode 100644 dev/bcreader/index.html create mode 100644 dev/checkpointer/index.html create mode 100644 dev/conservation/index.html create mode 100644 dev/couplerstate/index.html create mode 100644 dev/diagnostics/index.html create mode 100644 dev/fieldexchanger/index.html create mode 100644 dev/fluxcalculator/index.html create mode 100644 dev/generated/amip/coupler_driver_modular/index.html create mode 100644 dev/generated/sea_breeze/atmos_rhs/index.html create mode 100644 dev/generated/sea_breeze/land_rhs/index.html create mode 100644 dev/generated/sea_breeze/ocean_rhs/index.html create mode 100644 dev/generated/sea_breeze/run/index.html create mode 100644 dev/images/canvas_coupler.png create mode 100644 dev/images/cplsetup.png create mode 100644 dev/images/cpltimestep.png create mode 100644 dev/index.html create mode 100644 dev/interfacer/index.html create mode 100644 dev/performance/index.html create mode 100644 dev/postprocessor/index.html create mode 100644 dev/regridder/index.html create mode 100644 dev/search/index.html create mode 100644 dev/search_index.js create mode 100644 dev/siteinfo.js create mode 100644 dev/testhelper/index.html create mode 100644 dev/timemanager/index.html create mode 100644 dev/timestepping/index.html create mode 100644 dev/utilities/index.html create mode 100644 index.html create mode 100644 previews/PR109/assets/documenter.js create mode 100644 previews/PR109/assets/logo.svg create mode 100644 previews/PR109/assets/search.js create mode 100644 previews/PR109/assets/themes/documenter-dark.css create mode 100644 previews/PR109/assets/themes/documenter-light.css create mode 100644 previews/PR109/assets/themeswap.js create mode 100644 previews/PR109/assets/warner.js create mode 100644 previews/PR109/couplerstate/index.html create mode 100644 previews/PR109/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR109/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR109/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR109/generated/sea_breeze/run/index.html create mode 100644 previews/PR109/images/cplsetup.png create mode 100644 previews/PR109/images/cpltimestep.png create mode 100644 previews/PR109/index.html create mode 100644 previews/PR109/search/index.html create mode 100644 previews/PR109/search_index.js create mode 100644 previews/PR109/siteinfo.js create mode 100644 previews/PR109/timestepping/index.html create mode 100644 previews/PR113/assets/documenter.js create mode 100644 previews/PR113/assets/logo.svg create mode 100644 previews/PR113/assets/search.js create mode 100644 previews/PR113/assets/themes/documenter-dark.css create mode 100644 previews/PR113/assets/themes/documenter-light.css create mode 100644 previews/PR113/assets/themeswap.js create mode 100644 previews/PR113/assets/warner.js create mode 100644 previews/PR113/couplerstate/index.html create mode 100644 previews/PR113/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR113/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR113/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR113/generated/sea_breeze/run/index.html create mode 100644 previews/PR113/images/cplsetup.png create mode 100644 previews/PR113/images/cpltimestep.png create mode 100644 previews/PR113/index.html create mode 100644 previews/PR113/search/index.html create mode 100644 previews/PR113/search_index.js create mode 100644 previews/PR113/siteinfo.js create mode 100644 previews/PR113/timestepping/index.html create mode 100644 previews/PR125/assets/documenter.js create mode 100644 previews/PR125/assets/logo.svg create mode 100644 previews/PR125/assets/search.js create mode 100644 previews/PR125/assets/themes/documenter-dark.css create mode 100644 previews/PR125/assets/themes/documenter-light.css create mode 100644 previews/PR125/assets/themeswap.js create mode 100644 previews/PR125/assets/warner.js create mode 100644 previews/PR125/couplerstate/index.html create mode 100644 previews/PR125/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR125/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR125/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR125/generated/sea_breeze/run/index.html create mode 100644 previews/PR125/images/cplsetup.png create mode 100644 previews/PR125/images/cpltimestep.png create mode 100644 previews/PR125/index.html create mode 100644 previews/PR125/search/index.html create mode 100644 previews/PR125/search_index.js create mode 100644 previews/PR125/siteinfo.js create mode 100644 previews/PR125/timestepping/index.html create mode 100644 previews/PR19/assets/documenter.js create mode 100644 previews/PR19/assets/logo.svg create mode 100644 previews/PR19/assets/search.js create mode 100644 previews/PR19/assets/themes/documenter-dark.css create mode 100644 previews/PR19/assets/themes/documenter-light.css create mode 100644 previews/PR19/assets/themeswap.js create mode 100644 previews/PR19/boundary_conditions_doc/index.html create mode 100644 previews/PR19/coupledmodel/index.html create mode 100644 previews/PR19/couplerstate/index.html create mode 100644 previews/PR19/generated/run_script_v2/index.html create mode 100644 previews/PR19/generated/simple_2testcomp/index.html create mode 100644 previews/PR19/images/cplsetup.png create mode 100644 previews/PR19/images/cpltimestep.png create mode 100644 previews/PR19/index.html create mode 100644 previews/PR19/search/index.html create mode 100644 previews/PR19/search_index.js create mode 100644 previews/PR19/siteinfo.js create mode 100644 previews/PR19/timestepping/index.html create mode 100644 previews/PR246/assets/documenter.js create mode 100644 previews/PR246/assets/logo.svg create mode 100644 previews/PR246/assets/search.js create mode 100644 previews/PR246/assets/themes/documenter-dark.css create mode 100644 previews/PR246/assets/themes/documenter-light.css create mode 100644 previews/PR246/assets/themeswap.js create mode 100644 previews/PR246/assets/warner.js create mode 100644 previews/PR246/bcreader/index.html create mode 100644 previews/PR246/conservation/index.html create mode 100644 previews/PR246/couplerstate/index.html create mode 100644 previews/PR246/diagnostics/index.html create mode 100644 previews/PR246/generated/amip/coupler_driver/index.html create mode 100644 previews/PR246/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR246/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR246/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR246/generated/sea_breeze/run/index.html create mode 100644 previews/PR246/images/canvas_coupler.png create mode 100644 previews/PR246/images/cplsetup.png create mode 100644 previews/PR246/images/cpltimestep.png create mode 100644 previews/PR246/index.html create mode 100644 previews/PR246/performance/index.html create mode 100644 previews/PR246/postprocessor/index.html create mode 100644 previews/PR246/regridder/index.html create mode 100644 previews/PR246/search/index.html create mode 100644 previews/PR246/search_index.js create mode 100644 previews/PR246/siteinfo.js create mode 100644 previews/PR246/testhelper/index.html create mode 100644 previews/PR246/timemanager/index.html create mode 100644 previews/PR246/timestepping/index.html create mode 100644 previews/PR246/utilities/index.html create mode 100644 previews/PR258/assets/documenter.js create mode 100644 previews/PR258/assets/logo.svg create mode 100644 previews/PR258/assets/search.js create mode 100644 previews/PR258/assets/themes/documenter-dark.css create mode 100644 previews/PR258/assets/themes/documenter-light.css create mode 100644 previews/PR258/assets/themeswap.js create mode 100644 previews/PR258/assets/warner.js create mode 100644 previews/PR258/bcreader/index.html create mode 100644 previews/PR258/conservation/index.html create mode 100644 previews/PR258/couplerstate/index.html create mode 100644 previews/PR258/diagnostics/index.html create mode 100644 previews/PR258/generated/amip/coupler_driver/index.html create mode 100644 previews/PR258/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR258/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR258/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR258/generated/sea_breeze/run/index.html create mode 100644 previews/PR258/images/canvas_coupler.png create mode 100644 previews/PR258/images/cplsetup.png create mode 100644 previews/PR258/images/cpltimestep.png create mode 100644 previews/PR258/index.html create mode 100644 previews/PR258/performance/index.html create mode 100644 previews/PR258/postprocessor/index.html create mode 100644 previews/PR258/regridder/index.html create mode 100644 previews/PR258/search/index.html create mode 100644 previews/PR258/search_index.js create mode 100644 previews/PR258/siteinfo.js create mode 100644 previews/PR258/testhelper/index.html create mode 100644 previews/PR258/timemanager/index.html create mode 100644 previews/PR258/timestepping/index.html create mode 100644 previews/PR258/utilities/index.html create mode 100644 previews/PR265/assets/documenter.js create mode 100644 previews/PR265/assets/logo.svg create mode 100644 previews/PR265/assets/search.js create mode 100644 previews/PR265/assets/themes/documenter-dark.css create mode 100644 previews/PR265/assets/themes/documenter-light.css create mode 100644 previews/PR265/assets/themeswap.js create mode 100644 previews/PR265/assets/warner.js create mode 100644 previews/PR265/bcreader/index.html create mode 100644 previews/PR265/conservation/index.html create mode 100644 previews/PR265/couplerstate/index.html create mode 100644 previews/PR265/diagnostics/index.html create mode 100644 previews/PR265/generated/amip/coupler_driver/index.html create mode 100644 previews/PR265/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR265/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR265/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR265/generated/sea_breeze/run/index.html create mode 100644 previews/PR265/images/canvas_coupler.png create mode 100644 previews/PR265/images/cplsetup.png create mode 100644 previews/PR265/images/cpltimestep.png create mode 100644 previews/PR265/index.html create mode 100644 previews/PR265/performance/index.html create mode 100644 previews/PR265/postprocessor/index.html create mode 100644 previews/PR265/regridder/index.html create mode 100644 previews/PR265/search/index.html create mode 100644 previews/PR265/search_index.js create mode 100644 previews/PR265/siteinfo.js create mode 100644 previews/PR265/testhelper/index.html create mode 100644 previews/PR265/timemanager/index.html create mode 100644 previews/PR265/timestepping/index.html create mode 100644 previews/PR265/utilities/index.html create mode 100644 previews/PR296/assets/documenter.js create mode 100644 previews/PR296/assets/logo.svg create mode 100644 previews/PR296/assets/search.js create mode 100644 previews/PR296/assets/themes/documenter-dark.css create mode 100644 previews/PR296/assets/themes/documenter-light.css create mode 100644 previews/PR296/assets/themeswap.js create mode 100644 previews/PR296/assets/warner.js create mode 100644 previews/PR296/bcreader/index.html create mode 100644 previews/PR296/conservation/index.html create mode 100644 previews/PR296/couplerstate/index.html create mode 100644 previews/PR296/diagnostics/index.html create mode 100644 previews/PR296/generated/amip/coupler_driver/index.html create mode 100644 previews/PR296/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR296/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR296/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR296/generated/sea_breeze/run/index.html create mode 100644 previews/PR296/images/canvas_coupler.png create mode 100644 previews/PR296/images/cplsetup.png create mode 100644 previews/PR296/images/cpltimestep.png create mode 100644 previews/PR296/index.html create mode 100644 previews/PR296/performance/index.html create mode 100644 previews/PR296/postprocessor/index.html create mode 100644 previews/PR296/regridder/index.html create mode 100644 previews/PR296/search/index.html create mode 100644 previews/PR296/search_index.js create mode 100644 previews/PR296/siteinfo.js create mode 100644 previews/PR296/testhelper/index.html create mode 100644 previews/PR296/timemanager/index.html create mode 100644 previews/PR296/timestepping/index.html create mode 100644 previews/PR296/utilities/index.html create mode 100644 previews/PR340/assets/documenter.js create mode 100644 previews/PR340/assets/logo.svg create mode 100644 previews/PR340/assets/search.js create mode 100644 previews/PR340/assets/themes/documenter-dark.css create mode 100644 previews/PR340/assets/themes/documenter-light.css create mode 100644 previews/PR340/assets/themeswap.js create mode 100644 previews/PR340/assets/warner.js create mode 100644 previews/PR340/bcreader/index.html create mode 100644 previews/PR340/conservation/index.html create mode 100644 previews/PR340/couplerstate/index.html create mode 100644 previews/PR340/diagnostics/index.html create mode 100644 previews/PR340/fieldexchanger/index.html create mode 100644 previews/PR340/fluxcalculator/index.html create mode 100644 previews/PR340/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR340/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR340/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR340/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR340/generated/sea_breeze/run/index.html create mode 100644 previews/PR340/images/canvas_coupler.png create mode 100644 previews/PR340/images/cplsetup.png create mode 100644 previews/PR340/images/cpltimestep.png create mode 100644 previews/PR340/index.html create mode 100644 previews/PR340/interfacer/index.html create mode 100644 previews/PR340/performance/index.html create mode 100644 previews/PR340/postprocessor/index.html create mode 100644 previews/PR340/regridder/index.html create mode 100644 previews/PR340/search/index.html create mode 100644 previews/PR340/search_index.js create mode 100644 previews/PR340/siteinfo.js create mode 100644 previews/PR340/testhelper/index.html create mode 100644 previews/PR340/timemanager/index.html create mode 100644 previews/PR340/timestepping/index.html create mode 100644 previews/PR340/utilities/index.html create mode 100644 previews/PR362/assets/documenter.js create mode 100644 previews/PR362/assets/logo.svg create mode 100644 previews/PR362/assets/search.js create mode 100644 previews/PR362/assets/themes/documenter-dark.css create mode 100644 previews/PR362/assets/themes/documenter-light.css create mode 100644 previews/PR362/assets/themeswap.js create mode 100644 previews/PR362/assets/warner.js create mode 100644 previews/PR362/bcreader/index.html create mode 100644 previews/PR362/conservation/index.html create mode 100644 previews/PR362/couplerstate/index.html create mode 100644 previews/PR362/diagnostics/index.html create mode 100644 previews/PR362/fieldexchanger/index.html create mode 100644 previews/PR362/fluxcalculator/index.html create mode 100644 previews/PR362/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR362/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR362/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR362/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR362/generated/sea_breeze/run/index.html create mode 100644 previews/PR362/images/canvas_coupler.png create mode 100644 previews/PR362/images/cplsetup.png create mode 100644 previews/PR362/images/cpltimestep.png create mode 100644 previews/PR362/index.html create mode 100644 previews/PR362/interfacer/index.html create mode 100644 previews/PR362/performance/index.html create mode 100644 previews/PR362/postprocessor/index.html create mode 100644 previews/PR362/regridder/index.html create mode 100644 previews/PR362/search/index.html create mode 100644 previews/PR362/search_index.js create mode 100644 previews/PR362/siteinfo.js create mode 100644 previews/PR362/testhelper/index.html create mode 100644 previews/PR362/timemanager/index.html create mode 100644 previews/PR362/timestepping/index.html create mode 100644 previews/PR362/utilities/index.html create mode 100644 previews/PR379/assets/documenter.js create mode 100644 previews/PR379/assets/logo.svg create mode 100644 previews/PR379/assets/search.js create mode 100644 previews/PR379/assets/themes/documenter-dark.css create mode 100644 previews/PR379/assets/themes/documenter-light.css create mode 100644 previews/PR379/assets/themeswap.js create mode 100644 previews/PR379/assets/warner.js create mode 100644 previews/PR379/bcreader/index.html create mode 100644 previews/PR379/checkpointer/index.html create mode 100644 previews/PR379/conservation/index.html create mode 100644 previews/PR379/couplerstate/index.html create mode 100644 previews/PR379/diagnostics/index.html create mode 100644 previews/PR379/fieldexchanger/index.html create mode 100644 previews/PR379/fluxcalculator/index.html create mode 100644 previews/PR379/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR379/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR379/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR379/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR379/generated/sea_breeze/run/index.html create mode 100644 previews/PR379/images/canvas_coupler.png create mode 100644 previews/PR379/images/cplsetup.png create mode 100644 previews/PR379/images/cpltimestep.png create mode 100644 previews/PR379/index.html create mode 100644 previews/PR379/interfacer/index.html create mode 100644 previews/PR379/performance/index.html create mode 100644 previews/PR379/postprocessor/index.html create mode 100644 previews/PR379/regridder/index.html create mode 100644 previews/PR379/search/index.html create mode 100644 previews/PR379/search_index.js create mode 100644 previews/PR379/siteinfo.js create mode 100644 previews/PR379/testhelper/index.html create mode 100644 previews/PR379/timemanager/index.html create mode 100644 previews/PR379/timestepping/index.html create mode 100644 previews/PR379/utilities/index.html create mode 100644 previews/PR383/assets/documenter.js create mode 100644 previews/PR383/assets/logo.svg create mode 100644 previews/PR383/assets/search.js create mode 100644 previews/PR383/assets/themes/documenter-dark.css create mode 100644 previews/PR383/assets/themes/documenter-light.css create mode 100644 previews/PR383/assets/themeswap.js create mode 100644 previews/PR383/assets/warner.js create mode 100644 previews/PR383/bcreader/index.html create mode 100644 previews/PR383/checkpointer/index.html create mode 100644 previews/PR383/conservation/index.html create mode 100644 previews/PR383/couplerstate/index.html create mode 100644 previews/PR383/diagnostics/index.html create mode 100644 previews/PR383/fieldexchanger/index.html create mode 100644 previews/PR383/fluxcalculator/index.html create mode 100644 previews/PR383/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR383/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR383/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR383/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR383/generated/sea_breeze/run/index.html create mode 100644 previews/PR383/images/canvas_coupler.png create mode 100644 previews/PR383/images/cplsetup.png create mode 100644 previews/PR383/images/cpltimestep.png create mode 100644 previews/PR383/index.html create mode 100644 previews/PR383/interfacer/index.html create mode 100644 previews/PR383/performance/index.html create mode 100644 previews/PR383/postprocessor/index.html create mode 100644 previews/PR383/regridder/index.html create mode 100644 previews/PR383/search/index.html create mode 100644 previews/PR383/search_index.js create mode 100644 previews/PR383/siteinfo.js create mode 100644 previews/PR383/testhelper/index.html create mode 100644 previews/PR383/timemanager/index.html create mode 100644 previews/PR383/timestepping/index.html create mode 100644 previews/PR383/utilities/index.html create mode 100644 previews/PR385/assets/documenter.js create mode 100644 previews/PR385/assets/logo.svg create mode 100644 previews/PR385/assets/search.js create mode 100644 previews/PR385/assets/themes/documenter-dark.css create mode 100644 previews/PR385/assets/themes/documenter-light.css create mode 100644 previews/PR385/assets/themeswap.js create mode 100644 previews/PR385/assets/warner.js create mode 100644 previews/PR385/bcreader/index.html create mode 100644 previews/PR385/checkpointer/index.html create mode 100644 previews/PR385/conservation/index.html create mode 100644 previews/PR385/couplerstate/index.html create mode 100644 previews/PR385/diagnostics/index.html create mode 100644 previews/PR385/fieldexchanger/index.html create mode 100644 previews/PR385/fluxcalculator/index.html create mode 100644 previews/PR385/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR385/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR385/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR385/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR385/generated/sea_breeze/run/index.html create mode 100644 previews/PR385/images/canvas_coupler.png create mode 100644 previews/PR385/images/cplsetup.png create mode 100644 previews/PR385/images/cpltimestep.png create mode 100644 previews/PR385/index.html create mode 100644 previews/PR385/interfacer/index.html create mode 100644 previews/PR385/performance/index.html create mode 100644 previews/PR385/postprocessor/index.html create mode 100644 previews/PR385/regridder/index.html create mode 100644 previews/PR385/search/index.html create mode 100644 previews/PR385/search_index.js create mode 100644 previews/PR385/siteinfo.js create mode 100644 previews/PR385/testhelper/index.html create mode 100644 previews/PR385/timemanager/index.html create mode 100644 previews/PR385/timestepping/index.html create mode 100644 previews/PR385/utilities/index.html create mode 100644 previews/PR4/assets/documenter.js create mode 100644 previews/PR4/assets/logo.svg create mode 100644 previews/PR4/assets/search.js create mode 100644 previews/PR4/assets/themes/documenter-dark.css create mode 100644 previews/PR4/assets/themes/documenter-light.css create mode 100644 previews/PR4/assets/themeswap.js create mode 100644 previews/PR4/couplerstate/index.html create mode 100644 previews/PR4/generated/simple_2testcomp/index.html create mode 100644 previews/PR4/index.html create mode 100644 previews/PR4/search/index.html create mode 100644 previews/PR4/search_index.js create mode 100644 previews/PR4/siteinfo.js create mode 100644 previews/PR4/timestepping/index.html create mode 100644 previews/PR424/assets/documenter.js create mode 100644 previews/PR424/assets/logo.svg create mode 100644 previews/PR424/assets/search.js create mode 100644 previews/PR424/assets/themes/documenter-dark.css create mode 100644 previews/PR424/assets/themes/documenter-light.css create mode 100644 previews/PR424/assets/themeswap.js create mode 100644 previews/PR424/assets/warner.js create mode 100644 previews/PR424/bcreader/index.html create mode 100644 previews/PR424/checkpointer/index.html create mode 100644 previews/PR424/conservation/index.html create mode 100644 previews/PR424/couplerstate/index.html create mode 100644 previews/PR424/diagnostics/index.html create mode 100644 previews/PR424/fieldexchanger/index.html create mode 100644 previews/PR424/fluxcalculator/index.html create mode 100644 previews/PR424/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR424/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR424/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR424/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR424/generated/sea_breeze/run/index.html create mode 100644 previews/PR424/images/canvas_coupler.png create mode 100644 previews/PR424/images/cplsetup.png create mode 100644 previews/PR424/images/cpltimestep.png create mode 100644 previews/PR424/index.html create mode 100644 previews/PR424/interfacer/index.html create mode 100644 previews/PR424/performance/index.html create mode 100644 previews/PR424/postprocessor/index.html create mode 100644 previews/PR424/regridder/index.html create mode 100644 previews/PR424/search/index.html create mode 100644 previews/PR424/search_index.js create mode 100644 previews/PR424/siteinfo.js create mode 100644 previews/PR424/testhelper/index.html create mode 100644 previews/PR424/timemanager/index.html create mode 100644 previews/PR424/timestepping/index.html create mode 100644 previews/PR424/utilities/index.html create mode 100644 previews/PR430/assets/documenter.js create mode 100644 previews/PR430/assets/logo.svg create mode 100644 previews/PR430/assets/search.js create mode 100644 previews/PR430/assets/themes/documenter-dark.css create mode 100644 previews/PR430/assets/themes/documenter-light.css create mode 100644 previews/PR430/assets/themeswap.js create mode 100644 previews/PR430/assets/warner.js create mode 100644 previews/PR430/bcreader/index.html create mode 100644 previews/PR430/checkpointer/index.html create mode 100644 previews/PR430/conservation/index.html create mode 100644 previews/PR430/couplerstate/index.html create mode 100644 previews/PR430/diagnostics/index.html create mode 100644 previews/PR430/fieldexchanger/index.html create mode 100644 previews/PR430/fluxcalculator/index.html create mode 100644 previews/PR430/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR430/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR430/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR430/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR430/generated/sea_breeze/run/index.html create mode 100644 previews/PR430/images/canvas_coupler.png create mode 100644 previews/PR430/images/cplsetup.png create mode 100644 previews/PR430/images/cpltimestep.png create mode 100644 previews/PR430/index.html create mode 100644 previews/PR430/interfacer/index.html create mode 100644 previews/PR430/performance/index.html create mode 100644 previews/PR430/postprocessor/index.html create mode 100644 previews/PR430/regridder/index.html create mode 100644 previews/PR430/search/index.html create mode 100644 previews/PR430/search_index.js create mode 100644 previews/PR430/siteinfo.js create mode 100644 previews/PR430/testhelper/index.html create mode 100644 previews/PR430/timemanager/index.html create mode 100644 previews/PR430/timestepping/index.html create mode 100644 previews/PR430/utilities/index.html create mode 100644 previews/PR456/assets/documenter.js create mode 100644 previews/PR456/assets/logo.svg create mode 100644 previews/PR456/assets/search.js create mode 100644 previews/PR456/assets/themes/documenter-dark.css create mode 100644 previews/PR456/assets/themes/documenter-light.css create mode 100644 previews/PR456/assets/themeswap.js create mode 100644 previews/PR456/assets/warner.js create mode 100644 previews/PR456/bcreader/index.html create mode 100644 previews/PR456/checkpointer/index.html create mode 100644 previews/PR456/conservation/index.html create mode 100644 previews/PR456/couplerstate/index.html create mode 100644 previews/PR456/diagnostics/index.html create mode 100644 previews/PR456/fieldexchanger/index.html create mode 100644 previews/PR456/fluxcalculator/index.html create mode 100644 previews/PR456/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR456/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR456/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR456/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR456/generated/sea_breeze/run/index.html create mode 100644 previews/PR456/images/canvas_coupler.png create mode 100644 previews/PR456/images/cplsetup.png create mode 100644 previews/PR456/images/cpltimestep.png create mode 100644 previews/PR456/index.html create mode 100644 previews/PR456/interfacer/index.html create mode 100644 previews/PR456/performance/index.html create mode 100644 previews/PR456/postprocessor/index.html create mode 100644 previews/PR456/regridder/index.html create mode 100644 previews/PR456/search/index.html create mode 100644 previews/PR456/search_index.js create mode 100644 previews/PR456/siteinfo.js create mode 100644 previews/PR456/testhelper/index.html create mode 100644 previews/PR456/timemanager/index.html create mode 100644 previews/PR456/timestepping/index.html create mode 100644 previews/PR456/utilities/index.html create mode 100644 previews/PR459/assets/documenter.js create mode 100644 previews/PR459/assets/logo.svg create mode 100644 previews/PR459/assets/search.js create mode 100644 previews/PR459/assets/themes/documenter-dark.css create mode 100644 previews/PR459/assets/themes/documenter-light.css create mode 100644 previews/PR459/assets/themeswap.js create mode 100644 previews/PR459/assets/warner.js create mode 100644 previews/PR459/bcreader/index.html create mode 100644 previews/PR459/checkpointer/index.html create mode 100644 previews/PR459/conservation/index.html create mode 100644 previews/PR459/couplerstate/index.html create mode 100644 previews/PR459/diagnostics/index.html create mode 100644 previews/PR459/fieldexchanger/index.html create mode 100644 previews/PR459/fluxcalculator/index.html create mode 100644 previews/PR459/generated/amip/coupler_driver_modular/index.html create mode 100644 previews/PR459/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR459/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR459/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR459/generated/sea_breeze/run/index.html create mode 100644 previews/PR459/images/canvas_coupler.png create mode 100644 previews/PR459/images/cplsetup.png create mode 100644 previews/PR459/images/cpltimestep.png create mode 100644 previews/PR459/index.html create mode 100644 previews/PR459/interfacer/index.html create mode 100644 previews/PR459/performance/index.html create mode 100644 previews/PR459/postprocessor/index.html create mode 100644 previews/PR459/regridder/index.html create mode 100644 previews/PR459/search/index.html create mode 100644 previews/PR459/search_index.js create mode 100644 previews/PR459/siteinfo.js create mode 100644 previews/PR459/testhelper/index.html create mode 100644 previews/PR459/timemanager/index.html create mode 100644 previews/PR459/timestepping/index.html create mode 100644 previews/PR459/utilities/index.html create mode 100644 previews/PR50/assets/documenter.js create mode 100644 previews/PR50/assets/logo.svg create mode 100644 previews/PR50/assets/search.js create mode 100644 previews/PR50/assets/themes/documenter-dark.css create mode 100644 previews/PR50/assets/themes/documenter-light.css create mode 100644 previews/PR50/assets/themeswap.js create mode 100644 previews/PR50/couplerstate/index.html create mode 100644 previews/PR50/generated/images/tc1_f1.png create mode 100644 previews/PR50/generated/images/tc1_f2.png create mode 100644 previews/PR50/generated/images/tc1_f3.png create mode 100644 previews/PR50/generated/run/index.html create mode 100644 previews/PR50/images/cplsetup.png create mode 100644 previews/PR50/images/cpltimestep.png create mode 100644 previews/PR50/index.html create mode 100644 previews/PR50/search/index.html create mode 100644 previews/PR50/search_index.js create mode 100644 previews/PR50/siteinfo.js create mode 100644 previews/PR50/timestepping/index.html create mode 100644 previews/PR82/assets/documenter.js create mode 100644 previews/PR82/assets/logo.svg create mode 100644 previews/PR82/assets/search.js create mode 100644 previews/PR82/assets/themes/documenter-dark.css create mode 100644 previews/PR82/assets/themes/documenter-light.css create mode 100644 previews/PR82/assets/themeswap.js create mode 100644 previews/PR82/assets/warner.js create mode 100644 previews/PR82/couplerstate/index.html create mode 100644 previews/PR82/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR82/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR82/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR82/generated/sea_breeze/run/index.html create mode 100644 previews/PR82/images/cplsetup.png create mode 100644 previews/PR82/images/cpltimestep.png create mode 100644 previews/PR82/index.html create mode 100644 previews/PR82/search/index.html create mode 100644 previews/PR82/search_index.js create mode 100644 previews/PR82/siteinfo.js create mode 100644 previews/PR82/timestepping/index.html create mode 100644 previews/PR91/assets/documenter.js create mode 100644 previews/PR91/assets/logo.svg create mode 100644 previews/PR91/assets/search.js create mode 100644 previews/PR91/assets/themes/documenter-dark.css create mode 100644 previews/PR91/assets/themes/documenter-light.css create mode 100644 previews/PR91/assets/themeswap.js create mode 100644 previews/PR91/couplerstate/index.html create mode 100644 previews/PR91/images/cplsetup.png create mode 100644 previews/PR91/images/cpltimestep.png create mode 100644 previews/PR91/index.html create mode 100644 previews/PR91/search/index.html create mode 100644 previews/PR91/search_index.js create mode 100644 previews/PR91/siteinfo.js create mode 100644 previews/PR91/timestepping/index.html create mode 100644 previews/PR94/assets/documenter.js create mode 100644 previews/PR94/assets/logo.svg create mode 100644 previews/PR94/assets/search.js create mode 100644 previews/PR94/assets/themes/documenter-dark.css create mode 100644 previews/PR94/assets/themes/documenter-light.css create mode 100644 previews/PR94/assets/themeswap.js create mode 100644 previews/PR94/assets/warner.js create mode 100644 previews/PR94/couplerstate/index.html create mode 100644 previews/PR94/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR94/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR94/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR94/generated/sea_breeze/run/index.html create mode 100644 previews/PR94/images/cplsetup.png create mode 100644 previews/PR94/images/cpltimestep.png create mode 100644 previews/PR94/index.html create mode 100644 previews/PR94/search/index.html create mode 100644 previews/PR94/search_index.js create mode 100644 previews/PR94/siteinfo.js create mode 100644 previews/PR94/timestepping/index.html create mode 100644 previews/PR98/assets/documenter.js create mode 100644 previews/PR98/assets/logo.svg create mode 100644 previews/PR98/assets/search.js create mode 100644 previews/PR98/assets/themes/documenter-dark.css create mode 100644 previews/PR98/assets/themes/documenter-light.css create mode 100644 previews/PR98/assets/themeswap.js create mode 100644 previews/PR98/assets/warner.js create mode 100644 previews/PR98/couplerstate/index.html create mode 100644 previews/PR98/generated/sea_breeze/atmos_rhs/index.html create mode 100644 previews/PR98/generated/sea_breeze/land_rhs/index.html create mode 100644 previews/PR98/generated/sea_breeze/ocean_rhs/index.html create mode 100644 previews/PR98/generated/sea_breeze/run/index.html create mode 100644 previews/PR98/images/cplsetup.png create mode 100644 previews/PR98/images/cpltimestep.png create mode 100644 previews/PR98/index.html create mode 100644 previews/PR98/search/index.html create mode 100644 previews/PR98/search_index.js create mode 100644 previews/PR98/siteinfo.js create mode 100644 previews/PR98/timestepping/index.html create mode 100644 previews/PR99/assets/documenter.js create mode 100644 previews/PR99/assets/logo.svg create mode 100644 previews/PR99/assets/search.js create mode 100644 previews/PR99/assets/themes/documenter-dark.css create mode 100644 previews/PR99/assets/themes/documenter-light.css create mode 100644 previews/PR99/assets/themeswap.js create mode 100644 previews/PR99/couplerstate/index.html create mode 100644 previews/PR99/images/cplsetup.png create mode 100644 previews/PR99/images/cpltimestep.png create mode 100644 previews/PR99/index.html create mode 100644 previews/PR99/search/index.html create mode 100644 previews/PR99/search_index.js create mode 100644 previews/PR99/siteinfo.js create mode 100644 previews/PR99/timestepping/index.html create mode 100644 versions.js diff --git a/dev/assets/documenter.js b/dev/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/dev/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/dev/assets/logo.svg b/dev/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/dev/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dev/assets/search.js b/dev/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/dev/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/dev/assets/themes/documenter-dark.css b/dev/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/dev/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/dev/assets/themes/documenter-light.css b/dev/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/dev/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/dev/assets/themeswap.js b/dev/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/dev/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/dev/assets/warner.js b/dev/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/dev/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/dev/bcreader/index.html b/dev/bcreader/index.html new file mode 100644 index 000000000..10ebb93b9 --- /dev/null +++ b/dev/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

    BCReader

    This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

    BCReader API

    ClimaCoupler.BCReader.BCFileInfoType
    BCFileInfo

    Stores information specific to each boundary condition from a file and each variable.

    Inputs:

    • bcfile_dir::b # directory of the BC file
    • comms_ctx::X # communication context used for MPI
    • hdoutfileroot::S # filename root for regridded data
    • varname::V # name of the variable
    • all_dates::D # vector of all dates contained in the original data file
    • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
    • scaling_function::O # function that scales, offsets or transforms the raw variable
    • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
    • segment_idx::Vector{Int} # index of the monthly data in the file
    • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
    • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
    • interpolate_daily::Bool # switch to trigger daily interpolation
    source
    ClimaCoupler.BCReader.bcfile_info_initFunction
    bcfile_info_init(
    +    FT,
    +    bcfile_dir,
    +    datafile_rll,
    +    varname,
    +    boundary_space,
    +    comms_ctx;
    +    interpolate_daily = false,
    +    segment_idx0 = nothing,
    +    scaling_function = no_scaling,
    +    land_fraction = nothing,
    +    date0 = nothing,
    +    mono = true,
    +)

    Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

    Arguments

    • FT: [DataType] Float type.
    • bcfile_dir: [String] directory the BC file is stored in.
    • datafile_rll: [String] file containing data to regrid.
    • varname: [String] name of the variable to be regridded.
    • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
    • interpolate_daily: [Bool] switch to trigger daily interpolation.
    • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
    • scaling function: [Function] scales, offsets or transforms varname.
    • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
    • date0: [Dates.DateTime] start date of the file data.
    • mono: [Bool] flag for monotone remapping of datafile_rll.

    Returns

    • BCFileInfo
    source
    ClimaCoupler.BCReader.update_midmonth_data!Function
    update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

    Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

    Arguments

    • date: [Dates.DateTime] start date for data.
    • bcf_info: [BCFileInfo] containing boundary condition data.
    source
    ClimaCoupler.BCReader.next_date_in_fileFunction
    next_date_in_file(bcf_info)

    Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

    Arguments

    • bcf_info: [BCFileInfo] containing the date information.

    Returns

    • Dates.DateTime
    source
    ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
    interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

    Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

    Arguments

    • date: [Dates.DateTime] start date for data.
    • bcf_info: [BCFileInfo] contains fields to be interpolated.

    Returns

    • Fields.field
    source

    BCReader Internal Functions

    ClimaCoupler.BCReader.no_scalingFunction
    no_scaling(field, bcf_info)

    Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

    Arguments

    • field: [Fields.Field] contains the values to be remapped.
    • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
    source
    ClimaCoupler.BCReader.interpolFunction
    interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

    Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

    Arguments

    • f1: [FT] first value to be interpolated (f(t1) = f1).
    • f2: [FT] second value to be interpolated.
    • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
    • Δt_t2t1: [FT] time between t1 and t2.

    Returns

    • FT
    source
    diff --git a/dev/checkpointer/index.html b/dev/checkpointer/index.html new file mode 100644 index 000000000..8f1d8d5ea --- /dev/null +++ b/dev/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

    Checkpointer

    This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

    Checkpointer API

    ClimaCoupler.Checkpointer.get_model_state_vectorFunction
    get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

    Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

    source
    ClimaCoupler.Checkpointer.restart_model_state!Function
    restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

    Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

    source
    ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
    checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

    Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

    source
    diff --git a/dev/conservation/index.html b/dev/conservation/index.html new file mode 100644 index 000000000..dfc6643e5 --- /dev/null +++ b/dev/conservation/index.html @@ -0,0 +1,15 @@ + +Conservation Checks · ClimaCoupler.jl

    Conservation Checks

    If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

    Only energy and water are currently implemented.

    Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

    Coupler Object API

    ClimaCoupler.ConservationChecker.check_conservation!Function
    check_conservation!(coupler_sim::Interfacer.CoupledSimulation; runtime_check = false)

    itertes over all specified conservation checks.

    source
        check_conservation!(
    +    cc::EnergyConservationCheck,
    +    coupler_sim::Interfacer.CoupledSimulation,
    +    runtime_check = false,
    +    )

    computes the total energy, ∫ ρe dV, of the model components of the coupled simulations and the TOA radiation, and updates cc with these values.

    source
    check_conservation!(
    +cc::WaterConservationCheck,
    +coupler_sim::Interfacer.CoupledSimulation,
    +runtime_check = false,
    +)

    computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

    Note: in the future this should not use push!.

    source
    ClimaCoupler.ConservationChecker.plot_global_conservationFunction
    plot_global_conservation(
    +    cc::EnergyConservationCheck,
    +    coupler_sim::Interfacer.CoupledSimulation;
    +    figname1 = "total_energy.png",
    +    figname2 = "total_energy_log.png",
    +)

    Creates two plots of the globally integrated quantity (energy, $\rho e$):

    1. global quantity of each model component as a function of time,

    relative to the initial value;

    1. fractional change in the sum of all components over time on a log scale.
    source
    diff --git a/dev/couplerstate/index.html b/dev/couplerstate/index.html new file mode 100644 index 000000000..efd12597d --- /dev/null +++ b/dev/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

    Coupler State

    The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

    The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

    Coupler Object API

    ClimaCoupler.CouplerStateType
    CouplerState()

    Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

    A field is exported by one component and imported by one or more other components.

    source
    ClimaCoupler.coupler_add_field!Function
    coupler_add_field!(
    +        coupler::CouplerState,
    +        fieldname::Symbol,
    +        fieldvalue,
    +    )

    Add a field to the coupler that is accessible with key fieldname.

    Arguments

    • coupler: coupler object the field is added to.
    • fieldname: key to access the field in the coupler.
    • fieldvalue: data array of field values.
    source
    ClimaCoupler.coupler_getFunction
    coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

    Retrieve data array corresponding to fieldname.

    If a target_sim is passed, the field is remapped to that simulation's boundary space.

    source
    diff --git a/dev/diagnostics/index.html b/dev/diagnostics/index.html new file mode 100644 index 000000000..88cef2611 --- /dev/null +++ b/dev/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

    Diagnostics

    This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

    Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

    Diagnostics API

    Missing docstring.

    Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

    ClimaCoupler.Diagnostics.get_varFunction
    get_var(cs::CoupledSimulation, x)

    Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

    Example:

    getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

    source
    ClimaCoupler.Diagnostics.save_diagnosticsFunction
    save_diagnostics(cs::CoupledSimulation)
    +
    +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

    Saves all entries in dg in separate HDF5 files per variable in output_dir.

    source

    Diagnostics Internal Functions

    Missing docstring.

    Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

    ClimaCoupler.Diagnostics.operationFunction
    operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

    Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

    source
    operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

    Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

    source
    ClimaCoupler.Diagnostics.pre_saveFunction
    pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

    Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

    source
    pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

    Collects variables and performs all specified operations before saving the snapshot diagnostics.

    source
    diff --git a/dev/fieldexchanger/index.html b/dev/fieldexchanger/index.html new file mode 100644 index 000000000..7b29b187f --- /dev/null +++ b/dev/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

    FieldExchanger

    This module contains general functions for the exchange of fields between the atmospheric and surface component models.

    The FieldExchanger needs to populate the coupler with

    • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
    • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

    The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

    • AtmosModelSimulation: albedo, surface_temperature
      • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
    • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

    If an update_field! function is not defined for a particular component model, it will be ignored.

    Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

    FieldExchanger API

    ClimaCoupler.FieldExchanger.import_atmos_fields!Function
    import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

    Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

    Arguments

    • csf: [NamedTuple] containing coupler fields.
    • model_sims: [NamedTuple] containing ComponentModelSimulations.
    • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
    source
    ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
    import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

    Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

    Arguments

    • csf: [NamedTuple] containing coupler fields.
    • model_sims: [NamedTuple] containing ComponentModelSimulations.
    • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
    source
    ClimaCoupler.FieldExchanger.update_model_sims!Function
    update_model_sims!(model_sims, csf, turbulent_fluxes)

    Iterates update_sim! over all component model simulations saved in cs.model_sims.

    Arguments

    • model_sims: [NamedTuple] containing ComponentModelSimulations.
    • csf: [NamedTuple] containing coupler fields.
    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
    source
    ClimaCoupler.FieldExchanger.update_sim!Function
    update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

    Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

    Arguments

    • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
    • csf: [NamedTuple] containing coupler fields.
    source
    update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

    Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

    Arguments

    • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
    • csf: [NamedTuple] containing coupler fields.
    source
    update_sim!(::SurfaceStub, csf, area_fraction)

    The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

    source
    ClimaCoupler.FieldExchanger.step_model_sims!Function
    step_model_sims!(model_sims, t)

    Iterates step! over all component model simulations saved in cs.model_sims.

    Arguments

    • model_sims: [NamedTuple] containing ComponentModelSimulations.
    • t: [AbstractFloat] denoting the simulation time.
    source

    FieldExchanger Internal Functions

    CommonSolve.step!Function
    step!(::SurfaceStub, t)

    The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

    source
    SciMLBase.reinit!Function
    reinit!(cs::SurfaceStub)

    The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

    source
    diff --git a/dev/fluxcalculator/index.html b/dev/fluxcalculator/index.html new file mode 100644 index 000000000..d4a759a2d --- /dev/null +++ b/dev/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

    FluxCalculator

    This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

    Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

    1. Combined fluxes (called with CombinedStateFluxes())
    • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
    1. Partitioned fluxes (called with PartitionedStateFluxes())
    • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.

    FluxCalculator API

    ClimaCoupler.FluxCalculator.CombinedStateFluxesType
    CombinedStateFluxes <: TurbulentFluxPartition

    A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

    source
    ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!Function
    combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

    Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

    Arguments

    • model_sims: [NamedTuple] containing ComponentModelSimulations.
    • csf: [NamedTuple] containing coupler fields.
    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
    source
    ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!Function
    atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

    A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

    Arguments

    • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
    • csf: [NamedTuple] containing coupler fields.

    Example:

    function atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
    +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
    +end
    source
    diff --git a/dev/generated/amip/coupler_driver_modular/index.html b/dev/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..97064213a --- /dev/null +++ b/dev/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,515 @@ + +AMIP Driver · ClimaCoupler.jl

    AMIP Driver

    Overview

    AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

    • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
    • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

    For more information, see the PCMDI's specifications for AMIP I and AMIP II.

    This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

    Start Up

    Before starting Julia, ensure your environment is properly set up:

    module purge
    +module load julia/1.9.3 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
    +
    +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
    +export JUlIA_MPI_BINARY="system"
    +export JULIA_HDF5_PATH=""

    Next instantiate/build all packages listed in Manifest.toml:

    julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
    +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

    The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

    julia --project --threads 8

    Initialization

    Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

    import SciMLBase: step!, reinit!
    +using OrdinaryDiffEq
    +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
    +using LinearAlgebra
    +import Test: @test
    +using Dates
    +using UnPack
    +using Plots
    +using Statistics: mean
    +import ClimaAtmos as CA
    +import YAML
    +
    +using ClimaCore.Utilities: half, PlusHalf
    +using ClimaCore: InputOutput, Fields
    +import ClimaCore.Spaces as Spaces
    +
    +# coupler specific imports
    +import ClimaCoupler
    +import ClimaCoupler.Regridder
    +import ClimaCoupler.Regridder:
    +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
    +import ClimaCoupler.ConservationChecker:
    +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
    +import ClimaCoupler.Utilities: swap_space!
    +import ClimaCoupler.BCReader:
    +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
    +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
    +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
    +import ClimaCoupler.PostProcessor: postprocess
    +
    +import ClimaCoupler.Interfacer:
    +    CoupledSimulation,
    +    float_type,
    +    AtmosModelSimulation,
    +    SurfaceModelSimulation,
    +    SurfaceStub,
    +    SeaIceModelSimulation,
    +    LandModelSimulation,
    +    OceanModelSimulation,
    +    get_field,
    +    update_field!,
    +    update_sim!
    +import ClimaCoupler.FluxCalculator:
    +    PartitionedStateFluxes,
    +    CombinedStateFluxes,
    +    combined_turbulent_fluxes!,
    +    MoninObukhovScheme,
    +    partitioned_turbulent_fluxes!
    +import ClimaCoupler.FieldExchanger:
    +    import_atmos_fields!,
    +    import_combined_surface_fields!,
    +    update_sim!,
    +    update_model_sims!,
    +    reinit_model_sims!,
    +    step_model_sims!
    +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
    +
    +# helpers for component models
    +include("components/atmosphere/climaatmos_init.jl")
    +include("components/land/bucket_init.jl")
    +include("components/land/bucket_utils.jl")
    +include("components/ocean/slab_ocean_init.jl")
    +include("components/ocean/prescr_seaice_init.jl")
    +include("components/ocean/eisenman_seaice_init.jl")
    +
    +# helpers for user-specified IO
    +include("user_io/user_diagnostics.jl")
    +include("user_io/user_logging.jl")
    +
    +# coupler defaults
    +include("cli_options.jl")
    +parsed_args = parse_commandline(argparse_settings())
    +
    +# setup coupler and model configurations

    modify parsed args for fast testing from REPL #hide

    pkg_dir = pkgdir(ClimaCoupler)
    +if isinteractive()
    +    include("user_io/debug_plots.jl")
    +    parsed_args["config_file"] =
    +        isnothing(parsed_args["config_file"]) ? joinpath(pkg_dir, "config/model_configs/interactive_debug.yml") :
    +        parsed_args["config_file"]
    +end

    read in config dictionary from file, overriding the coupler defaults

    config_dict = YAML.load_file(parsed_args["config_file"])
    +config_dict = merge(parsed_args, config_dict)

    get component model dictionaries

    config_dict_atmos = get_atmos_config(config_dict)

    merge dictionaries of command line arguments, coupler dictionary and component model dictionaries (if there are common keys, the last dictorionary in the merge arguments takes precedence)

    config_dict = merge(config_dict_atmos, config_dict)
    +
    +# read in some parsed command line arguments
    +mode_name = config_dict["mode_name"]
    +run_name = config_dict["run_name"]
    +energy_check = config_dict["energy_check"]
    +const FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
    +land_sim_name = "bucket"
    +t_end = Int(time_to_seconds(config_dict["t_end"]))
    +tspan = (Int(0), t_end)
    +Δt_cpl = Int(config_dict["dt_cpl"])
    +saveat = time_to_seconds(config_dict["dt_save_to_sol"])
    +date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd")
    +mono_surface = config_dict["mono_surface"]
    +monthly_checkpoint = config_dict["monthly_checkpoint"]
    +restart_dir = config_dict["restart_dir"]
    +restart_t = Int(config_dict["restart_t"])
    +
    +# I/O directory setup
    +if isinteractive()
    +    COUPLER_OUTPUT_DIR = joinpath("output", joinpath(mode_name, run_name)) # TempestRemap fails if interactive and paths are too long
    +else
    +    COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
    +end
    +mkpath(COUPLER_OUTPUT_DIR)
    +
    +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
    +mkpath(REGRID_DIR)
    +
    +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
    +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
    +
    +@info COUPLER_OUTPUT_DIR
    +config_dict["print_config_dict"] ? @info(config_dict) : nothing

    get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration

    include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
    +sst_data = joinpath(sst_dataset_path(), "sst.nc")
    +sic_data = joinpath(sic_dataset_path(), "sic.nc")
    +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")

    Component Model Initialization

    Here we set initial and boundary conditions for each component model.

    Atmosphere

    This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

    # init atmos model component
    +atmos_sim = atmos_init(FT, config_dict_atmos);
    +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

    We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

    # init a 2D boundary space at the surface
    +boundary_space = atmos_sim.domain.face_space.horizontal_space

    init land-sea fraction

    land_fraction =
    +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)

    Land

    We use ClimaLSM.jl's bucket model.

    land_sim = bucket_init(
    +    FT,
    +    FT.(tspan),
    +    config_dict["land_domain_type"],
    +    config_dict["land_albedo_type"],
    +    comms_ctx,
    +    REGRID_DIR;
    +    dt = FT(Δt_cpl),
    +    space = boundary_space,
    +    saveat = FT(saveat),
    +    area_fraction = land_fraction,
    +    date_ref = date0,
    +    t_start = FT(0),
    +)

    Ocean and Sea Ice

    In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

    In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

    @info mode_name
    +if mode_name == "amip"
    +    @info "AMIP boundary conditions - do not expect energy conservation"
    +
    +    # ocean
    +    SST_info = bcfile_info_init(
    +        FT,
    +        REGRID_DIR,
    +        sst_data,
    +        "SST",
    +        boundary_space,
    +        comms_ctx,
    +        interpolate_daily = true,
    +        scaling_function = clean_sst, ## convert to Kelvin
    +        land_fraction = land_fraction,
    +        date0 = date0,
    +        mono = mono_surface,
    +    )
    +
    +    update_midmonth_data!(date0, SST_info)
    +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
    +    ocean_sim = SurfaceStub((;
    +        T_sfc = SST_init,
    +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
    +        z0m = FT(1e-3),
    +        z0b = FT(1e-3),
    +        beta = FT(1),
    +        α = FT(0.06),
    +        area_fraction = (FT(1) .- land_fraction),
    +        phase = TD.Liquid(),
    +        thermo_params = thermo_params,
    +    ))
    +    # sea ice
    +    SIC_info = bcfile_info_init(
    +        FT,
    +        REGRID_DIR,
    +        sic_data,
    +        "SEAICE",
    +        boundary_space,
    +        comms_ctx,
    +        interpolate_daily = true,
    +        scaling_function = clean_sic, ## convert to fraction
    +        land_fraction = land_fraction,
    +        date0 = date0,
    +        mono = mono_surface,
    +    )
    +    update_midmonth_data!(date0, SIC_info)
    +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
    +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
    +    ice_sim = ice_init(
    +        FT;
    +        tspan = tspan,
    +        dt = Δt_cpl,
    +        space = boundary_space,
    +        saveat = saveat,
    +        area_fraction = ice_fraction,
    +        thermo_params = thermo_params,
    +    )
    +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
    +
    +elseif mode_name == "slabplanet"
    +    # ocean
    +    ocean_sim = ocean_init(
    +        FT;
    +        tspan = tspan,
    +        dt = Δt_cpl,
    +        space = boundary_space,
    +        saveat = saveat,
    +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
    +        thermo_params = thermo_params,
    +    )
    +
    +    # sea ice (here set to zero area coverage)
    +    ice_sim = SurfaceStub((;
    +        T_sfc = ClimaCore.Fields.ones(boundary_space),
    +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
    +        z0m = FT(0),
    +        z0b = FT(0),
    +        beta = FT(1),
    +        α = FT(1),
    +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
    +        phase = TD.Ice(),
    +        thermo_params = thermo_params,
    +    ))
    +
    +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
    +
    +elseif mode_name == "slabplanet_eisenman"
    +    # ocean
    +    ocean_sim = ocean_init(
    +        FT;
    +        tspan = tspan,
    +        dt = Δt_cpl,
    +        space = boundary_space,
    +        saveat = saveat,
    +        area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below
    +        thermo_params = thermo_params,
    +    )
    +
    +    # sea ice (here set to zero area coverage)
    +    ice_sim = eisenman_seaice_init(
    +        FT,
    +        tspan,
    +        space = boundary_space,
    +        area_fraction = (FT(1) .- land_fraction),
    +        dt = Δt_cpl,
    +        saveat = saveat,
    +        thermo_params = thermo_params,
    +    )
    +
    +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
    +end

    Coupler Initialization

    The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

    # coupler exchange fields
    +coupler_field_names = (
    +    :T_S,
    +    :z0m_S,
    +    :z0b_S,
    +    :ρ_sfc,
    +    :q_sfc,
    +    :albedo,
    +    :beta,
    +    :F_turb_energy,
    +    :F_turb_moisture,
    +    :F_turb_ρτxz,
    +    :F_turb_ρτyz,
    +    :F_radiative,
    +    :P_liq,
    +    :P_snow,
    +    :F_radiative_TOA,
    +    :P_net,
    +)
    +coupler_fields =
    +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
    +
    +# model simulations
    +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
    +
    +# dates
    +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

    Online Diagnostics

    User can write custom diagnostics in the user_diagnostics.jl.

    monthly_3d_diags = init_diagnostics(
    +    (:T, :u, :q_tot, :q_liq_ice),
    +    atmos_sim.domain.center_space;
    +    save = Monthly(),
    +    operations = (; accumulate = TimeMean([Int(0)])),
    +    output_dir = COUPLER_OUTPUT_DIR,
    +    name_tag = "monthly_mean_3d_",
    +)
    +
    +monthly_2d_diags = init_diagnostics(
    +    (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),
    +    boundary_space;
    +    save = Monthly(),
    +    operations = (; accumulate = TimeMean([Int(0)])),
    +    output_dir = COUPLER_OUTPUT_DIR,
    +    name_tag = "monthly_mean_2d_",
    +)
    +
    +diagnostics = (monthly_3d_diags, monthly_2d_diags)

    Initialize Conservation Checks

    # init conservation info collector
    +conservation_checks = nothing
    +if energy_check
    +    @assert(
    +        mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)),
    +        "Only non-distributed slabplanet allowable for energy_check"
    +    )
    +    conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims))
    +end
    +
    +# coupler simulation
    +cs = CoupledSimulation{FT}(
    +    comms_ctx,
    +    dates,
    +    boundary_space,
    +    coupler_fields,
    +    config_dict,
    +    conservation_checks,
    +    [tspan[1], tspan[2]],
    +    atmos_sim.integrator.t,
    +    Δt_cpl,
    +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
    +    model_sims,
    +    mode_specifics,
    +    diagnostics,
    +);

    Restart component model states if specified

    if restart_dir !== "unspecified"
    +    for sim in cs.model_sims
    +        if get_model_state_vector(sim) !== nothing
    +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
    +        end
    +    end
    +end

    Initialize Component Model Exchange

    turbulent_fluxes = nothing
    +if config_dict["turb_flux_partition"] == "PartitionedStateFluxes"
    +    turbulent_fluxes = PartitionedStateFluxes()
    +elseif config_dict["turb_flux_partition"] == "CombinedStateFluxes"
    +    turbulent_fluxes = CombinedStateFluxes()
    +else
    +    error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes")
    +end
    1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
    update_surface_fractions!(cs)
    +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
    +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
    +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
    1. each surface component model calculates its own vapor specific humidity (q_sfc)

    TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

    step!(land_sim, Δt_cpl)
    +step!(ocean_sim, Δt_cpl)
    +step!(ice_sim, Δt_cpl)
    1. coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions
    if turbulent_fluxes isa CombinedStateFluxes

    calculate fluxes using combined surface states on the atmos grid

        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc
    +    combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts
    +elseif turbulent_fluxes isa PartitionedStateFluxes

    calculate turbulent fluxes in surface models and save the weighted average in coupler fields

        partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

    update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)

        new_p = get_new_cache(atmos_sim, cs.fields)
    +    CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)
    +    atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
    +end
    1. given the new sfc_conditions, atmos calls the radiative flux callback
    reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux
    1. coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types

    and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.

    import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
    +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

    Coupling Loop

    function solve_coupler!(cs)
    +    @info "Starting coupling loop"
    +
    +    @unpack model_sims, Δt_cpl, tspan = cs
    +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
    +
    +    # step in time
    +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
    +
    +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
    +
    +        # print date on the first of month
    +        if cs.dates.date[1] >= cs.dates.date1[1]
    +            @show(cs.dates.date[1])
    +        end
    +
    +        if cs.mode.name == "amip"
    +
    +            # monthly read of boundary condition data for SST and SIC
    +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
    +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
    +            end
    +            SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)
    +            update_field!(ocean_sim, Val(:surface_temperature), SST_current)
    +
    +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
    +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
    +            end
    +            SIC_current =
    +                get_ice_fraction.(interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), mono_surface)
    +            update_field!(ice_sim, Val(:area_fraction), SIC_current)
    +
    +            # calculate and accumulate diagnostics at each timestep
    +            ClimaComms.barrier(comms_ctx)
    +            accumulate_diagnostics!(cs)
    +
    +            # save and reset monthly averages
    +            save_diagnostics(cs)
    +
    +        end
    +
    +        # compute global energy
    +        !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing
    +
    +        # run component models sequentially for one coupling timestep (Δt_cpl)
    +        ClimaComms.barrier(comms_ctx)
    +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
    +
    +        # step sims
    +        step_model_sims!(cs.model_sims, t)
    +
    +        # exchange combined fields and (if specified) calculate fluxes using combined states
    +        update_surface_fractions!(cs)
    +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
    +        if turbulent_fluxes isa CombinedStateFluxes
    +            combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)
    +        elseif turbulent_fluxes isa PartitionedStateFluxes

    calculate turbulent fluxes in surfaces and save the weighted average in coupler fields

                partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

    update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)

                new_p = get_new_cache(atmos_sim, cs.fields)
    +            CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification)
    +            atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
    +        end
    +
    +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent
    +
    +        # monthly callbacks
    +        if trigger_callback(cs, Monthly())
    +            # step to the next calendar month
    +            cs.dates.date1[1] += Dates.Month(1)
    +            # checkpoint model state
    +            if monthly_checkpoint
    +                for sim in cs.model_sims
    +                    if get_model_state_vector(sim) !== nothing
    +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
    +                    end
    +                end
    +            end
    +        end
    +
    +    end
    +    @show walltime
    +
    +    return cs
    +end
    +
    +
    +# run the coupled simulation
    +solve_coupler!(cs);

    Postprocessing

    Currently all postprocessing is performed using the root process only.

    if ClimaComms.iamroot(comms_ctx)
    +
    +    # energy check plots
    +    if !isnothing(cs.conservation_checks) && cs.mode.name[1:10] == "slabplanet"
    +        @info "Conservation Check Plots"
    +        plot_global_conservation(
    +            cs.conservation_checks.energy,
    +            cs,
    +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_bucket.png"),
    +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_log_bucket.png"),
    +        )
    +        plot_global_conservation(
    +            cs.conservation_checks.water,
    +            cs,
    +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_bucket.png"),
    +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_log_bucket.png"),
    +        )
    +    end
    +
    +    # sample animations
    +    if !is_distributed && config_dict["anim"]
    +        @info "Animations"
    +        include("user_io/viz_explorer.jl")
    +        plot_anim(cs, COUPLER_ARTIFACTS_DIR)
    +    end
    +
    +    # plotting AMIP results
    +    if cs.mode.name == "amip"
    +        @info "AMIP plots"
    +
    +        # ClimaESM
    +        include("user_io/amip_visualizer.jl")
    +        post_spec = (;
    +            T = (:regrid, :zonal_mean),
    +            u = (:regrid, :zonal_mean),
    +            q_tot = (:regrid, :zonal_mean),
    +            toa_fluxes = (:regrid, :horizontal_slice),
    +            precipitation_rate = (:regrid, :horizontal_slice),
    +            T_sfc = (:regrid, :horizontal_slice),
    +            tubulent_energy_fluxes = (:regrid, :horizontal_slice),
    +            q_liq_ice = (:regrid, :zonal_mean),
    +        )
    +
    +        plot_spec = (;
    +            T = (; clims = (190, 320), units = "K"),
    +            u = (; clims = (-50, 50), units = "m/s"),
    +            q_tot = (; clims = (0, 30), units = "g/kg"),
    +            toa_fluxes = (; clims = (-250, 250), units = "W/m^2"),
    +            precipitation_rate = (clims = (0, 1e-4), units = "kg/m^2/s"),
    +            T_sfc = (clims = (225, 310), units = "K"),
    +            tubulent_energy_fluxes = (; clims = (-250, 250), units = "W/m^2"),
    +            q_liq_ice = (; clims = (0, 10), units = "g/kg"),
    +        )
    +        amip_data = amip_paperplots(
    +            post_spec,
    +            plot_spec,
    +            COUPLER_OUTPUT_DIR,
    +            files_root = ".monthly",
    +            output_dir = COUPLER_ARTIFACTS_DIR,
    +        )
    +
    +        # NCEP reanalysis
    +        @info "NCEP plots"
    +        include("user_io/ncep_visualizer.jl")
    +        ncep_post_spec = (;
    +            T = (:zonal_mean,),
    +            u = (:zonal_mean,),
    +            q_tot = (:zonal_mean,),
    +            toa_fluxes = (:horizontal_slice,),
    +            precipitation_rate = (:horizontal_slice,),
    +            T_sfc = (:horizontal_slice,),
    +            tubulent_energy_fluxes = (:horizontal_slice,),
    +        )
    +        ncep_plot_spec = plot_spec
    +        ncep_data = ncep_paperplots(
    +            ncep_post_spec,
    +            ncep_plot_spec,
    +            COUPLER_OUTPUT_DIR,
    +            output_dir = COUPLER_ARTIFACTS_DIR,
    +            month_date = cs.dates.date[1],
    +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
    +    end
    +
    +    # clean up
    +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
    +end

    This page was generated using Literate.jl.

    diff --git a/dev/generated/sea_breeze/atmos_rhs/index.html b/dev/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..a4930ef6b --- /dev/null +++ b/dev/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

    Atmospheric Model

    Atmosphere Conservation Equations

    Density:

    \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

    Momentum (flux form):

    \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

    Potential temperature:

    \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

    Total Energy (possibly replace potential temperature equation with total energy conservation):

    \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

    where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

    Tracer transport:

    \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

    Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

    \[\rho\tau = -2\rho\nu\nabla u.\]

    Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

    \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

    with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

    Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

    Consider components of the viscous stress tensor in three dimensions:

    \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

    Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

    \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

    Which can be interpreted as, for horizontal-momentum:

    1. Horizontal divergence of vertical gradients of cell-centered variables $u$
    2. Vertical divergence of vertical gradients of cell-centered variables $u$
    3. Vertical divergence of horizontal gradients of cell-face variables $w$

    and for vertical-momentum, as:

    1. Horizontal divergence of vertical gradients of cell-centered variables $u$
    2. Horizontal divergence of horizontal gradients of cell-face variables $w$
    3. Vertical divergence of vertical gradients of cell-face variables $w$.

    Model Code

    push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
    +
    +using Test
    +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
    +
    +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
    +using ClimaCore.Geometry
    +using ClimaCore.Utilities: PlusHalf
    +
    +using Logging: global_logger
    +using TerminalLoggers: TerminalLogger
    +global_logger(TerminalLogger())
    +
    +using ClimaCoupler
    +
    +# set up function space
    +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
    +    FT = Float64
    +    vertdomain = Domains.IntervalDomain(
    +        Geometry.ZPoint{FT}(zlim[1]),
    +        Geometry.ZPoint{FT}(zlim[2]);
    +        boundary_tags = (:bottom, :top),
    +    )
    +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
    +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
    +
    +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
    +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
    +    horztopology = Topologies.IntervalTopology(horzmesh)
    +
    +    quad = Spaces.Quadratures.GLL{npoly + 1}()
    +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
    +
    +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
    +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
    +    return (hv_center_space, hv_face_space)
    +end
    +
    +function pressure(ρθ)
    +    if ρθ >= 0
    +        return MSLP * (R_d * ρθ / MSLP)^γ
    +    else
    +        return NaN
    +    end
    +end
    +
    +Φ(z) = grav * z
    +
    +abstract type BCtag end
    +struct ZeroFlux <: BCtag end
    +
    +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
    +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
    +
    +function init_sea_breeze_2d(x, z)
    +    θ₀ = atm_T_ini
    +    cp_d = C_p
    +    cv_d = C_v
    +    p₀ = MSLP
    +    g = grav
    +    γ = cp_d / cv_d
    +    z_c = 100.0
    +    θ_b = atm_T_ini
    +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
    +    θ = θ_b + θ_p # potential temperature
    +    π_exn = 1.0 - g * z / cp_d / θ # exner function
    +    T = π_exn * θ # temperature
    +    p = p₀ * π_exn^(cp_d / R_d) # pressure
    +    ρ = p / R_d / T # density
    +    ρθ = ρ * θ # potential temperature density
    +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
    +end
    +
    +function atm_rhs!(dY, Y, params, t)
    +    ρw = Y.ρw
    +    Yc = Y.Yc
    +    dYc = dY.Yc
    +    dρw = dY.ρw
    +
    +    center_coords = Fields.coordinate_field(axes(Yc))
    +
    +    # spectral horizontal operators
    +    hdiv = Operators.Divergence()
    +    hgrad = Operators.Gradient()
    +    hwdiv = Operators.WeakDivergence()
    +    hwgrad = Operators.WeakGradient()
    +
    +    # vertical FD operators with BC's
    +    vdivf2c = Operators.DivergenceF2C(
    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
    +        top = Operators.SetValue(Geometry.WVector(0.0)),
    +    )
    +    vvdivc2f = Operators.DivergenceC2F(
    +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
    +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
    +    )
    +    uvdivf2c = Operators.DivergenceF2C(
    +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
    +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
    +    )
    +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
    +    Ic = Operators.InterpolateF2C()
    +    ∂ = Operators.DivergenceF2C(
    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
    +        top = Operators.SetValue(Geometry.WVector(0.0)),
    +    )
    +    ∂f = Operators.GradientC2F()
    +    ∂c = Operators.GradientF2C()
    +    B = Operators.SetBoundaryOperator(
    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
    +        top = Operators.SetValue(Geometry.WVector(0.0)),
    +    )
    +
    +    ∇_z_ρθ = Operators.DivergenceF2C(
    +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
    +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
    +    )
    +
    +    uₕ = @. Yc.ρuₕ / Yc.ρ
    +    w = @. ρw / If(Yc.ρ)
    +    wc = @. Ic(ρw) / Yc.ρ
    +    p = @. pressure(Yc.ρθ)
    +    θ = @. Yc.ρθ / Yc.ρ
    +    Yfρ = @. If(Yc.ρ)
    +
    +    ### HYPERVISCOSITY
    +    # 1) compute hyperviscosity coefficients
    +    @. dYc.ρθ = hwdiv(hgrad(θ))
    +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
    +    @. dρw = hwdiv(hgrad(w))
    +    Spaces.weighted_dss!(dYc)
    +    Spaces.weighted_dss!(dρw)
    +
    +    κ₄ = 0.0 # m^4/s
    +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
    +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
    +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
    +
    +    # density
    +    @. dYc.ρ = -∂(ρw)
    +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
    +
    +    # potential temperature
    +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
    +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
    +
    +    # horizontal momentum
    +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
    +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
    +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
    +
    +    # vertical momentum
    +    @. dρw +=
    +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
    +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
    +    @. dρw -= hdiv(uₕf ⊗ ρw)
    +
    +    # DIFFUSION
    +    κ₂ = 5.0 # m^2/s
    +    #  1a) horizontal div of horizontal grad of horiz momentun
    +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
    +    #  1b) vertical div of vertical grad of horiz momentun
    +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
    +
    +    #  1c) horizontal div of horizontal grad of vert momentum
    +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
    +    #  1d) vertical div of vertical grad of vert momentun
    +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
    +
    +    #  2a) horizontal div of horizontal grad of potential temperature
    +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
    +    #  2b) vertical div of vertial grad of potential temperature
    +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
    +
    +    Spaces.weighted_dss!(dYc)
    +    Spaces.weighted_dss!(dρw)
    +    return dY
    +end
    +
    +# init simulation
    +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
    +
    +    # construct domain spaces
    +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
    +    center_coords = Fields.coordinate_field(hv_center_space)
    +    face_coords = Fields.coordinate_field(hv_face_space)
    +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
    +
    +    # initialize prognostic variables
    +    Yc = map(center_coords) do coord
    +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
    +        sea_breeze
    +    end
    +
    +    ρw = map(face_coords) do coord
    +        Geometry.WVector(0.0)
    +    end
    +
    +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
    +
    +    # select boundary conditions
    +    if bc === nothing
    +        bc = (
    +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
    +            ρu = nothing, # for now BCs are hard coded, except for ρθ
    +        )
    +    end
    +
    +    return Y, bc, domain
    +end
    +
    +using OrdinaryDiffEq
    +function atm_run!(Y, bc, domain)
    +    dYdt = similar(Y)
    +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
    +    atm_rhs!(dYdt, Y, params, 0.0)
    +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
    +    Δt = 0.025
    +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
    +end

    Coupled Atmos Wrappers

    # Atmos Simulation - later to live in ClimaAtmos
    +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
    +    integrator::Any
    +end
    +
    +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
    +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
    +
    +    atm_integ = init(
    +        atm_prob,
    +        timestepper,
    +        dt = dt,
    +        saveat = saveat,
    +        progress = true,
    +        progress_message = (dt, u, params, t) -> t,
    +        callback = callbacks,
    +    )
    +
    +    return AtmosSimulation(atm_integ)
    +end
    +
    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
    +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
    +end
    +
    +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
    +    # reset flux accumulator
    +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
    +
    +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
    +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
    +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
    +end

    Coupled Boundary Conditions

    The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

    To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

    struct CoupledFlux <: BCtag end
    +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
    +    # flux calculation
    +    Yc = Y.Yc
    +    uₕ = Yc.ρuₕ ./ Yc.ρ
    +    ρw = Y.ρw
    +    If2c = Operators.InterpolateF2C()
    +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
    +    w = If2c.(ρw) ./ Yc.ρ
    +    cuv = @. Geometry.UWVector(uₕ)
    +    windspeed = @. norm(cuv)
    +    windspeed_boundary = Fields.level(windspeed, 1)
    +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
    +    ρ_boundary = Fields.level(Yc.ρ, 1)
    +
    +    # build atmos face fields on surface boundary space to enable broadcasting
    +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
    +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
    +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
    +
    +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
    +    dθ = @. θ_boundary - p.T_sfc
    +    heat_flux = @. -λ * dθ
    +    @. dY.F_sfc += heat_flux # accumulation
    +
    +    return Operators.SetValue(Geometry.WVector.(heat_flux))
    +end

    This page was generated using Literate.jl.

    diff --git a/dev/generated/sea_breeze/land_rhs/index.html b/dev/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..96cc68dee --- /dev/null +++ b/dev/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

    Land Model

    Slab Land ODE

    For our land component, we solve a simple slab land ODE:

    \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

    • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
    • and $F_{integ}$ is the integrated surface fluxes in time.

    Model Code

    function lnd_rhs!(du, u, (parameters, F_accumulated), t)
    +    """
    +    Slab layer equation
    +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
    +        where
    +            F_accumulated = F_integrated / Δt_coupler
    +    """
    +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
    +    @unpack T_sfc = du
    +
    +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
    +end
    +
    +# set up domain
    +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
    +    FT = Float64
    +
    +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
    +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
    +    topology = Topologies.IntervalTopology(mesh)
    +
    +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
    +    quad = Spaces.Quadratures.GL{npoly + 1}()
    +    space = Spaces.SpectralElementSpace1D(topology, quad)
    +
    +    return space
    +end
    +
    +# init simulation
    +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
    +
    +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
    +    space = hspace_1D((xmin, xmax), npoly, helem)
    +    coords = Fields.coordinate_field(space)
    +    domain = space
    +
    +    # initial condition
    +    T_sfc = map(coords) do coord
    +        T_sfc = 273.0
    +    end
    +
    +    # prognostic variable
    +    Y = Fields.FieldVector(T_sfc = T_sfc)
    +
    +    return Y, domain
    +end

    Coupled Land Wrappers

    # Land Simulation - later to live in ClimaLSM
    +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
    +    integrator::Any
    +end
    +
    +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
    +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
    +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
    +    return LandSimulation(lnd_integ)
    +end
    +
    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
    +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
    +end
    +
    +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
    +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
    +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
    +end

    This page was generated using Literate.jl.

    diff --git a/dev/generated/sea_breeze/ocean_rhs/index.html b/dev/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..e7421cb5f --- /dev/null +++ b/dev/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

    Ocean Model

    Slab Ocean ODE

    For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

    \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

    • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
    • and $F_{integ}$ is the integrated surface fluxes in time.

    Model Code

    function ocn_rhs!(du, u, (parameters, F_accumulated), t)
    +    """
    +    Slab layer equation
    +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
    +        where
    +            F_accumulated = F_integrated / Δt_coupler
    +    """
    +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
    +    @unpack T_sfc = du
    +
    +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
    +end
    +
    +# set up domain
    +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
    +    FT = Float64
    +
    +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
    +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
    +    topology = Topologies.IntervalTopology(mesh)
    +
    +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
    +    quad = Spaces.Quadratures.GL{npoly + 1}()
    +    space = Spaces.SpectralElementSpace1D(topology, quad)
    +
    +    return space
    +end
    +
    +# init simulation
    +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
    +
    +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
    +    space = hspace_1D((xmin, xmax), npoly, helem)
    +    coords = Fields.coordinate_field(space)
    +    domain = space
    +
    +    # initial condition
    +    T_sfc = map(coords) do coord
    +        T_sfc = 267.0
    +    end
    +
    +    # prognostic variable
    +    Y = Fields.FieldVector(T_sfc = T_sfc)
    +
    +    return Y, domain
    +end

    Coupled Ocean Wrappers

    # Ocean Simulation - Later to live in Oceananigans
    +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
    +    integrator::Any
    +end
    +
    +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
    +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
    +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
    +    return OceanSimulation(ocn_integ)
    +end
    +
    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
    +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
    +end
    +
    +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
    +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
    +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
    +end

    This page was generated using Literate.jl.

    diff --git a/dev/generated/sea_breeze/run/index.html b/dev/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..732beb9c1 --- /dev/null +++ b/dev/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

    Coupled Sea Breeze

    Overview

    This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

    In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

    import ClimaCore.Spaces as Spaces

    Model Initialization

    Component Models

    Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

    In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

    include("atmos_rhs.jl")
    +include("ocean_rhs.jl")
    +include("land_rhs.jl")
    +
    +# model parameters
    +const atm_T_ini = FT(270.0)
    +const MSLP = FT(1e5)
    +const grav = FT(9.8)
    +const R_d = FT(287.058)
    +const γ = FT(1.4)
    +const C_p = FT(R_d * γ / (γ - 1))
    +const C_v = FT(R_d / (γ - 1))
    +const R_m = R_d
    +cpl_parameters = (
    +    # atmos parameters
    +    atm_μ = FT(0.0001), # diffusion coefficient
    +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
    +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
    +    MSLP = MSLP, # mean sea level pressure
    +    grav = grav, # gravitational constant
    +    R_d = R_d, # R dry (gas constant / mol mass dry air)
    +    γ = γ, # heat capacity ratio
    +    C_p = C_p, # heat capacity at constant pressure
    +    C_v = C_v, # heat capacity at constant volume
    +    R_m = R_m, # moist R, assumed to be dry
    +    # land slab parameters
    +    lnd_h = FT(0.5), # depth of slab layer [m]
    +    lnd_ρ = FT(1500), # density [kg m^-3]
    +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
    +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
    +    # ocean slab parameters
    +    ocn_h = FT(0.5), # depth of slab layer [m]
    +    ocn_ρ = FT(1025), # density [kg m^-3]
    +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
    +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
    +    # coupling parameters
    +    C_H = FT(0.0015),
    +)
    +
    +# DSS callback
    +function make_dss_func()
    +    function _dss!(x::Fields.Field)
    +        Spaces.weighted_dss!(x)
    +    end
    +    function _dss!(::Any)
    +        nothing
    +    end
    +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
    +    return dss_func
    +end
    +dss_func = make_dss_func()
    +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

    Initialization

    The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

    Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

    @info "Init Models and Maps"
    +
    +t_start, t_end = (0.0, 1.0)
    +Δt_coupled = 0.1
    +saveat = 1e2
    +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
    +
    +# Initialize Models
    +atm_Y_default, atm_bc, atm_domain = atm_init(
    +    xmin = -500,
    +    xmax = 500,
    +    zmin = 0,
    +    zmax = 1000,
    +    npoly = 4,
    +    helem = 20,
    +    velem = 20,
    +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
    +)
    +
    +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
    +
    +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

    Remapping

    Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

    atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
    +
    +maps = (
    +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
    +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
    +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
    +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
    +)
    +
    +# initialize coupling fields
    +atm_T_sfc =
    +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
    +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
    +atm_F_sfc = Fields.zeros(atm_boundary)
    +ocn_F_sfc = Fields.zeros(ocn_domain)
    +lnd_F_sfc = Fields.zeros(lnd_domain)

    Simulations

    Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

    atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
    +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
    +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
    +
    +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
    +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
    +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
    +
    +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
    +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
    +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

    Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

    struct AOLCoupledSimulation{
    +    A <: AtmosSimulation,
    +    O <: OceanSimulation,
    +    L <: LandSimulation,
    +    C <: ClimaCoupler.CouplerState,
    +} <: ClimaCoupler.AbstractCoupledSimulation
    +    # Atmosphere Simulation
    +    atmos::A
    +    # Ocean Simulation
    +    ocean::O
    +    # Land Simulation
    +    land::L
    +    # Coupler storage
    +    coupler::C
    +end

    step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

    function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
    +    Δt = t_stop - sim.integrator.t
    +    step!(sim.integrator, Δt, true)
    +end

    The Coupler

    The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

    After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

    Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

    Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

    \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

    where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

    coupler = CouplerState(Δt_coupled)
    +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
    +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
    +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
    +for (name, map) in pairs(maps)
    +    coupler_add_map!(coupler, name, map)
    +end
    +
    +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

    Coupled Time Integration

    Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

    Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

    Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

    \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

    where $F_{integ}$ has units of $J m^{-2}$.

    function cpl_run(simulation::AOLCoupledSimulation)
    +    @info "Run model"
    +    @unpack atmos, ocean, land, coupler = simulation
    +    Δt_coupled = coupler.Δt_coupled
    +    # coupler stepping
    +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
    +        # Atmos
    +        coupler_pull!(atmos, coupler)
    +        step!(atmos, t)
    +        coupler_push!(coupler, atmos)
    +
    +        # Ocean
    +        coupler_pull!(ocean, coupler)
    +        step!(ocean, t)
    +        coupler_push!(coupler, ocean)
    +
    +        # Land
    +        coupler_pull!(land, coupler)
    +        step!(land, t)
    +        coupler_push!(coupler, land)
    +    end
    +    @info "Simulation Complete"
    +end
    +
    +# Run simulation
    +cpl_run(sim)

    References


    This page was generated using Literate.jl.

    diff --git a/dev/images/canvas_coupler.png b/dev/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr zvmi2SVOV(rAurly5%l$Uv+jBBYZJ^k8sP&~8Kl~MaR=j@+?sbM zW3$6Gzs;CoZtL#UvgA1!HuTv}9itV_C0jK81 z_mM5|&XvwgY;&peIFs98NalhiZzn|cVy#^;oL@s%bDlEK1XW+-Ex$Sq&rlzdaht__WJFGuk?oCQCbM8XwfLid)^Gu57lEx#=R zNm!{CVD=HcjRanTp8fPtz?K(DzV(6ImiO}ueuAEey48C~&{8#OhO%FgZw6PF9d@@} zZxl74u)!@}AV{DwzNbTu>v32F1F(X*;R+%jFpNg>5Novz1G*(Gt%=c6UvcrG6G@-a z{mGC+Nq0p{@*+w98J6u3}MJ zAGIHen?RMlEvAC6r$UODNS>NOPE?(V*LTabt}9LLPZx!HnZl>Kk~LJRpe;2@0MgqV zHCFdzIdl8~4tanB-CTU7LizN*KTG3-q44?32X8C!*WL>2zb(a9mLC|(t(*gTyI+Mn z&o2N5aJ_1(e*;PbBdm7Ui#SS9e?1^7Ss1AJPviF^Aq+5FsYvAj z6h>Ob`LD{BlJEIT^SS_J)O=CPy-7?jf=_}+Zqvb0i#F3v_?K!B0@9^&&Uz67gnv>O z%71DulGvY7A?S6hlyC}3+RWLT!7Q(uax%^cJ@uESKkkv=tX2KwrWwj-tNH-`@gdB> zwP#z=G>@k$mGZxrH~}&wgIt=yyTZK7@eZ}?jyq}C`rZ!LxL17B(FtgON@g7XDUpod z{Vz%+e0Fv(XoS&Lb!bkP>6l-6L!$^f_MI1PhY%5JWsE&$ilIj_Z5DSot0ed*^BwsS zIwxFN#uR%U9KS=_b)b0s4 z1kjCO0vPxt|E(sb|zhwh1VF9RATnHWJq87z_25oVQ$7J6)?z{8uV4X;8lDV_n*4 z#Wvy#=sr2Hx7wL_QTgVdQug(|zArBh@`A5c2JcjK=AGa`z3l`j5eM#_`A2l8`ZM~c zSJNGH0ou2>C77r3_4*CvO6a?e?>{&Egx4DsM1ha|E|oaJK95Y|U4c_$whryq`t~jJ zW_MJ3YH)1|Gq%n#|L>PFs7i*#*C<$aqo&68N(-Lon{g8j*x1e z)3L#8poa(1*}KxjoleVT?b(Z$Uig{iP0?D*Ra!3qtr9}KaXO)>SC62cHi z=R&9b8Un2z(nJNVJNI;JLlPo35t>M{LG`NvPyNZbR5eOM|q@UrSqs(E5 z%jb+22*A?H-@5$cSCWnp=+c@oVrm}n9C zCS$;_zMY4PAA8FLvduDz4r@Ss>(?1@ls5W7kmSX4{9jH}{iFZ=Fa@TA7eL`9B<_$j zQ~^Ci=lQg#pN96y;(`j7G*-T8C$O?=X-s_QAy4jn_amzyf2Lhgp&`>0R)KK;MxhX;SJq<)QGni^*;?$M5~!!8WM3ey^IYSk_Gbr|hIj%# z-=a#UD)!TKK+PLWyi<+{adP1!`1CorPG8B{zT#2YHo4pp?cVXFAfShB z!3U}L=6KNncCt#wwMP(@ zHV}ldfeImP(@0#R68DI^Yfbu+e^kWsZM!|@C1KDESt^f=7)GA7)^91dDpx^v=BYPE zcGnu2?|xBs?;dn6>3aWr|L*S-SPAM}2S0!eIuZZeYE-kNMvW}Q31#Ws&9Q<%1o6ui zLKxvk|My2I7W3c4)FW=gsQsAC(6|1X>+|ye8*%{=O0c zwTo^^Dr%M0Di{y7dZBmp;>r1D6(isQ=7RJNVYSi;Vj^g^cLEkxRqxLzl`9|2F7vv} zZc|Z&Xwu1DrQBibTZaPCphJ&`+pg0)i>^O<c_yAuxwMB_mo&#KsjZme9=V zr>dAmU)YXE<{BjKT`4Nt&0vPBZM;$c_&ZcF+oGjcQ)5u;zukw_@jLShv00NMpFE$D zbYC;z!}HpQ=3BF23EB$$SpFmM$dl|v#=uKAR2*ZjEa)SxoI2YCpUj?X_LRr%iCp$W zACvp(+F_$H*%j<>U2bfg;>+%S_9<-$QuSKh5?czZg~yJy|H(bohvyItbva+EvDVTQTcMP9FMusrlYz>quci3B|u|h zex&=-Qm6cJ1Xli%H^DGz-awkPNU`U~Si2mDVe_#z`m zgn<#0n*P0!%$FlYf+i1efr?iAmqkbauavGtkiP7Sl-H(r0_sPln=to}Zy%Uk5N~UB zl03eDKVVeePp>ckqtlR@PSQ?>^i&h z&ikA^2V<``+^prd0h7LG9r_sA`{M{7PfVN>PT1k(xbt+v8h6z`T!)LDg%Ym4&t$?E9SS!i;bM+ejvZk+D3(c=?s=)aK` zWKTa&1bj%co0d190k{cYS#n4o$VS5zjDrUVjb7FkB7C!#oS)O+tgNK=TCwp^UZ&RB zddO}LdyMlC9I9MN>;2#`;ONdh?q>>Ck1$X&zyCzt_Hb4W#i8;3ec#0Y_l?0Og?NvI zp$1T5nOI4(Q|HApkspD$5HO|kb$dU7S#C_EJJQy@$Fj};Cbq?GX|ues(m0RSNdoLl z)K~E+{-o;h*XBRAM6PJcSP7W=USHpLuxfkJC8uWR0Ity(?=w1s6Lcj~xzB}t81Z}s z4y7N<2|GLicP`Khg!D^Q)J1&=USQ{80)TTe0k{eAKsoh!uvw>VLk`c#xqAzxyvO0Jk)OShjbB zPue_L;TMI~o3DIVT+En1{;s%}&p*6)z7;|cPxHPa?C?Q#>U(*#;FIq;5(>I;5IWs7 zb`sKEAnlDbydK}U@-~d>p!q2Wcwg3Ei~0)uwjFVwK5kwnRVGTnO|m#0ln7pP5g`dD zRYyzjq5Gx(xK0xz*)-#L>RG?Y;* zoIo#hu~RP%kM^n;L=9;hV&Y&WFi&EvYm=x#Zg#;DOvSf{U2fnq-&k^oShQi6lx~Fa*Mg0@JGncugxj=O*ld+z`@41Zhp4n(bTcJ zfa!99YD3YZJN`X^P>Z_O+Gmm=qpy7kEtugqe|H_NTb%YY${H!f)703j zJm95DTTk&7U21SJ(ogvX@auLy;k^4E zP8wYEn0GRT?c;|Gy4@@-I3LF8yfH{gX;N5@@E!vzl4XLnny(8wKa$R^LEwu;zO<~8 zkZIt=eA;`EXT)19k9>EgI8FpKYwLKX#p;-v+!hKuAcOvM!Qc=X%YHeZu(V71W;v`3gLUDLeW=Is(b6k7_FBk3w=8Ad#=*+!xY=3HS2s!iOv&DGTCUsuFVHmzACGx#RP^K zk*lJ#J<(Is{N_XS<+1n3Anzqd{HwobMo5j)4f2+&>I zn#jWjUpwyw6z4}YA|*Imks_eo6e6BU-kl!ghs7K_T?8$&)Oe?vzoiGA#8VWwqcV_a z9PbhsSEO!AeXh$jf@vhu;Wr!4%6^wbwLtM?&qJQS;SRHexERa$=g+S-1gJiuoStv$ zUT~x|-cD}>CcLMN5aX40?AC^E&~POuAH%B{9?;+Y9KLmfWkh!>a*_1T~n1 zs4k-^!u&co;(=Pmmy5TD9e*Yh&xG#6qQ?~DUhn*Q3!vIMhXGXpWlvCr@;*H}_<69~ z{^to4QB8h}e|-XTM#X~)n_*TkX{diX;oH7vly2%_D#L{lr3O9>sZWfO?f-e zca7zAY&82*B2euo?9RzV6EBS}yPb_X!dQNXc(HezKi=Ma?Odk81WNr`#=RF78!g~g zk1AY&n{~av!rbwr^D0x&tnAr8D&fJ!G&eW-)j^FeOLNe;S07n?F4~i?4smg5KrZzA z3rZFQ)u%k8Tr`xrV6vFf!O|N|KPb`yW@ZL!qAgfU`M+CHzx&4>W1@q2On)&y08VI( z|19_Tya3|x7P?Q=5N*+bq+t$hqb8<$lVmZ&PU9N?5>a~qn5ew~(-AQOHgggFW{xT}h!Wt-{4YcDXSyc#UVK%L@y4CQw z4T*79tl^f-lW|4Dlr>x*o7rB_(+Ug`(+b#7XN`I8OmO1Ci3uS`07Pm~Yn}o%2N}}5 zJ9uj(e)s#<41Yemg?kj(_RSx$qvGeQi2;`H@n`5C>x$yuTpmYX({z7s+WP1bfocUN zC=&$<-+=lt!3j1{zMh;R1+Od9_5Tp7iqeIkf2yvke&q;4J8T9Tp6CK}w^#>+JugD} zn1IWMej|117{(2jfp8Qf`Fx^uFqAm*TtX-R83AcTzL4vF0L2q(w;0~?PL>RJ2W&K>fH;zp< zylh4ZYOf}3VdcT^Px`5V4;FS6orp}Tklr0b()oFHD^7~{R*pJOTq!Ba5)f**8o1I= zy5!}iQ4?+GxtD)dWFTfaqm57jyu!d*RmARdv&YVjtV;M}d9+0fb=lVOKH}7A zVvnDo)Xj4%q)gFe7vp)>>kmQTO)9fI_qN=Xl^VI{2w658j#sQBmb4GhO~!t|^L0HE z4s#WeHB66MghKul?Djc&+X(#JK%{Siwl)#}ZHQ|7=KsHok;i{4mtQu7h1BynS^U=B znlnh&@`~M+NvkQ3&#b#>6em zP#b2s_9+*)XHxeaNK&!0p0j%A#ASC%au|eGwLOH;S!@jXpA=*iI9OsB?=tlvEod`8 zTc1l*`eVW7Qc_)}{}e$Y=TF?U`}T5j)Ywm@Z5Id;(ss5Hyy^7a>6**FI`O3KfuDqc zz60qIgjIo)0P5%af~hkA*rZ9xsas$LQS_pD1+;CMl$^g255*+XyKG^FO3idqh3ueP zT<#AFq^Rge4IFUCoAYEAK)&j^R$fQEgO-aA7 zSXWZilj~hIQiexw$nO4<-QabBJmGQ?2z@K~k@OU@h*h}A0#rqu<*NLX)wZCy8e{o{ zCro!csbLbDa=a*NBZ)oEW5)E2^0LdDoGo|45#h1Lg-FA7c^L~gVxTF%r_iN|>D-gF zzR*H}?#dLN=qiyng^7*l*UsOiJr>JfX9hK?gZ9XpeyvUDJ%883(Bhmu=MhoUhkVEE z<%HX>pIJ~&CUhN`|6J&GXcJvlG+}t{vkv#)sk9xTxJ{FU(E;(JA)6^r9f zn?W1kl{t|OF2ewjb7;Z1mh-hFqlv4Ga&)NLaZcb?#EDk&feN?>DFrw6tp$H$UN|>HUi$FB!eOz ze0NgnN6ak2IM=n7sgPhEAIOksf;>7`T=VD-d4EEJruB-l*!sG^!U6_onb))(6^qx6 z6yA>K3NPrGVaMFx+#iZHSr~9fYw|tDuxYPN!)go~Aqz$?w=*bcHHmbm9+d0xcep|_ zQ%_=#&ss%4LlCSh>wLJHxem*0E>SlcIaj1}Z*RfW2^jTQsaG*Wj-bZF?BTPeC~v4& zi*|Nrmau%FD0lcRr-+en0Vz=%d{If1S0C%&9F@`8ZE#wImzb9Dseb#GE$8ihw(Tuv zaf&eu!)M29moC<3S~B(p!-81a_o`MGN8i2(VjoTKQ!?{jSPtev1^I`61Fo7u}E`Ar9hC2E?9v|z4nMj~2$E*ASnXxuWS_9m&A1=+4* zI>(5sg}?E-(u-hQt#jNQF4FrZPp1)gW<}&s!%o=H3To6cd=1-DG4g!1uCpd&kQ=#H z!6{z+qGl{IF>3#eUzXKld~r?skhAPLUA~x7GPiaY7Ig46dX`C|ab^xsb5f?ySBC>j z=yy?yZ0T2XIHZP5Jvi^jAz5LSXsQE2Ya}8RR)3Nh3|6i zbV^hWLT5kfNzrT!qXkNUx0wGd@Bi~Zi}JOATlI6gy?n=K+LP=)S@ z)C{9kY4a-&!$m<3jnKK1n#4V~1dls^sc9zHvSqw+C90-;Za3T-?`sa`BWQ*mS~vE1 zFbqqZvSl2(9NMF&eG_BcI6P(088SKvIhK4nI2is|ZhwwU61Idf1xmlT4DD}WrsA+} z6whhxtZo@2+~Io@#Ft~t^FuC-0%i?ujW?=;PPQ?qCG)HQTIh!rVYROaQg=;Hj#?w6 zSNmB4CYR6CJ+8!-RR&oX0cgt;y7C=ee`=R_XWewoE!CUC6-Xg5+U!_TVY~}?Pl{l6 z;HQ~SU$g{PT1U1XkIF{3t+nxd=m-WAX)@&W0wwCSry5%kS6NI>z7|Yun*~KRQ{Sy? zy~nr&%|ezW8EaW}1p3d#DYARCgz!5`Vah1f3uB}_ybc-u%- zZ#0wcsvE)?DNA+vFcFJ(Opd7K`q|&YJ@)l`-e&o`PvXVjo=Luncj1uEk`=>KJ$;OqoxW41TKdK zb;kDsuB$Nfw6#AMzJGH&VLEf#*IoQ`ps4RA9w6lqH35sW*JUq4ggu{H_FkudPDPp$ zx|G=P+m%}c-z^bB#gE7^GN$F)nv2<#ql>y4QkQww@h|b--&`qa+(%{{7o*!3r_zs& z`H?gw;%@)C8aIgj4bp>jM7(u$LNPg3DO}ktRDwyqE@%5;In7j#YktCWWQlv#wWj8O z70M%A1c}KXws@aG+kXb7a5i756a8>>R1Gq@qMUWwY_ndpnl)~URIq0EsW5x_IzuY+ z5ar@FQeOrc-Kns8ysw+B@zM?}d?6FH^76Pg2NC2krLsd}(tSBMBFOcyw0KJpH6&+; z;)puT$jv#y%ye&1098KGT#rO4bKpc^)~C3M7-lEJ4pL6Hk>AUo&xP>s9>ePup8D23 zzDH$gEgF65Z`gD`xttMbWw}hJSrYk?7s0ysX;jnVV+74(QG3Fg`wjjh@zGj1?8pn7 zm+2XKe8J0#uJBbkafGc)#k!+7U#oK=#QJ*)t_(wxtg$)uf+*88rt;iBxH<#Fyw~Q{ zPS?Y0X%<|-uuH8F_}p?mbnW5dJ_i}guQhvjd!~dAVqycI$+Zw{ehWHvCwdj;kS*nm z)mZ?cd(pHg(v3&z>`zf3uOf#PNH-irpCZPR+Psf^hZLwbdlyBplXAVVPdr2xRTH~{ z;|kYmL2K(KY|F7W7=7}Q@4GD8;>NNpiuE}TEmrVIZ^KQ@!6mWdIpr6t{@ky5&(Imv z(a=-B?i{=MiN~XO@9$yrbXt0~PFIo&B+r&=YhvRT3uktr9c$n+CU`sTbv5I5z81Va zgDLaAwG*5RhL!+9N)=i z>RF?un*OYGNN=Tz^n#WhvZ@cZJ{YxhaKa9oEZPD79&W$t>{uGoZ!ihit9}Daa?EJVWZ{B;xU4JCi(hs8Geo{vHZnI4v)1CCb6Js#^(`;M{s=#o!}5~? zA0>jH3MT_O$+Jm!cHv|Ym7W1N_D+`h;yjO@Emc87gFjNLt@g3*tHU2+)7_H#eoHITdF z>{*w!7G$ND-ysd$H63(0L<}rtdqxN=ziDA#xoRe%yje!cem+u;;*@GRPA{83cxVZY zZTi70swAcu<>I(B_^8cntnztzOlB-+xE=|fYxd4|6h;H|@I6C4_fDEswP51gy#($Z zZ&TL;u2L!u*Kp~Jf3<3@`(8%bmW8?|$_mE}y`YOww6VBRD{uOptgJ|Z%7o_R8$uj& z{YIaP)VChl5N|-gT_p^NgSNhjEJ>+b*mmx+^3$o%4yjmt+SYfa?Xru~a`oK4|LfB|f%kK4 zF!>_L4F*fULnlvY1xdY3T%AN8li}tZh5mA&L<^sRxgR~>ocJ(!i-`*Vp@pMAucC$Q z13mM|M8B`WonSOTY4B7nE^fV{5C0(4w?j z{Dhfd*A0bg@X0Mth^?>gwNVNfRk=~If%|;z>I^CyR_u*je|-X)%nvNoxvL)k)&nxB zumzf8#5 zkt$z3E<0XbXXvo@-t>=3d`oh00=vVE+r8Y5OmE3{i(x&w_v!YyesLi;{EXc)xlza{ zfYRcb4K0*IH4nMz_XgY4d0l#v+$#e1Ax2V12BnRaHh9xO#*B+`dvr!(YK$56EkW&G zLJ&HswAC9YR~qasjw2I@H+4E|jc0x~tXP*(QM+UQl;H0Eo}31)=egh?gOrNtF+Bj2 zVbR^i$$)LW2i&fS41bFgaP9`&fVy_;;!0TX)l@^OnT6UEBFKGd3oZxlp=(6zqBvll zR1OVR&zdScDG3H`E^Z%4F6Wzhcd!}o`W?^eVtWD*1q z;^#w7Jx3als;he0KD8BmgQTn7l}OxP`1-^5De&XiTjuCU=xie7t$e1@kmFT@$QGyx zy)E*jO*Pj+h}FYgf%IJMD=)bEt{b$*+_-Am?_ce%{*h{GLYHklRw(b6z2+|kIh3$6 zza8dpN6p)v0Mf@8RHVR)?Qr`RXTvYKc29351jox&${UJYnw@#;*vyg{-88il4H|2u zR19B5CjeEvK{#+-2F_jTJ*OtyaDWyICHDJM8qc-Cz^}L8w9?!2{B@oR9I86P&ZJlcqy{P#cah+Pl*X}-M%H&e%g z!}&)P(2!0(kGfaNX2Tl$8_+!hnpNns($I3~XB$UrypS%fo*FI7Lw0e+vs9<8@;FEKwYha6CkkZ@ zz!krh#$i;hvb(f_eR#Y~Ibbojt8h4W7W|SJ83N*BQR z@gi@-@qoL7J_mYrwuqwi00QNJ2g-{LZGBYg+gb9UB7Nd6Elopx0X%!yU$0YM#qnB2 z(q`1cJg?HgE&GB%A)gE+7)T)})Fg{$)4mBqZE$G^1u>+|EUK&o|Pj=^(ss zH){*zHb+gU=jT_WaEyA3r*6A9wSt>*nq%_((wYO(7Mo7qUG zQSV+>Ou;6sl2+rqD~SC)oGxnC9~7+Lh{Jp~2bkW>jMfXHg<&@wAWG z+@Kn`A>SE8Fw7bGz`UGw{FfF$T6~77h|eJrA}tvK-PcM7b~n_HQz5|G`Nz*_L%!$7 zZm3T)7-ZK~2*iZQt6Oj^jzy4v1wKb_L9nS2=>PGAsLPZ^!R`r0Scy{EiH6$WKj&?X5FH4s={L*+{D^0{0W#wKBHj;%`*y>Q4CTlEzS>)+1-rDHMsUr0#F z(qbLRTNlr=g5Ewnuifz78rYY?bRe22MenaJy1L@YwLN;zo$f3{@wG#JmqALnELJz} zE^oBi{6y}-LIvZ9Yp|H|&1*9klHWtUg&Nt3l0`3QModzpw`Dke>+jrF7m(oBb=fI~ zACqX@wu~$g=RPr@W{9>`4>n{7jEVY4G~=Jp|5EQ=f<0kFg_uE)>t)~)BI&v??Zz7I z+eP};Qf`pG8#N05{Gq13XotzVKhrws%YBE;mZ zc?>7;|8su@fYC((1vu*R#JT~B2fXp$jO<&y5{-^!1f9oPqH__;WarajwP%z4A=Vwc2#Qc%lS%i~jX9s^)xd%VgUpIwnu~G&+zR_sy zEkR?}1ay!)ZvqZKY*JN7pC)DJZz1d{_~~IkoGFr@y!}DrdAb%t zqMH`&hlU?MBc|{oA%`PrzIox?olEP;leP0!=2Y@N1?npKUSQR>5}+NA6gpJZBjvFL z9+n}3nIT-7pau!cA&foJ@6SD;u_$(R9|^|oTeyZ+)NwEb+-smHPBr#M9zNZ!$W~${ zWQ2D=bk=|C7fEc^@|)|d5-=VGRfON(_Tmd^89jEjrGXKp?_XR_2V zwQlL^2*=~2b@*6u@vaT#Ua3=UCJvMY!G~PIaBp6SgvS$J2K89TYF%Xi2RA&@sBx)D72fapuLPdq1gLjmRn)HS@&EBT@h~Ctv~}vmVHET#5zoUWA(NhEA%Vt z0=F6kB)`##ynz3CUN1cMzv}!<$Nr(j#qFnRUPAD-ZrVXn{{M_ z`CLxRqim>=mWWS$DSz8a0J+;soN@52$jIk#BIzqH+0b5I)$#mIg^ z$8wvOJKi3xf!F0NXKy#rS;RNiOB%GLe{)G#%~pr(>)fg`k!q+B+3 zpP-F)Bm+%zJTkSOL!*ZJ^Rk-l>5Ku8=O@sw3|hb;()F->zc;-#vZFMa?jY8E+T}}a zQkQ>!{8*pTp_QRsI9AbOphI(eeL>6Z)`b37M$(57M7Yk6M5?-4pB^(IrGE;tJ$>@K zM<-cFXieuuyC{$lI-q7cZC|NcQ_Ma~7hb7yJDMY-8*dpIMScU409M-yjL2jIX0{a8 zf1%06Z8?(v9Ap0?h4Un1YVNhlv#%}3QOj&!(L&mFDsg-fcPR26$8QVEb+IiT*(1V< za8r&E_q@yNoSYf)&-el97ZhKIns=^G{5j6`+HLn0k(a>^VnCJ)Y#2IKsJ~9HRp>rw zGGQIbqTi>~YQ%WH0o0vtAV*zq0f?uTG%9sjRa)zCv^WbrBV_zWUB?c)^CxPQ_w+Dn zh(OX=P$~bXP8-2Q35y%>eKrm)9gktKHqm`gpJBM^^-i-#enq-{$S>^yv>n;OIk$(- zP%fi4;YD}v+4k9Z1nc!gC5PN+xwXhTCw_iK8+hJH_)1uElnNr1RBq8#dD1D8Ef*s0uFQr5FB%j zeLV><8CtmY^nqIkJGD@xmrq{jQyU235qETjGM-FG0y^>XIR-ot7dPKfI=jEni3KuC zpk17B8cVlr=*%~DqX%pq2!#3BCx#j9nx9oTim~55#hU+Fd~bczrvcvkr4xY>Es{uQ zrjPS)@-=*H(j-=~3baLaPQnxO_l`T)55wOthYpZTAEO+ zppdo{v}XDQhL|@yR@7Ri6`-;!`&`!pZ15QmH8l!BOL1REFts^-nfhD9_c8~9ivmrkGX*rq4$j%F=q zXmt04ry?tq_E_RQrz(!!XPx@?^MC?~UH~PLul$=9YLl5?DGX?@WeG?q2PbYE>;X5MtE~GLHVs zuMekI%nUD3lzlmrItE>()i!HL1O+cjwCf)8kJ20@2_qg}ieyP^X;GMT>DpJ66c5;vCX+1zYDL=%Xsk<&1Jf!* zPV3O2yPjc7ry%()>6GV!@1amN;Y*W`3R(iZH6)3}j_eH)0++QrNMC! zU8pESS8Nu_9t2R@ZYD})c%N(^0rL->0cKR!!`mQAND+IvKqh{rteZ)?K+ff_>cyG; zwra@pgAldmHVI+(AX?`r)oe1ahOOB9g^Wg;3+G45)mW8O;OZHj*Jn#}Jf?2j?r2MH@)a&+2Bk@4U>b@sQr4Zs&E#(b{& z@GC@;9I+12gQJS8z#BN!9`<}mWPo;*PTvBYRTejmimcz~r*Bch-wB;C9orl_V0fI@ zvR()MWjEFKxxDx+L-d~Jw)B0K$E}cF|Hnt~_D!jNu_E~o!>V7>j{LSTd+!Yu*>Tky zK44yxvUXw2U5m-4OO`K94P*0eywI@v?p`m!s&?9$*W`L-c>k5FN(}jxNNp;CMzhOH z7eW^imi@vgmJrLu!~cofQ<(CuRVmBFV?6Qg&$bV(412qvk^96lBR3lnH2F;tRel%{ z*OMz{LpeDpBe)Y>Uf1y557??q{B-+0Mr1&RmC#b%C@j7{T~Vm|^P)RyXvKBZhmrGQ z3Q#}%(^53jEu!b}O=^p)`tx~3)2R@eH@6K1?y@kqY@Vf(T+)>yG~SP~ZH~F>)W1?B zTbnAffyY!j8GJNbALd$W-ZX~0T_6z&YQZS!A^7$lU%^RT^L#5iOZjAEdcDpjoFpnr zFYEw*I$OVk3>tF*k^=nA(cL3>YE@&66_{25knRXj9<~Hu|0@pzP*fxYpH9Kpt{5jY zRE#c~QY=}CTwPb$;-?RpoO{LI-4`>KL0EzhiB8C7MJyk* zKm92|D~HPW%$XWaQc|UVIWgLCQ@nu@- z;`8&xrmL(y-`)}yT_bJ06Qhn0+}=gofDk=?BvX0k0t8wFc7r97G7W>E560>U|2v@@ z94M0-h&>b1<4p+kP3T=?RP<`7_Evv7ETH@kK+oL=*xe~jAF+02G+;DoFRXx94n{*G z?V4E=T(7ZDg%C{*nNo)+Gf}s-PP_(avIZuj25;B*Dv~2YC=X`VSs8_SxP!%$;b08Z z0_m1K(b|3kFnKe58y@|^(JsG{!Wm{(yPcr7(QHKsabYbMlcB5IWB?|KlOfL?Xi<|y z`nMJrF8%{Dm;M7X(-~{#=U+jlWmplMvk_{7v&9iqcgAHr9|-7G5c<%0^n(T71>>n; zFUrVoASdHI_E5g>JQo7e_OOV8j%Qn3=3dfAt0~@Kyq_d(u@jU3Z&CT|L=XC|HB5t{ zu3Ul;pRe--f=$(l%Q~brLZ`iUb6KoMD{dPpwXgf!ObSIWJpUmI#%|}Aosph*UxTA? zB{Q|}H;8lA=oGffpv}~)hLdb!2L7-V`IjCLA6_iwQ>@C?HVq9W~LhDk%ld~;Fehz~!OG9?zq?MHYG;O@+z^sVi zAOv|t=nJ?34$RW-PIbbkr`W=+$3_plC~-2HA*+?)bly6TNR`)E9YW^7Px{`kF_Eo` zC&v~9@=MsShSiFnG9)G=fJ`kwf}sI85!(90>khZqY8##o>xE=^_dl2)E15}`Zz~wI z_H`^5^}E=7M_I=4cPm{H1@M+@*l@oyvMkTg;+rU%{jwxjCXn4Q_WM4~a4R3>1N8{8 zrmL~!5xAzD8eC>;zT?popSr#-?#r~F-L=j*9N1Jx<<%CQ1h1;oJH)d(Pu0VOKvzg( zw2OtrOe$#UR*ckZ)?$!?^;$#PB2?XtSDX1y4GEw0Mvez}qqX*^X7fvSW~yEcxy%f2 zgL4(TmwzFii)q_|Ge6L&Db-V<9rGV=q6AKP`(7}>PMm(F*@4Y&PNd{F$}5XmmtHsd_z6p7?#0j?}kAGfRH0yy7x1I^L$@gWO=KsITJ_0|UqYW{A^j zD#hld)7OT3$)#iSTQB8i z?(*I03EIrd)Vxl8C`Q8jfR5vfwA29ElKfg0fu6?hK)?nM5}a!QT$wTRR{&XPYjXY9 z_sGBNIA6K5g|Ee(#44~L^V16JhtWQq@3%saR^C)wH^g^&7_0T3HqNU7OJiO6FH0mb zTgZ1wvHWQNz&rz;4ZT5Qp8bM-3$K1--o{jkwc#&U|VntO_)595G~o6L|3>rcV@K=HDEfC8nVLr`echsw&>+pWrGe&t$R4 z;pJ5ehNTfvg8yXR#m2^V-ag#V?84wAq0H<)JV8%=(H1w^vPBT#iw@RvZkiNdcbotEg6mmN{nva468`w}}r`cs=hfnK!B?oI@GEaTMincMi=?#5MAH)Gq7 zF0F?m6Ce1c)h;6IU^0X5>``jFhq9ch6=($WYp)H>;}lqI5+bax4{5hP6mBbD>*26R zmh%4}%HA?4j<9Rj#hu_DBoKl-!JPmBf{!gqXU)6wHt}C;LSh9P%vc_Ax8VD)#%u`WCPlx6|LaN0F zrzsTAMZ^@=YSKyIdXaMC2w^-&oe%J6Srg3=Z?M8SXNNj+$ex#IKI}Jexfkt!3h8=* zW^Qq{&xQ1#N#7cY{#DZ3vkzEc>rs2XuB3O2Wf_L$5-sMZs{T_-mr%3W4fnh*Llj^8 zsIAY0>q}@7tQ3%m>+5|p&2T;%SIXQ|a@fkQUsx;JQ&M($BU1IZNOjElKlSaIfZn>r z4B0J#{{aUDuzK3CraGRi|D(?aXu;+$oXPxRSE%EX6JKirLpL}=jIJ4XqAo?<$$fq~ zj^rDGf3am=QTRK2BduW8n~*mh7_R8_&}=fW^VUB^52m8MK6lq-M!9scjuvG+_T}o- zr>LD;KD!{HUiQ#%bMuO?Jq}06Efo2E9Qc=-p{GO~KZg(@exI#(ef>fW11&gcVl-54}CJAP3H;a*q11l;ha&R6S$qK|K6jiY&V(+J@0FOS&K@BUi(_|p@J z10+pPTj|9_EzG0i{#0$$$1spEl}@cpk^MwA*^;_rF|^r}Ig_Rr+xI$`sfth554e@p z{751;=j>{~G^1fP?WCRq5Dwe<4-@(3IfN`)+j>}{DXkmPE)o$YVfN0a8TOew4UJQ$ zV`3`b99`|rzGFrSyJ*%ZEa4D+njH(e6+Z7R$o03nj_L4Qo?-hQgocsn;qcvNHr)JL zINj=6q`4;?5rf_Tm-~t;8KJ=AlIa*Z>NNNa>i$Iy|K7l&cV(*$zmZv)sWw9(>afeV z>*u=clvCpl!Bv|$wg`V`p+UoZb^RehlLB_$A}Md+_5KN<4ElmJejXM)PO75*bG?gY zwh{%kK~qq7{({7hYFj7XLbb+V=KgQf1oBA3!Q0(#fyF7LsT%5-Z8t}SEg?O%5=3~6 zyPcA+Tw~GEqCqYb682H(p65S`6QGs+88A^7U9s(IYP}b$H=ZCYI}Nxij-MLIu^FtJ z_id1Hxs2SkHaklwt+PqxJ1-KMIJMxP$H(M7FvJey0X0E?F7E??(@L%89Wcn)P^6LT zM^}g6;)ga16X(v3oODuOedXp|@~m0PbRzz-`mV#PH@}e(HzMBgUtx=11JBm(m67bK z+YXb2)+kmjzgNbeYSJ#MOX>Nuo4+lfOtp?g9E>oIqef9zt~6k@u-EXGG;?J^+vOwz&Ts8IsI1M+22ZV)hZnj?rEhF6`n#_t z`)2RT`mVNaM>DtQgaPspF<`dt^UjkVT^&$DEU}R>eMwR7c?g_&1R7Q4FzigtYscY! z0lyD>ix)`(A~PJcd&8&U?ta44vo;lnH!O6;E&O6mH}Ng;$^OC(TZ8aB_Fg$;FS!}b zO>XI5?b!~`g=uMc@&qwhr$+;H%t(Mc(XS5oLiDDcm}F{uM4Sb=rk4Sia^c-H<0-QR$OsA#nC?(S~B@+dLl+h01tl6IIXC31|gtt(brU>=@jds9>s zbq@olI}B|6|~ddX}m~+9^1)Qdbb`J+zLhwYlYNW`nN-Ci_RL z;+RAi%^E*u-A4zPcFjuO^PGh2YnQPo*nunSmuN)&mD??EoZq$AY08Qlcy=0=dpLE+ zl{NAI<^dlC4sc;^x&8XZ7^YaI{P~D-iP)->2nT2@nLt&Td2qqL^$O~**FM+6nG*m%wvMkPxU3ICgFta zFK=waAY1yvN+A-KpAOqGaZ;Fu`%d9PAsVpvKa5+n3T7>!2&xLfvzA0Z@KLKYIBTpz_zY@A9JlHv@t4(eGczp>syv#Ru@cT(*Fjcu(ip-K78k z>Aa)#eW#}x>`&6M0DWY-WkHt0IWZUhs}ymex*9X8xFXa}i(NI>PK%i(adO?Z&m<|> zPHQ{`I0}4dH@ooiqnVb0&sMC==+hq+vr~IUa8!Y57=OaUgh4<;MHs}?5(3~z5K6nb z@Gv_qOEc9?l&5sZx_z|VSAT?@J}w$aNgg)C z{d3iU?hrsZ9#sSo6DDXfeY&Q9!i#su%Kp9ERTnVz1a$dZXs*f(QLz1&1vubu=`u`K%J4F^_S17_WiQ6wIl&;Ks) zc(~-oAP8(#dl9X5L!Db9E67h-%4E)z_5vv)eWAMZEP_}bzkypa%b<)03|fwWudm#D zQG<%;C~T+;>Hbr<*y?3Ic1q^<7a?~O{K6-tkTq*H5zqHyL&HBb4Dh%45p^yjyOdD> zf(G254%#mvpX+KwJtw0Z8m(2k9zSVOkZd4u(HhVv_wi>sG@hs(V{$xx^Lh$M2XFTv+{nH zWNS@^dny|9(_Pme+y4_le&%?5>d;(!3qJ38u)rUMhWs)fRuDL%iYVlW4GACEU^UgU zKNzUgRf~K6R&}-3AFF_GWv{r?m)i(ufsDua|=nU=eyHFpY>7d2xK! z!~9u06JaVMv``_6_xJspH9y<&RRlQ99?-6~bAy{c@d(~JL=Ptj&$J1K5QE-AKVs@yu%Orr8X{YYJhjM+GOCuYKaYi5ZsLE6MhSGm#5L zyAYIIFG5PZk;J&pHQDGnW2+p<98iv3zuG?0M3A4B*Y}n@`y$E6bxyuLA}>_Ctp4bH zmS;-opJtec&mu>pXT^CXQxURbgPX4%T88iRa0+&U+<}@3_2qltVhTlVm2eg)QDO9O zjL%gr7)2Z}rjuaU`cmVORcGAQ zVG}jKGuH7{@q5xlTLsQ~k3eq2l_OB-GD~}&Q#1OmaiA!Ngx}x4oaiK{KDmJ+$K+(* z?>x((Jxd0BLH;cN+yNJzV z`O;Xo$5(OwZx7Mc4{dhP{W5MP>ezV~&0$$fh!#R>)V3?WZ_Ilw*>Z1e@#-U1G0 zUhC(aH()oO4$Is8Jm>3kE+qZ;>})dMD(!G93x>FAAke#c!%%t@yT+St8cMM5W2ohn z(}*9ag0EinEgr%e6I)A!YDeekN66zcIUz*KqXyr}$?(oH97 z5OzBc?KV2+p}c~aU$1-G??Bo7mk3|AA>DMikRnl+)4?d2iaJSQ;=n4ZiXwEPepBk+ z^Cqcs*lc~R6_&y#oZ$lp?GdCd>Zu}Fn?pQySCjkdzfnR&>)3f1V`;h4tuH`1NQ2-HPaeiLKtmHq((6a(}h0#?lG?8$>$e17s)FO~w8 z=O+_y_lMuwVF@TQOn|J3&+~Dt@m^B?;l=jv-9FesQNr?@MEiOn5uq6?kK>Hxb{-Tb z0}ctQHC5WkA<_yBQ!=}F&??fsJqPnctFG>!lW#UZwhBn zfy&eZXGxzZkH~9FoEATiZ&59$w7k9=&pDr0L;$7*qVoC8yG12Z*sNak!-zlIbXEx!_p9NV1Q&yjpJ4DMmcQ&*isi~a z@ZyO-yZw$=b4EoxHRLVd<#)2^E1DK|X11<3|MG?Q10o~U?H{XFt3P8%0EoW-vZ2XdqgoGX-qp>_p~g#EtvN{*MDcFjC*R$tL#Su#FH*S7sX-Nb zTl>9@c`}j4yTXTi`N1J)I)C?grBi@D2G)={z^}af+{nHHl9q{Ll7x@-QHbu+#Wu0aOCS)j)C@4U`*O>0eRMWD7? zl0&m*lRE278M`-veF+>fYi0?gZz?;r7~d6QYwi&D>>kFn7r#G_PGRTY{id#zcp*SjISSONe}sG}6`1N3s1O17H^O zbSy2@8nl`5c1NTgeYc9j`jya{F`W=}X(~;ieHs|jL!G@?pLYnXS(uKxkmg!F14TXom4kk^g6x1!=C?q?-mR>|Js+sU)-6}IVm=o zVB|$qAD!=SCYU^o#3r*h#Y^Sgbe=$gmIfEVFW^6WW2P1R0M!Hfs#ZrCjhL7p;r)76 zWR#p3&5R{*R&Uuhd+Lv(v0e-z-z}hy$QgT;p?G*6JfNUlIJK`yFoi(ee6x+9E(%3A zlqTxU4Lr;tU3{3}vzXg++j_^H&j#Dy;&&W`^)ye}QjMWz=K@DFKXq$E@`b3J0l(b; z$J6Zq_Tm4JU0T^uomF`aBkkln%>=bp;|BOG14_xg7r~b^h@cW`A%jOOp*K-!ODK)z zW6scad^e>pT(=DuLGGA~uR&?CcyWD$KEcCYK&OS!ALO*y^c(gVzEojQ8D2`N&i2c} z;D$C%`|TaEK2L6wqzh`pY}(z zf6JW8qDfDkjq8|jKQyHu{Q9fDh8c90S67~&J?DBqX+x4V6(A|>f*^nZLRz@NE)-=5 zc|??UiEg8}y8W*86JSt*fRWrs7$|~F5T}qe{4=p1pER;sir<=e11~Diec*t(sCAiM zZsmmsp?<|WAXoN2N&1>dJ@S3<_-&IiR$Pb2$KX_ix&Xxd7_a zp{iR9oytKwvRA(Pt#8TwCSr0R->7nSZ3C)Erlka5Obxnu3C$P-y5u?@?SX_8_5?S zW;#lT+BYppk?#D&`3h2vPAyptAJ6li9KRI#S&gsF>QjFt zCVElxc>Vp#VGA=iCMMx-4>cwC=ev^2(eDh*N>Vli-pArDvO`KkV>yxKakh_=VDSg2 z8J(omrGF|BtylilfLTS?L$*e1=l^+64%Bn>eHBl+=|oQuX~@L$N+cPW18UW%qB{if z{Uzm7l*Ti{h9_$jsNk+#bZxb4gCO`PBIUY{-JRKc=7^d# z6`9XmjJSM5(jqYD#i)5Yc{o0(?x z_MIR)3nsarO48Mfe3*x2U>&`97MxFA^P+lkqq4FB5LNwn2qT8>qmiTE&cpc}9bF#wLB;bP z%J?TO-a>xM{XgDAn?}$Q(_L9qN`{klXj#9d1EU3DV^EZ3`YB4VealxYUf8KBcH^zZ z7;{+x^J}^I&5;SDkX07iCZVACfy7k9c%w2sdK2hj%JM4Y+v`nCr=4HNhpn#}1nSPeO@)4Qv>2Ka+`lzE0Kl1EU(v^%l}@#$kU~% za*p5G$X@PBW@~TXrOs0P*tczve{AU!koVd3lKDy~hIjVU=108$&`4{XE2F8rH*Gx0FvkK)7bl!cli=n6ZYTI zLLj_Txh;)A>#D)?s06@r)PMjN94`j2CFsxRZb$pzu28F0G+tBW4QWhuYv7P=VvcI^!!w=3(dyhgqgM*DL(|lx*Np+3+<1YqZi>o(_2;Y-6> zdMm43%z#{~$qHAOEr#FkMZWp}mhg~NgnTce+&eY|?C7jTew2;+VY=MC9X%gjEE;w% zC)=o!ThVYFVe|4w2HPhlX#Q9V34a;oA_P~Q(Yt{O2Pb?r5x zAz~`7QHMC;8wI^)Zuz=_rzWk+&L1-&bF-pF^r~1H5`N#Rx)KZfDnIy%3lC5$Nu3rO ziAH?wQonZ6zrnE8afKS+o_k@2C>|>FeD>!MWfJpaRQ%5S0cs-!uE<6%y3@wiUtEM* zJ7*aLDr)SkYj1nJ7Ai5G-L;Fo8omf$R;$GeIP~IJ6$Q42zPeuAGuQpRWB{-KKcWi% z_sew?V<48qzsB4DFA1ARJH*#oB4(buE7xv8j^cZB{v)Ja8vzElFU0hk?4`D^?7RoQ zpS;z)vmS_@%f2}3OiqZ&a=f#@^B!36v_}kd?muPI*{{FyWr^5tQ&L%N)SG7Pr+n=A zB|YUY?U%L&`%6ldkTQf`hy}$2`+>NV#z2%7AMK3WASkQ{bw|_xw#LiGXEcC|hnZZa zxSmK%%hS>7J+kiDlGV?K@VxPRcSkEr?uG+)&W6#+ z;ji`W6Dy5bRfmITW$%=2W%Xtq-82pWNGP%Muif`mO&1Y41AO*Bs=`purIIV#N%-GN z22*xi9kYK&+PS>IlcAx-6AI-AeHq?ZqOQi@dST`%1ET!F88^u@Bzz)Guqd>dyuKvk z<9gY%9qW_Fn6i7-z8s&|;|_jwji3K2k@?0$AT?L*?)9DvdePH2b-8N&qOZ!(POnL5 zqal;T#;u;5<3Sx+d3Sb|^vi%#gBC}Zo2A>i&G$HOHcAxLAZk>xiTl462UrL|4;Z@?VF* zg1Q0sS*&Vq9{B+>td`@Kqbt-uwum*h@+2Vaw_4G=7V-xV3IiwpNpXf;g5i6&f`};a z0}a4j=YKMMFL+UzNJqHr z9yidz7GyA|Rf1mU-MYILf}&2>OL~tuN=J&3&dw-`&JpRYdiQ+=ib63ttAHAdv}gcF zSu=Y;ytr=dZyKuoyi}vPjil7gY8$H(@obr5*1oGK0Bk@`35{-o=#<)n{Y{P*2kR-( z-hMCno6>YJ>oUF8;Exl7)DqIUGE97QpuUwuRLO#V;^F%Vf^noeb~-xtZPI7sRg4G| z2p%o=zM)-hC35SKo722B5Bno(!A)9WT6%|#c8SP0HvufZmy~%)@u{ z(BF!Gs=msYrb>B5u`ESOG0`y27n0UgsG7W5;x@xDo$gWv{p_&DCtT)5+T5mF-W}+K z99w9o4AS)_J?so;P+nc~jO&?b(8VMp#M&Zc%wv^XHdOb7R_c02>P|Koezk$~kFD~N z7pU4)?3mPZZ{6U({IO{--zEsjZ==BLA08%!Sv&cO&g)u4d4KgfSv-)&z$;AmWfW%Kgy*ek zhyHbwZo#ttRAZ5qw|bzdFoFLALxb@UcM0qx^Gf$NNhaHmy=&XWZ4M`1!?Ywv5(Y85LF)vWs_O|~fo zPb9o&nN;@Oc)EKpRxS+i_)Q{QLU1(=dHA zD7G)^D+}5f|bS3 zud2BnPMx|;)-0o_2ROAV**Bud$9#V7_2H!WsJ9^9P5%)Tc75zV-Rmsjm@DEIi@!-V z_R5N@DwI%GCu8=Y=lM)adIa<2L5@_q#6Byp>@|u#kI!{s3Zns4_&iQe>i|YAm*nX~ zkQpG!vF`^Uqc_4ujWYo6u<)teyB}2D?(JHx(812!by4@L8a)0k`@bx}Vr@UrsWbf< za8&WapF~)An1S9Xh(16~Ft3;?*i>VpFH~#ka6HSiq|AQ)*V;ppQimDE;v;QW1^ns8 zu{^(Zz#+@EZ)hO^y1zty01wLMsauVo0UHz#0hCX2Ap6=ttN5lv27qNi`$Ahtf!8+s zC+}*Z*7{!t3@CJ@2p2Yj0gry6={UT!)&BUbQJsEvm8jT8rKQP-s=1YZZJ^@&>fQm0 zk_a)91?y&yAu^YIRe_41hviBy^0_xo=e?916XK{M+V;c*Wv`^Z(b(DtzJQk1Z&j_@ z^~mSDFJZclfWh#nNk4vU;sec;E;O*D;b_N82ER$wR9*V5N8ZoB#m=*8hUt3ADfU86 zc+&vUk^^<>RCIXOp&Coy^E=h~q>CNlKFEtI@IXd2>_Z;zl~iiMr%KLVRw5R2jN6M5`8-u136{F8tD@JSHIK zQ%d=Srabd0Ude3?GARr0b$}-w%iL6N^3Q?(Z;tor^4s5Z8j%s|y2sCJfL}5PnCeMx z&kZBL32DL^D*V1EUGKTu`#FbNp&3b7nj3m5E=tjWk&d^hBqNyd z6z~sX|Lr1pY4!Gdw((K=2Tv#Qk>3XZu`_^Si=a;m?GB}-Ta&OJ@xnHLk#e=S zg{~w@jzGqv7h>qo;A3eq#>s^Ydc3P<;44MgewerNX-%5H0|Qt}7o1LmbMX4WTgQ9v z87$p*@xmYlB0`@Omtdtf-i!cJ=U^rLU_4*v;ISXe?_X-$ukZk&P2=7(V9rto^jfK~ zJnc}06@aq0`y*woxfH;~jD_kNUL#4pwgDBIyY`9X=0KQ&_a!&Jz>-z{$tyK_bwCQU z9zGiqS|(L(q@mX!Ox0Xg!M3;}h~ht&fF`2^SxgC2VOu2F{9yG$Msc(I7M)ey8}I^| z<6?+{x&z{oR{LV4uUY!evrFD-wd!M8{ei)U?Yw-Oi~wHIuZrkm`#1(4%q|+3N}(=c zn}xFHzS3E`b+n=`3l>;~KMTw;hE@ci1EQbhP72k=Bz)tT(s7r84xK{-5yTpzwoln> z#ixL+>5jFk^|?4{>XPtupzBY?M*k)7J;6!O#f6X0-4>_b07zo~gnl*dQ#X_yb^)PP z<`>A>d{AKsT#on7(PUrTA{ksC1$x90Z%KD+ZcHO{LjyZA7{2E;60%g1JkBsr?8Qpy zfDKn|l!d1F=JWCVWM&+F*OX1TF*G{|7I;pkY&}Jlq&1jPDtL{?#$<#~KT;TvsGpuY zZ)|izo?)=b$Y&1cUtRUN{&C6NWIk4U@Ko@}$60D@;eD4E=b-{9n+PPKuK4;ON@M*% zCm;W2KB6QGY40AuDnqWw@a)mFsS?ZU!V?O|_MVD$%|qE6H?kO_xw}r+(`tPMdwL2g zFr?fgg418P6<=c4tpC6ev~Jkg|HTu~oQ+FC7tq#4qW0t}5!!gY_xEiQ@1O z7v|m@L81eNm!5I5?@$t)Z)!t%e91jut!xH8*Cg!=D%5tw7!#x@9Ju#=S?teMCr^b~ zAy?1$ZF8GN5vJpvP2e3IIkSO>)NUg6sHlPS_pAWuU3vx8fey#--ZM3?)kC9Zq5MubIa9h-MKCa;O9UHG_d4SbB zKPsh*?At2IqqaL*a@n#K_aa&Lt{R&s^Aj43&)5QVQlx(J_X75dKXG&z5V53t{NP! zoI8)06-SR5lECOt;f`@SMCl-8ABY{DL?{3L*QJVdNoi4Z;ozxoNy3`9HEX>c_UC)9 z0)HQY586)ne-m9+r*JAxbY2Ku*!RHV4K?|4*CS@dfC9I+4#TQe+A&#QoAr|1LF3(L zdh)#}imJjD&uRqyPw_kd`-JbhRwCPWTy!TN57%nfBWc($Pvp^Ki z7+h&vssTc{*vq7%lL>a)<1`+Kwe?&>6fMwOz@<LF!7%rOMJhpE2|p-Y*FqFC z<=bJU`VK2K!o`3tIs}C6wcjM@zq8Vr{lEG6cy6!uBBJ|V8#4}f3?9Va$sa8*AD;|Z z6|6*ZFsBOtr?3lfv%WPyL;(@7abaG)r_8;cP5)B@weqdZG%$Aqv}{B|m}0C_g&xc7 zVNUd2&z!u+**oDw==ev3_aX+hKl|#jlu#^}9&0k-e3f!&Bu#4}b-F>Q`DZQ;`*_%y z+m(vcVC;23^D)p&B>bi6r-?St5A z1u^W7U0YS(TB6nQ?y6>&oB!qr$hZS{qX> zcQ^iEeC|qNff0fA4=}`gU9u@IVZ!Pg6aj;9eI#Xf=CPR_sE>>WGqvm0geH8vhW7$R zO9>fa`by1$lZyGLLcQc_rqRtKMfnTiwvQ3Nn8tc;(mX9E2C)o$Dp`qD4EYFhlWz`V z{Au5dLPORa@qv0jFeywtDQ=r4`4x-FDe9lEyjOiQHt#(mIf5_sk1DBOpbpY)v03zN zW`kGh+IfX(f_#6y1g4TC29+nQ)>oD2neIC$u*MrrDAN?JH&CEd5cnKf!E;xB4-r;qC^_%YTFv3?slUJ-AFw3rS_;-tVJ;`mTMoQ%fRWz$_ zZmrsJ&TFIFo3~oZa6jA+qn+jQM*7G5qLIv~eF%cs3{bz5)D%9cMEoRd8u&hRUOo04 zq*nKO&RsqDR(BV1?wk9l$%1a|du4*eK-_n9;~z*jBkj^GL(vEIa&t^!8cba`OwR?AXx+#yaat zqQZrfQ4$#eHtlng?d27Z)|KXoGpid1!`^trxpG&lucsph)|=4+ing28AQ2Bh*Fm5{ zEqJ}h{}cP)4Iy7v4VY8Rsl)DvjQo{oeaB{EXLz|m%D#)V_YTVSP`IuKGQYwJM6YYubd7JmN5~G#`@jl#Fobr`wfsm{$2DB znwd0OiV)`O^6%e2qF^N5w)*=~`<_S%{Z7Zj^!Jxe<2zyg**`q?FlYLz+S_fdsO(pd zbAW@_h`xM7Anzg3;U{v6yZ7T((>UA9BG}SGIs}cB3K2w`gx#KQT};%>4zs_bu?3Y~ zxv;>N(&3nQ_m9ii$8~yoG*(tTC};_yx~<&gDQrp+f=8|qyvxT#XZ)-$20%(!1_lDK z^FEjDXd%eAy>?A4sNLB~W+7#o6>vp9-n&MVMPiqc0sT=py&X!_%xCf8iz;-79@xE?X_ci$$Y%Vga{- zPb=)_YKjB>fXc=&?>!UIgjUUS(6>(Qot0qMd9OorH-+FZD#Td8ikgC_oGJ47&L82j zoHtVpGupERVAv4o)Nm8$Lm*s)!>By6;Zj0am%1EM;pQZ}X#q{JJ9P7PX(;OGDP7~d z67K@4t`AN8&o8%Mx%H46&s<-{F2jIi<+G?Es0M5jfr`@A*?G4d=NDS%4RD}GiIJ10 z$Jv)9gWi$v4Wak6*SiB`h1xS*qd6GpGZzx{N)x-0z-q+5zdxlW(GvCOqVQh)Hn8oC zx~v_djA}0bzVlts(1YjYF{G^a@QP-Nnfk9z5Cl-6?Af*B+{osdgSo)o#673ImZw?_ zPVF}-;u$Ky7Ruq8`&^B?n*8e{pR2)e1Oz|6(=~B%^tjR+wob`p;~X8>p8Ej@7wn~V z7{B*>oNx5vjY&9Hs9|{1srzcrLJ=JP8V9!e0XJoNQ-Ju-5*78D3|rz}$8jFT!c=AmEFEo9CHLV5N6%ici+d};5+sdJb z@HnkU0`UlA)ZOj`DU_XQNNfR&bd9h1mJ1a$<~+AaeFNjy%Q&cWE=y%_PA%5fCiG*1 zja{$k=i(w@XmAFxx;wF%$9{deW_2YEictP;bckqz1 z1(AEhF~1x`w>Y)@ZV%pj-e1f~90&$On0WLJz1&N0bK`LbgC{} z?b6R5SDHD{Uj;;dW`4XoQx4q}*uQ$)>^c+~e+pZ0wBElap-Cc>0vi2Su>^W&B{EGX zD2Y=9UB@tqo`OAa2FFt#$7TfQ!Yv$9%lowBHLHNkS>--;a#=ZzRway`cfm0u#qq=S z8(`KeVY|?dkw}`s=L9CQhi0_GoESn}`q#Oq3yq<^S`T}(2x*UA;@mV+I%+>Jnox?d zjEc^h*DhWO_fZGdnOu2b;7zjSR)}C(uzmtmkl$r6nSb=3BQ5OB|9aV66^A2|zKm;6 z$Q6&|JJ9@H^I~8jI$DVcwvoARb~kY84aThKvwa8a1*8YWW=d}n8KtoCufmaa5oqYi^S)x5|*AASdeQhNnrXO@HCs>C}k|)j=yh;1^5Cg9vDXR;%~7%>O!3$-Y_D?Y!vWd$J2PnHirw*!^dGvvR3=3#?>0n5 zmi#9bFU;uCK(ag${jwY~)q1e=a(}Lnc*9~9B#pSGHFKrsI!@M&$7*?}VMRY2f>1AuEA@NE2utf+kBcwjo|HR4^ux8Gu%#v&46Wv9cdPIT`$K?R zzF&t}8q|;ZE?U_z2#664!nF4kx2{?oA{@6}WcbP@z7R20f(;JJ(7!6W;gbaiu7r+V z@KF#duMoH(fC6q=P(|*!S-bWZTiklU;K2CNfmg48BB+%}cVFyz9iM_qLJ`n=PCNb3 z3;upLajIS%1HpJi^JQW6`goubPHfmTzV4l7W9{)7o9#V053{U`8sBWSp_ZwjS{a%ak|-f1Tq@ww7tNk@O(g414VeUs$Cfu^<8*&)bnWkRU3 zz6ZAW69y5zQ*8Y zy=Vpe`C(Somf_Zf)x_8D@wF660gQ2j2p_H}wZKVD{Ua_CD>r^N?}i`3CpL|POK z-off58MBtQObY1&{10{E{!l-v^t7s3eOzP|Yb`~pj%E=y-?FgJMU;Hjah7prT1aur zbld|&1$&--x`m_?vc~*FGk0$6LsnXf$Csgu)alRXnm|)#NVh|*Evg6GBloTe4m2|{ ze~y9RuNlKBfy+6`hK+*NW4ZU&_8_-bTA;^y5*PvV5mrOz%W>Lbn~Eo4Y~(-9j3z&I=T2pMcjgK8Xw}tH3&2CdXn@?kw`h zq$ECGHgrUmwp8Q3F3254^K;?^Mg%0iDW>F(pFjrKD~I7IoOU5>Lq86h{34lJIw$7O_#emL^a=bB*4};*>F0RRunTh7~&@|6RPR`E~@mH2PNOeSVAF^vCCC|*8PoE zrOZg8paIKE?T3NrSWnO5h*@Io2WY8ozOe#jTH`5k*3b8L4HFss&LRyTj9cdDu*ZE0 zQ=oU4Tkj^75-h#8bhQ&?fq3&Vvacx5;;c3j8Qvwryydo+en|>`yIw9PjSZWZss*2kAwa~-0#)n3oCH6t(YZv@gEZtq`zdz~h1qo;;~%H4;Y+uxf@ z{PqEQTk(!lZgNk=MSM23xV52IcS5<+egds2@1kmlA|VRy1W;3SmlEQc9E%biN=3})b`=eOm8 zr_|CM&o4Y)Y=Nqi@KeA)4q>?lc!Hvww2vo$h7_#4UYC%S%1$> z>ALPil7C21Q!(Nv*HY$Glp2-#vj5;!g+O_48Fus#o91us6co<4;|}iGNGozt#AUiP zf|kV*=eeMhm(qY41blu!Vo2n+)>pS1(g~j*<`JDTCbIL>X$S0s6NxV>-h&obRFNwR z&X4!}$@ckJ`z$Bf>G(SS7iDi5S5@0>57QytC7{x<2}$Wtq`Nj9(jeU_As`?~ZIEt| z+;o>nxur|GySw3C=>42?K0N>DocD{r4Q`h!=5?((#~gDE>tZYdCfSch4cS$SW<8}} zW^6w>_%Ofij1%Ul5UXmgj#)FCl;H?u{Ddx8ySKE$#H*itjjP-u@+wjts3+==?$h}pNjy6qt zBNaaiTe9D2M5KVTlPV03{j_hDhauRl!6YwWZGYcOo|}mQj$Y951x8N7;Ch{cKa*le z7a1^SvNE1&f%@xB#KbYOr@iv-00wq}?Vpp`o1 zSIDA>w?b1uiT_DF^ej49a0W@-yq1V9o2s!dter5h_vp3$f7qJ12t12}w<4F|)*2=M?@P}9XzIj47lq=f34W;fccfkx{E} z2w&an;2_S<$uq3V4bVwTJbcBsTQ}kG^0z%8PjC1gv__aE?3@W-Q&#aFGm38R(7`q( zyRlCe1E%{fw;rM5+rgH0thBsre!J6%W&gZK)uLIUj#Zk`JWL0^Qa^xf1645u_ z^I~e#GBBqJXQGe2W%?RCrWdBv7ocp&hjzx*ITZ{dZO(*ZssraWx3iXLBNjni$QAtd zdOg>Lg!nxxau3lNn8|?kB*v#ih1Kjs>HmeKE_3?>)X2Qqny87Z>16 z0j)1cS@7v%dw^cNTZb^d@wpuP)u+|e_*}J$%D}a^G-WAP0WT)I-$i%5HmCo``*>_< z?W-=UAr)=q#Ob#C9|2eiLoZ4H{{%Td!q6>jq>!e{2=%f`U<-mNNr~TR25^}C6bGCZ z;K+UW>v;6U`Unx`!eg-c#Fy>;S`lDvEnglQ5MWFrLfQF=AL?kW9Jb|Ae(8JZz&Upr zY*N6NCST{|M&O~z8AJ_+02psLZ-$O|h*Ivfp(z6RV6=VvdokdWH^I43JA`!ewdvSqoMM-OKYhYfHoQ&D z!rnBlpp%|nou+>8V`Yj3HvJ&D0ooKX-=^dj=rV-c7-yei_3^{BP6rltKcVANY#X(s z62q7D723;%kcrFu_$GA3m3B6?rzxC-XEzL0edBS0MydDKTpjV(AG?NslF_x@l@LPvX9xB5~aQREz^Ch%kh%Ysw(cR!}7e9bo?Hh zUS=+=Pn9TVqqm#!X#T*8;gWV};lVCQ+NEf}cmyI0HW2PboKUnxO~IjWXTdOgCI5DK zo{;RG^ZQ~yqqxMx+5|I4gFVe|G}d%WB~u&d?xT?>3Y7p6a#!@r~ z#BxwlpmbFI-ryo_DEl3q6m|-_7eb=xBGTo|ME3LB|YmSQUiAVWGR~J3n#8{ z;cZfS>a+@8O*m&xgw32G>a&VLbD^s&PSkv@0cOx%2t{`9Vt_T={N!d5w zg9#h7rH)d*42FyjGhf~0rY%OO%L79R&Lgic=U-??Yr_C2v{Ybw=Omr)#buY}$_sQR zB5>IUlW>v2j!lJFWTpW|E5@%moafuB!r=p&4A(AeWYs?*QVVj|C4Q~hTg7e-KL zHgxuDs{`449A(w<_j#2t!4v&P=evbhm=Odfgi@iY6;(r z8_q}THM4V}K8M0JnQALWXs5g#)KV(TXlGsHnuL(136`5YxhF82aVII^9geW5b3%Kn zNGeKLVT)G zSfTP4Yl0G83#&roS^XfH&F3V{zJeT@3{*4Pu1j#`o3Fl4wOhyMx?}!Yl{M*26_P=k zmRbL>^J>fi*aurKu z{9=|0L4UvKMXYvgI-hRWv6zhU)n*T-1I4zpp%UWrmrlDTON9y}8&r2mcm$@?%5Hg= zXmjCfpC8`Z%RYfoH?;^f2SSA?Xu3poNHB^Y7>Ag(gf6ZMCp#{Q0t|f*1XKSM}&4Z!e$H=8;5Q0}1QxqtY<+*0P2&{YGTxnc_Fy3z>s7 zi>iCF<@8$7QPa4%s6r6!-iSG$oEz#jqlW#A?=adYRMEDkD%D(>jL$DUs3x)$%hHYc z(=q?Hj%Eigl zyoaK9KY$|t;Y}M56lr@lGR6&>H<+-93*64*@2!8LUgzf1gzHfhA^piLpcDK35@7p^%(w{^xtb`Ai z*OkYL1y^3WIW2CHy`QK_GWuFRI(5EJW^a%gZ~q|QeV%(dYUr_+i*sC?Y%Tp15aG{Jm|4Caax$4G zmCs+Vun)8&$9hbR$IePU*P?DcTRl1diC+B< z*-}9K2~NGs8q|Ka=Iet0f=g^8KtlV2%Yy(@Y#sx%aa}+QWv%b$C^n$2Ma|OoDw;G} z-MQzuQBCsW8hWg&bMgSaU)@k;d-V>JftJth*qW{9h@)I=Ub^O-|FXdLCws}Otn)R` zgAq%}yEeC#hr0M&e+CIQ>bd|aSK(m78*jT|w;*RMZ*mJ#3{x=Xgv+-x^aHMmWX8_r zJ%{~JQ~EBCwL8{Mr@4nPg%LjWx^hcM209wYjtk0b59`_cU(J!5tMP9l7a_Yl%EpMB zZImL3`>izW0$eQ2FYTt0Guqjv=uZ$*u-$I*%oSDT+-Jkng^+n2CNkt ziC?Z9pQ{vavE|+7i0k+m*rgbzDu0>t<;*~iTywnUQsR1J*66p1$Xtd>3elRaSW2(>U%vV0IPD6@A3m(zh3u1Xf;{0$A%j+K zM+bwND;b79ymeE_DPts#DR0a3T}KcjI|xCSsPaPGoecTh7yh|BpLlpFK!#0a`;*&l z(>U=y?O#4M3?E4vrnJ^k<#MFVYrebbnJ*vnyR9>(5*Lpnm-s!!b5g|3-gjs3EwE#k zHXuN5_`J1e{2E6w?7bOuYTZ|qsj;Tmm71J_0!v_~k(yp=GOtmeKGnLQO6K66gK2u7 zg`W~-pVX&sosSOnRG-a9XOOP{*xUP|71RFcgdKKpJF6l}z3l>Zc$;SOWQNx2Iyxn} zb$yrXBJIm9P5x4Pl}q!2SJ9|jyP?!Ft^M4T(hi?P?dKHj{n|wKH(xQK_ZMV5*>c_s z@a$A}jN}t=Jt9N*KsZ0 z6T5dk9~U=kHO@Z_=djZbe&-aCV?a99O5EdoPBV;Aa#EM}s`3Xz?zLjwha%DK4)bZQ zj@hc66b8tm7v37H*0Gz;yQ(tV%RR_`nTX*TL)|Qqc2x(T#+*W^rs82sOILjf5#Y?^ zCA;Xk5T*3pFYkPx($QSTy3%_gEuwfG2F;|Nm{xtSB11AFKe-K#&cW<`EqO4v)*t74 zDgcI%rnIuZoDF)<%mZ?ncz zhT`anb&rKxu=frkjyKt@d08rnrgTW2;YMx+FSLPm2KO|-F-4pH%JsJ@1Ei;4f%uAHq?U1C0dB&Sscr zPE6VcjoWNALi{XJxw}^l_*_8ctti#~Oo{n%ZuJR8`eSGFk+ZOG{<`&&jd_kkcg1z_Ys%ep;v}h&aKj5<#W@1k zlG@_+44G1#r*6b_T;2N*9B_K4_vy?CbsqX=6e$PeFvp!E_Z9n~xl$StM^&C(S0X zKqwqYVq^L^|+?Pia;L`V#~GJGrpT=mk7*#Jlz#Cd}pxUN=c>|;GrN2U3SV7VwR)QbCy2Li=xFR|bU$m4-uAaq z88vq$^l0l@Z?)_U_u!2QU; z4CtRZdcc5cA^Y}E0)`f{HemG!U)x`uP&JMKoNJ-4)ygOVam=#)(l4L6KAOG_j9@V#)<*{R_Imgt1I|BxnF5HHirfEJ}iyFqnS{Da7U`>5=#ia4R8Im>4#Y zDsz4th>gDmr09>~hz>#6<6oEZKZlv56iPRUEV3!c*DL(3gpkNfm( z=&SW7J{7`LkEe$S;wV<)=Ki*X%1tjfmvV0d}>FHl5y{cEV4j; zAfJ$8unwG-mxl0jp&=|@Dn;h;s`*`{jJ&BF;Kt+dJg$sK99d0*=g*u_6ln5(0HlHb zXQ9yJ{w-7f%ZW~Zis4?t%$^<;{p94s72*!Mk-&NJXr9|jJGMp^8$tuw&Om2PwNU?g z_;;tjCp2_2?A&^92D){n@BhmDApJE33)be@@X2FfzX}_2?RijgfHSB2u|3gav4TsJ zqLt+1TG@nqekc2^uKuajT2%4jQ9f)yy){Q2vkQ5Z8Z)&+ND(KzYzFJ&?a@xZ9Svvra$U z4p)O7=rwX_+{bVx02SLd6sSYTuLt7&Yt?uz4O5hXs&!3{qp|q~Ad^e{pI{@kD8s7)4|s<;ze2A^N?rwPN{idO6Kz7k?~E$|b}sKl4{9U$9c5>DOS| zLOycP!X^Tm5gGf&w_j4i=CN>GLUom+-u1?=d`YzmFrp?nwK7E3F&5N-rWJqlJnT6# zO}f~jbBxZ0`uqsuIoXLTJNq?1{GojVMKH>VnV?mKM&#h*-RAEh>K78iKe%o`j!<#= z3uPEuoU09gcW3wa!^bx0ErhCdQGwXE>IIJluS|AnYMvwYgn;0E-8k6@x=Sa{83JH3 z(UOa|vIOrGDyf4>U=K0#D5Bb>!BIyXVfg&>74jh;?ID;`cP+4LyW_zI&t&$grrJI zXX*Umbd`qj!>~N5@ay@M{r3kL>^PV~<^GC+lEq~m`tN-+H(m!E&i;1(xUMQTlS;8Z z5!->aDC>l6x=32{`4}-rJamUvVK>Gl?DfsdsTesjiQ2I9pV^S=&Qf*fS|Q`BFjUte z0sKrII5E8^?dJrH?ltMHlBUH(kvj)$l-%W5i=U$%5fT@=U*nfdKQ}xWCSUA37r14M zbvT$1?|%lDx(sC@Ui7tP&^Q|jGN?>N4_+0pwxA7sAWj+Z@Rp%mWizuq3ITg&2UJCuO*H_pp_~Y2{C`yDK-L5{FZhB|CvuTay}A82QC-ROX%N>5fzZkkwR|HJ4?g_ECv!nafqgs*Z~3;a=rGZUjV15P z0*kjJ0Yr_j+T7k!{t~&CoU83RgFg^NDfe9T?J0t}kk&h|A{Q@g>ZN__?^2>sA})RS zp9!;gg@8yE&8#l9$8XpopYvKXRA&45PJrQaO+f$qsgO**@r;G5U*{-Oel@kGO~}7` zg}seWD~Mdpj7@4~SKz&&dc$-1q0gWai!;G+Z!31Th~ZoMU-5I{y>(0Rge$sEF`ob6 zwfH%M;0^ue(^XbP)satS%LnvEJXWL@8&gQQ4{OTVL*yCrEciMvhO!2~35(*;keSyr23KqkMz$@*9J=QqiP;he}pZnRF&@l3ZWqGd)KFsA5bvuw5tI zsQNZuTvEBd@$6!hNR7p1XpSI7G@9-jGe`r=KyV)B;vKz>Id`5Hf-}XB zU+v#~Xfe9p)zQV$z~QZj#j$kn1?!a35XAo=3~pUIThHt{N2g}U-&k78XY!|3JC_p} z%I4f|k)3k@u$qIj;iV-8I7Nl}s5ZKfi}s||QU^lF98MpDLmlcLgmMV{&6loZ1=970 z7rI)jRRW20;ZdGT`)^}kaUBn9AnkX6Lt5YQE?xCsjw3Io8GB}Jxpe|vY53Z+y_@_l z=C1zp+xi;C0t)ppnXUE6e$AGeAfcsPthQh1EraP={2dHHl81>Q1reNgge@}vNis(N zN%H>TTU;BLvW^ocxIFK7DUCY2>?3X$3 zPN#H^?*Y1WN)&C!*uen0NA2y$w~HZ%>yxi#UYI1lsAy{+M2m`}e|a}co#V|kavqei zhW0a&x)5F;*OFj}7HXxmoT*<;{T64kqqkQthA^(3Mlwn1%8>TE5`_@=ikJu}TCPu0 z%t0@`i{aUeJU7fV`*yuuMo;^tj3*1P8V_STD&X)Uj zjBvjbt3UZ6Mu-u=_^e~GQUp?(sr7FK=bdpjo-X75?+a`ZKPtEl+k7hUzKc@|-Oj_K zo$-*!9%@&&PSmr6!qb*ZaI%P{<0VmIr8DEp5x^vw*;cV#oj+)GH#G`!?@lahchXw7_S{v0)eY03n4HcNEbKinyQ1-nLMXUc~8e0k+_jQsmpOTdSV9p74=r?cfw5iX&edI_7F zRp~<)saY8>z#G5IU|XbspInOa@>_-r+if``S?uwh?9$8QmkWK4)8_te{zEt#?4X@1 zM`hgIpuRCoUK3blA~5 z)2Jb|)S4dv#aq*x*YO@;18HSIKXp{m_xR4DU5Gj8rZ-U%{)qxZeyLg{B(qWQ(66yQGDLBDXDN!At%axnr!njO#~6 ze@fj-hh)Y)`!f6pzvP|^e%|i|zD^c5=2;4yw<0` z0A4DD=MKcLWk-l9IffZ!;=bg{+avW6>WlcVn5Cj7;6T(kb!27b-l}rZGQ2^RsIKiJ zWTIGO#V|7<*>Lu{>7@D_T*tA$#w%xY82d_e+Jc zn^2Vso=%FDR@>kK`-3K9-J&q4j{^hcX@~m}Hk46{k9t@ zPw6QhtJf<9u>GHsLxJlr-tcd^ITLswh9T*p2wU=>%CqEKx@ZW|`uB}9=F5{ zzPmh4_{V1hGUeAFy^Bd^lw#w)1`VHtXQba>f?LyFB~$UDj2c*06vZ@P2dB4^#tmHe zv@M>2Yd>#QZo!0Z7h;~&BSi&>vDxcSKy`fkv=paXRaoJa-$%8oj1QOJNyPaN>5nhc zjHx`3ZzxD|OU0~NQ?uBAuoeCK#NOnMC>f=M4}Y~vD{Ty9@UdCxyY&R9w#pzqR2u3z z^HiX6?S2s4)&A?RP*-;W%pH;^@5~MG8`nND5rdnL$>sg>$V>#c$XrLBbtKCdMg?8_IuDy3+yHxO#yTPm^$w>1Y^R6moQ;>q>zQ+ zk3D~iGwyePlFonMMTR|rsKvk68v9J&hvK!DksX+_T>OxWwTA`~^;dGmJ5o4iTX?71 zk?nSA^0pN-f(A_W=@aF`u7U2Rw*QS5g0gVz!Lu#+M=qk*Z1nJ9?rV9kAK^7!t1*O3 za>L8C?#g3qS&K;Dyf#6Xui7P$6OD(-|XkkJ?< zDII5b5-dgI@HA3U3PQrSKjtn;kjz~dL2l(Zs*8mbx25nzmbB<8heq`gI}2D56&wyy za};4`tDGe>gph#PqlLqt)d-M%69y}uEH)vl;6619rb*hYk`czSyxDx|VWIwNc643} z?)1FQqw|a7hVjNd=H*EWiiDE);*P~j^g`wv+FCU|)2lW-2u_1msEjlG!fMRoX#cs^ zs6^zm@&|XMtBODpzhjyK8Mi#wU`$xsJRQTSdSvzlwIv{R@K~qcn)_?L1WEn1`r{&| z`m@2FME(VQ{yp~+xRl}6+=wQ|bxxlKeMpvab_o$cYo?@`Q6Po}Miw?Bp|srGd`-_k|P6pVI`(_##x4)3q?^L&`*}!#K5(oRJ!5e8mUs377?F zM>a`CMvDmiPP5d`Z0r=-h@!Vu8>sj{skbs`SPN-<5tQFbqb$Yap3X6>srS1pFb#o} zUTc(C5X&Z=AaG@;z>9cOx%N9onD;xq=9vH`YH`4zv#IuMA#2=IK($5#v;Xe(ciANW z1B?ALD*U*V{+qXDh78jkKk8y^SMGh&?t=nPZ?%GNM5`tz^hF3xTrKtuxPsMSQ)O^V zi^LkW={16E>ks4O0S-|vdNb}0?cnXfXX;um{gjdrtqy@)62%cj3;fDA*-C-=rUP#v z1W1PGKCc0K;zgc?a^#CpnZ!%ic+Z9cM>zVvD)dGB?%)Di?HHSw%!6B+7oPKV?0iHj zSxAE7%k`C$Xnw{GQCaFZYCA4KiA=5XnUp}{$tOkg1 z@pVAnj|5|S&Pa!nS0{WgQ7GRRn0935*>QaQJ4f2<6Sf>73*ZqnK7nc;iA~bA&errq zPSX%o2}k%xNg>1fFm=-E37!18%miiDH8^;OSYCN5zh_uNZL19+^WrGVyxP%(|3w6k z8_K>DoMn=jfm-_d1N;eH%%L;(HpF{H3yTh}Uwj;T_zV|atgS;DmBA(QBD!dsCn4L8O&$qOPBQ;$*Fpya}jl5*OM)jtt9)XphVkCEF4} z_4sPE&rT9R%gkIf6|_c2<{sNL4B%HE@Wrurm9eZB;eW2>>Sdjjt|`$C=X%{MQ%X|n z@e5^z*^z4rWM(-sSSp@Gzqq%;9@T}HJ9=hHF%WuWGeB6Rbmwk9yOoYpgGP+X?}8I+ zs2vq594>P8Dju$}C0*23B$+nTL6RFF@uWv5n5L&h({--e4}?o)trirA@O0;9SaEDe zfbk>`dN)orkxOlK-nmMAvC9_bl=CYVgC)j)h?}S~`F-FlkX8nnE};8byjCHlAn`Dy zixp0U3fpRot*^Q{sc--g6dyT@v4FS3`y9T;PfLE7W`v*Z;UPuOlfdDK>OMo3oCF9@ zvg=WOQXfqNCuL?O z0L^}rPB2Mm8DCd|bvP?5@asLiiIU<^IK5EhSe7TC2aFC6;dt9438>=2ODT4E`D-0~ zT!WV_ru+nGeXe89ta!I|zg^xEzGwQ{AV;R#{2XR{hlHls-3lwGvP}A?qhhG}4+7Oo zrcasF6yMTMF*5Tlg4SNpHT4lllC;^6f1EPhRC#Phs7_$O3;?mI$Kk{On3n+{#a3G1b3wcu(Psd%6U~)4SMfSjNB%6qcAjKJ< z+ZzNvZG85wyp_@H;E%Y}4pfW43WGLwhE}j|Q_8oO8Ki({MT`u)z? zuJ){XzJF|Fah*6Oc{}vr*-H?6gz%39UQ$R--D5Yz-E26%8uYhJ`j2!R9Dofbbhxnl z-n0GqA)kR|P%RM^)JCRcNCjWOxsx<8Po{1#>7vgZ>`7!|M!-Rb* zL1k*$!rk(?@ui~PD!X%FC<)&ag^X544IUlm(Yrh6s$cu|dtY~XOY18?H{}f;V#>Bq zELdB{6Rm!w-%_YMNTSjMPxhUysnhcSS4{EPBw~*n&mBhl-}4rro7T`>T;c^F6(vI2 zp3{IJ()~MtQZ&=UM*(qvkA4WIp#1fq5xB=ddGW`!OAX)!*FAOqR-nkBFegkWROEP| z@X2o;FI|^p%!%OukUBD0(fQNjp!VtO2B6Zc_%0yYABO?({#B=5eWm->x9{uDR%Wg2 z^N+}fmRr17;7{1E;sD zkpFHjvcG%7U;&sXBrE*d`WoY6^pS0#obn0t!2gbU+J_Z*ZN|XlMiJOfr<-%J^7|1s zFMmZj*!wOTvj;8wN;vs`Ttl@*F7*$S{NJ`CITgv@Ih9igKqk|eq2^cS^2$tdN|s5w zxw_&0J|P*6V9%dW%QGooO5-bS`9p2pJ8gXW%W4RH2ZO2Y8KiPra9b)6o506JM9t#b z8VUB&pNU_z!(zbf0MTlEj)%ag?`;q-DyPf3wHVQPa9!fqFfMEG{CZq8 zl&qtrh2(PL(&p`+8{ds%qpRTWCkOoYd(-r#`Yji)aVS4cY?bV^KD5f{7tQ3sI^0kY zn~ls00&&diR`t5jm~SmW<$#4tx;*K;$apmU9o~ahb#yw$Xn>&F{_h2%yx`(k{ zUX5_?kSIiVpMY}CPm`6EPPA=lu$g?#iH*Cuv!aZHnc}JrYafN<;UF&GR4_Vm^a7j7AVc$O^NqZ9jZ%xgGyR4O-G#5)UaVfXJPJ6q)o{)`f=4$#=iTfsqEj|? z2f?`*q3umSsW`lV3)gKy_&X0+nWFe0@m1>TNFG$xibCF3!dYPM>$=hzp5<) z8!RTvP$5PTSC#pa$-Ps~opPVrB4c-pbaDOs>o{Ft918og+vrfF`kiCxOiDCNXQ}1E zQt5)Q{$Mf*(xy69c8AR#W1W0`&(UDlYR(TJvf?-@#C%m-@#5~cze!xFnZ4|94fcXE zSgY#4p6hdNww(KGYxzjs>;BRpgAfydPFw|M=7m@KKLVq^imw*<`6q46-=_1|CcBU9 z3CJW@GM#LD!i2A#~T{`ZUf2zHfEkpPPZn6<*m6C=5yq@~>#}HTsVgQZCtPW_0c^3Oir?(gFVC zWLF_!O`OGAKKf+^S3_Mz2>I_42rF-j*;~!+fMJFO`;{AevWJJC&Mx~tW}+g+>nyVm zME7(XxwVP)G@gGfY%01xn+-rBvl%+$mIE4g%_M~<$gj#Eav>NbUb>))%qSW8A zaq+S)p~{sm*d}#OV_vt;TG@ZDsPQc}foR2|zh&vFEJ>KRAi3Y|;XPhjjFSYr`29iX zBs!2SAZq(#fe}rsbefm8rl_t+?gmkO2zWHHUB3w$Z<;Mi}T5SuDY9I zla5pD`Td`JQnx;px`=Yu3=rTnGd6gxujZF%Z_?xY@E$z$;QAcDjmhVwpG`y|YMIe+ z-d}&3MmvFU?b(^(e7j$@5vLavGl``bB1Jq(cHO{h*RA;% zbhhDJ4|JAalqnBjysVeULd?Mis)HJlUYM{nYE(e(q8#{r`eNK8y0PJ&9Ih5??Ab*Y zkunAFY4}EGh*k_988J`UQhabBP3|shih#S-b5OKX(Ey-C{+g@G1i|*)sKG+MXv*}W zA!kHQ(TMh~2uP`rAj78jTM~43&id6TXJb@duF+73_5jg$IH&8dgg3WD{ z()P*{i#5Ee%Ju5n1QDS^EM9iDztadUgCT!0m)VM*- zFaQ|N_|G@uQTKx!kP-94`DRN8DCpMWv83DsX$Xa=X1*riN%dg)64W-_^O$I`R0SG) zc3dy^Izfz?s&zR*?)w9d@=44vt7%(Vd2?fCG zI(VK?N(<1Jc}>hl4FUS{O3%-+Cy(^yKLVQ(UVx!5hR`2oktgtR&xhpY|9W(wF`Wz? zm^7iy)GTC8ztKa&G#5|g{uNebCAZp@Sby@{&7ls;TKmBewE|F5P;bq3f`2te`XdV| zU!mXOpoQx2?&7P%@|*N^sE3D9B}A%a5zu;jlwSEuSW^7}I8fsJA+-Z!bVG~BdjKSw z=Dxr@%l~raf7nP@lsU(V%~Qa95QBTY$M81c>e%tV`@+Y7rY3BWTMnX$vi>nH%ijlNyQ3rQ1nmc4s5nveXQ zwJvGtVxh`-d(5=|eDlldN^}sQbN7@~kQe@ro$I#cle>;XEk zfKC9vkI7s0=@Cqr+)jsotq8D&?gsx-!XBS9@HkfcgV$74-XhI(AS6XmB&u6)V395& z4iD3N9JH9$yY=T!8K{8w|6C`$mx$K@-@J72T$6L!x8vyehAF7e**3>fYP2x1;r2$$ z3bwn)rLhvYh8gkxR_(uuNv}gL*DtJ&mbop8W=|ilMk$#P&PDq8JI3UXl&5qxDd;e{ zCaFgt%wP-=xPrw$w4*-Yqshk17a(ZcUI0&VKuMNK@o+1-O;!g8UKwGnm)k(x`8_3t zz*+(4;?za87He?T?3HkCWkLzCv1l0nLyWpbrA88O@uDZ?Va7W@07z(;B_IIBU&&-s z1IAl)7QP+_php0>2v$Gz-^dT{kM$u+qh5bUj`$*`lIgJ0P4BUa$8I@4i`Cq` zx??k8+CC_1(XkTkz4S1@xRQg2zShNre;Z28xd>zD3WkN?Tu54B@u6Yy0QSzr&nvQe zwI5}Tw(qYjc()ar#6OdxWNrfEyfoF8#vxg+%U{ceV+97C4K>x(Su%ir!D*H27{eg8 zV5nHsDeDuMp=TF+n~3mWB$>Ed=)sRqdP&?ekekh^Q49gM(+>i!k;`P~yL}zK=kd2* zRp!W92l5;yKU`nA6gu@m<6UMcuhM*ux+&ms@v})pWTm0T@s3pTNzdA}7ke|1*cjx| zf_-nCet_djP_MjqCTyQtP=o6^G=33q#)>zbX}X7naY(!kK|;k@|9-mFCjo0^1o7m5Sv_<>-jT>jWMdG9H;RaQ9cFQLd*TAFEjey?>gs87GkaaC zLtkjPfW*&_U!t3cF6d_ZPQ9Lbtn7X8FL@cuyTK$Cj!DWZpT1b!LY;9q0nF#}a&gau z=TPo$7|;x@u431p^b>ULN?ed8cO?VIae5Mx^CskjcCnZQF1m!H(&0HaDrz zZ>ilLQ>p0n@9|81CgmXOp1Ie%`@WK*CDKrzHwVh~#R)jvg?rfF$TWYu(h?Y?yW(+H zu5Qd+s&J>a#3B~3t%?nLBeok2b!^G;Lw$VlORhEM{oh{T1l5VKddzhF>z#EwJK@~@ zp`>UAG;v0pb_!L)u2c&H_U2STqr4pufddplrhyq?!MZMB`+rpT0gpdQD4%#so3U8^6{5;9g0s_l&HOr^ z{a?hD6nm5~KbE(6%ce*z=zgMS@qDLSD_EK=Xp3)95$x=c@|}!NH{Yn#a@s%=O=q{h z5^a%r`!OU5yA+m()iMbB2`NPiQ*u~dRcUi^AsnLL{OHo|(#yT_I<=%~J{>s&$SahEjA!W0HlGFiD`esjBvX+5`Zk9`Kd{L} z4(Sz^Bm>>NxCc&7+ryH2_H#9^(eP!x`CgbgFlqup*opX15?do}3 z80l5c{CmqmUy~Coa@9~Yv=JcI+aI^MJT8QW!xcb=gMLmm7)X_)7$GHira;4SE1WRu zV6dT0hjz*ncJO6mfggv$Ew^JAZ;8Way~{@npeH90eI;Hwh#hb!IF^a~V5uwn_V%Z# zF8ykfLd&LeN>?QxUr($#H`z@6_)F<83A<(KT9OX~KwQ!Mi7Ood?52EAi9GrLYtM5* zf&t=bc%}>(9xb-ojDhTt6EjI4;kYEY7L3qPzNVKNPyxA}=U?585H4=51Xk&4XX zQ27kKhEqUDIj6<8YwE|!2}ML&eab5zg=;@IjYY4B2^S$5Xg9a~@`Xmo+R>5bb9)K1 zzAlV<6ec=e|pCn?DKz_PAOhc73y`>`_IGBA_)2+{s zsmySY>xW0-!DR9;E`X)xi$0=5C3~SS5HA41<^(+f6}X=KWSM+0U}>%27wXcO=-Wak23EuTHV#O1a|ZwbJ)v91&?Ed!$*vCP6B=s|cpc`x~Zud$T19 zeshnDIWb348Jp}v4PLOwUDvj9RXABb>!%>Zg34#TgK#sV-$HE+Q2WyXJx3VO8&tlX zsvC%qN`F<)e7c8^#xSta?#rHT0;U3LAqB-gh{=ji_y9n89=aPE6HpR5%wApp8kYjt zgr>Ygvz&j3e(oVZ#5gk6ojbY(0F1iLFWsHX#J9yV?iz28m#^u+)l1HraX_1f4dqpJvZ1CqlSdH7Ll&zMKauiQX^#@K8= z3T_VL)lvi6h27aHM86wWig{0lDK=06ZHki65^_(}T1N<$_SL@ky{92w-_5M^WaevB zcX(Jrp=RC}atI3$HGajKc8fd3B*SfEBI4(*z67a&?3ykK8zwPct$kZsq!ahlix-f6 zshBP~2qCQlZJ{(L5$)OW*(4dqd!1)L+mj^Q(4kuDfR36R=YAB>A^X#Zwy?EL|F9;R zV;m7Q=h7>oQgb@-`eNTe;yTa$pm=fXoBI>U42Apl4UVWfp0ndXsybea+*{Na?(w*oX?{X~?+K;_up!K+F4+6^Tr-0)} zgLd!#URAOqsSBi2MTDc+dB1xxukJtZR5{jeUSnG^1>&ky#fcQT@=IB^`u`|<>$oW2 zZhaJ_JET)YrG{=LEI_(p=nkd3yA%YZ29R!$8l2e zXb|y+axQ4gW;k8%+aD!LR*A&qSfyAHjs%US>4SJ+bXwb&Nt`4EK6DZH^sL%YxX+%M z_zj<*D`JS~*Wk${ibV1&99RUfg&MN47!jBoL!xRCyEiwA&L*&oC=93e(oU|^QNGLW5{4)SVxQNb%U9*Z$+T$5Kz->-+(~p zk7wkXh?lE)zQ;oC&aMPn+z*=2jZbOc=gYeLD`j%lLvH+J|O zwHig}#m!vb{bo0!g%39=%B6yz3y*KL>>)~I;PE50w!-Mmbo7SA1;3kZ5f^#IN~+j3NbA6XtSRmA)rl(N zx747aJ^Stwg0MvR;HCKW0P97$)TcNc$QnwF;jbKYOjyMe)~n|c-1zxS%~^!FkQ{X! z&r%bI(Z0AQttv~#z>F-5dJ^!W?z}@|?cz47sApl4c+=ElZQa_(Oxs2q3JprRWc0Cy zySzLHZ1L}Q-LAKwXp5I%ay z(M`(CxIS~$Y0GUXaSVvycfFv3M;U*#6a+vj`!7AN2|)yzOlA;S9aB_T-qy3Tr(nA8 z`s{o1(8j!eiEanrk39i~^_pz`pn?I%rG`+$`V-OIoYQz5NHj$jX=cqtKhDgQ<(B|| zqLlJ3lv$J~d=j$3)mH3Ki|8P;PfV}N^;wZsOvv0-Vgqj#Sxk$DQ#4<&RMPl-9_5@L z+;+~^tm|mQ86ioDA8-s_F4lOCMaJQ-Z_sjR(xVHCn{3}TH(n0JIceuNrmz0~7-UR? zZ>ZG#o;m%zkEt)y)D&|?m@M_{_zQB7W(6U}Z(4prb|)^fC10H$kZ9n}OsUSnfFtPO z5}ug$relP}g4_)mLZ@KE3Ntj2BNXj!aS|2tj0J zBF?=mBtIfMfv@iQh1SL=1?IS_TbrXxI*bl+%d`BCS*p@+4}1Q1n)(x|A#0R8$%s0L z8HB#SHmGYm^o`Hy+k9aGKX6nAoURf@mepTup(@k#HSLP z3WXF6l?>V@dn3?S%ABB?N?EiyEbD9+v{}_By1tuP;H3`sgmi-W6UTuaa`Gr z-|56VO-B$_nkQi2nh!^X7MDj6cemnp*v#z)lFFIoVXP0ZkXjpaIq8DBx4ard10aG+ zyChuRmZc6GY5GW>h$e2XPb6OV?Y%Mq6+7?00T@Nc=65_eTB4Mz0v6vqrj=8y7|BIkwVCA0aYNlDr@W@4sS6&jhIip` z@7Iwz+@5ab5KnS7lR`hKXB$RVx;vQVtP#-I%Y?s5KmG~Jej=>Jl8UlK)fy(6Eq)n@ zws>uFY@UJ?!dQV82oK;Ri||;j7P+fC*B-Im=pcwQMCfBQ46{8+S}!D6oQfdt!Lide z>=^L#E`E{((fh@m1s!SVFC&D+}z_sd8h99*_U|y|D2sr25cffRHesA6AwH<9L zFWck(;)S;Xil|#H8?%PHNwd z{-Ir1BULaeAQ|2)z`CLzcYla!SW&$${3pE<;T~Y3l%wqDTNpr`tWNFI^;&Pmt-%MsYXKcE&_3NL+GkbV4;_jCIwbM_f72ly z6o?xi-d*^y4IcPTbG(94&&jIwsHX02(jQ*R4_Lth);VHoh(gKd4JpObk34d2BI-{} z;{>O?jXYFu0lhiUf<^5Hqu*=94{bpco7-$=1TPA_eGKG~rs?c}fGx)+3#i5G>$D47 zEjoPOLH{vK#2|zvQJh6HDhxha!5H}#+IX5H0oA1gb4cZi`IQmGYy2`C`U%{la6J_% zeF_0hOK)hb= z^Fl5?yFLhqjg}73s8BD^U-O`3_SAl76=d-o|;^-*E(ei!F80SAs+eXkIJaZiK@LFb<&lHu`M`(9Io zpv2}d=c;s6*emVMKgpbJjvmgtA98^Gcxy=n5?5b?m_llOb01{@t0IU)Bk>dOFiTHF z25yw>vDy?_dGQgrtxQ?5XIPYDiY{!yOruDhv6@9@-A5zOio>;x>K*#VnB3>plUKVn zzbf}^VH`Q(I}1#nnLJC%4r(UFpv}iAVn*e*nk@DsQfXYd-)bSQKj6O#{Z-wYh7|+| zh6(yTSgwXg{g!5B_YSRRs~mL^`9nT~mFv%j`bgjDJFuT9OwO^V5A>rzNUW@*!VNv< zmTXXAD3-v&ntl5W%puQILEd)sUx1<}?T7XEKa4<{Qjcj;!gs8!RF*-NxMHN{@>~%?l^;lM!RPU;uBA|sGVoGPbEV3 z4ju8C2CUy>C>(UOZE1Crp02*t0iM~%DsIuVd$|_VShV}H>~ife{$t|MMzyl5)G3pl zWe5hc#n9CyzAHTF>W9=1t(BGfyD6P)2kW0sjrN>eX)V{Mc}Wo{AIGdd-CZMv<6Z7} zdiyUKILMFcS;-4?g(J1g~5S?!5Mrh8VM^;vqW_>(+A`+)r4KAsShJ^_^B%2~oOk8+V% zUSogzZyr@ekAPLs>jTTaX$WUe=f>zy6Ft(*$LT_w{VCs2eFDNZH%*H zmsVxDD4%Nj4r+YMw->cKDnc;)QyjxPFaI7-_}IDT!VIY&c6KMYUaK_Bly|==oL7?n z?znW`aA94=v*u6P2M;c=!QnLR>*z*b&5*KCuffUsYng}&=dekW%NMig+wzF7sh*?6=Q09!pj~S9wb_;4 z(k&aO<4V6PkuQ6rV{-#t36GTv!<`?56>RNBzB4c}vs9i}lmmtE8@9wexC5 zz1|-0Z>?&^EGX(l!{lZyl$c4oyaaK@;HPR1lQ|pO;cXp*i)S?}J4O+@uH}b+EtLg?>83jVsZjT+yzQangZp>qsH6~-$xp4i6$zTV zZIIp|7leD28Jf+;8g6tU!Z_g=mOwGnQE)$<#g1!8yh)*=DGQfvj0OFiRp|T45=#L` z7QzlqTh*ZJct1CF#|rU=H~b1^$0I^}IsVwXS{2?2xl4;36AsDw;5@^n5&gl=DO1a3 zHR|a6b=5*ppOWWT80%}&DSan==f(Uo#&S%a9|QBj`RlVC`LnaN3M>aG!{6ph@uPFR z1ajS0Tz*K_JiF^TFX0gBEzw4g?}nWZFEB6u6vnm=WI9dX%|BH4i+IV{XDaa0Go6cM zyc-{y{7c|FU8OURRRn8fmy2>F`brX3mzKjs+3v-A1!S4Lu|3wWq7VyK)#nb~bc7*6 zNp-=4R3Wb33KC}ZMbCJ%noO+!@bktAoq7pH-~Py5P*4&f+!#pi1F4wTINQ2%xE9MN z*kkj`I8WK`>ZVOyiF~QP;nBB0o6+DoFcT&UA$UX7*jk`x zbk&tFCnDIT6+^V=@Kwwl8qhb-+oF~u$0j2_A^JQ^rBZ86ZQKizNMhpvZTZQ;{e#Bh z*~d>!0-$fuo)t<%jdyJyM9G0Wn^ID$jf%!eErj?dvG{vpkK(0$R`(>;H6r^aWE~7Q zp4I3s?wLprANm{Hyp4rZntvH%;%(M3V)8L_nK+y$Icqv_Q@7pSLNuKG8XzUeZ;4c;TaS2Gp+4;ynZ=&R0Vu zymeiRa^2q*VA12DhU;#Io+K8pzLp0FG!3ELk4hE3mX6hrkKaP2tm;&m?45K;AY2S z?D+zJszCV478Q$Bu{$~}YpvChF$n(aHxfk9h1Mek7ozh$6uz(%ucK=715m76Ky{Zy zKnP`@)h96XZ=?|F)}PYDbEtM^eb9O0xh1mS)ecz_oFG9iaM?i<=X-EE>5_C7YC<+0 zge|UZI!@4V34nsibf;g3um?Y-rszWF^FJ>bYrgn;y2PuE4cpT_*%445D`oeG&ryKr z_XuFJ>1D+0G z0*Sod{dZ82pKFizcQGMh#fGNziqJ-%)pyXwH|KH5fP0n#4o8Ji2Qz@_7JUJvw6aA$ zDg`)df+7z%3)Ya`P9JILaX~ePxmS(^6jOt*vgQsPEuS;C9W7HycoGD{W9YID)}^2# zBDYU(Ed$|uj~O1kzPvJ#heuy%-r>UAWH_=b@J^LlwU2+HXkv}ZY#D%6YJPto8u!Hh z2kfVcz;x`wzBI;QL8SEM{-hGMISNmFZLGkA)GEq70NBJ|NB`hh1*piT?;EH{;d=&` zCjhP%$wm8(o(90afL`Zt4NZST;fIC-9)eHKm(0h`s9>=x)5~@ntt>1-i>Da8T3E1J zUN9Uwm__UL>tw$d+9+PkI31U8bG?5)lFi*H*owm|JnccTY=Ed#=__ymV6s>n5cz=W zZubKjy8uQOZad1nMgv}mL&gIhe)~oyNA3IqyomnvH;c9&Fb5BV2O#Uy$QOYMBSeOm zQv~h?vrW6nBdr??iS}HVH2(ZL$okjZRVIwg?~Ua17(0#%3Y_e1sajJ7-FsPMIXb3& zkrd_N%dOo0b4$WaYrucM`t_}n>7i#TQ;+}YAh7xuIDvhTz?}P+`wFWvoXzBII}#vF zRv6v>*SH#b6x;C;IS2j*h*Ae4jNe0O?g$J2THlvVSsztpx63hML{LV{B~2tQzlkkc zH(&}YlOLP}4j1@8eoLyM$H;AKW9Spmm9A?bo@ayd=09+LUN8o5z;_Du;Qp}nI1u6TDr%; z=$YA&l0oL6$InzlB8f-#ZjJ~mKS#PbR>40IvAc;5L!1eIy+*J#t@$eltDt z)l@70Ngm`E0!s_lVw|x#Z}q<@AxlX62{Ht*=rP>?~); zW3fpgvR}No7RYt?^aQPH5A8cB@QrhjSgnu+Xi?o0x;EN*k!%~jp;S$19m>DcEu%u_ zGNHj(+D8$}IBjzYL69Wb?E1MN{nn2qJ9oNz1Zs(SJh?5t^r~r%gB;XyZby?k==^Rl z;s>&?QH96ihW?ozxk#L|xEEnX`a;Gl$3`~9Y~`EJr%WwJTmcJlmKkeDNFvwI2~v2e zH7r!W)fb)W{2wFPWjC=4XU`c;nt&eIdgZftSKB*(k1V5 zy$J0_Ca~yIZ}_?TiX}c%g?XW@ecHq$pT~@c!s`fq_v0$DfECH?p)hFzJU>>h=2LEM zy{cz>{kyd%)#MGa+T^>h)KFv%1|JnivWrYkioC*&BAr|AJ$zYb{FeCob|o_tiZ6Cu zf!RF!2hY5`%(GX#O&~Fjy+0>?R4Yp>(r><8W_Ay?3k8T4CAT{8<_(uPCo z^f;6#_;<}=YQMSoXv9VxR!g~9#%*L)R^HI?_-{M8tiRHO1AK2A1sI$|F5I| zST&`3LGQyQj)40!LS30{hByGyn-Rx`e$+$*$PIYQT~szF37yNQ>Yl8jFRViGx9z>K zTNJ0;y)Hoqni4VdihXuLbqXE>I)^c>I=y$ybAA5_Zwd(TZ*JB@j1TN9YnyB?Jg1*d zS1BJC)lfM$N7I!#1 z>-#Dt_Yc_Qu>61U-g|1ZDxmbgzDC8jr9<4(4BL&NY>p!_u~L5aNeN>`AMUH9c|ro_ zc)qXV?B_v-@y^rJWX+Jf+&EL$d%40Fqm_KusBim~5R?n^PLSS;_OOmgd}F4A6n~83 zq9bWFh=OJHX!Yrr61JM515@In?tXVrVkW2j9Qyi`Mi{>>m8bq>J97Tt64Yb zs!vqun$Hi1q5N>ubeq0{T?FV#uZ z$Y%FVp@tsIOXeprsxbdzkFRa!QWEO4bY4Im~SxPDTgX$APke?MD#ul!cZ$*UJ=Fi>t);Q(x z;ID?Dn!2qg1knb=SWkTRQx@g+_0zx_=S#xKKTMP*KxNGBM;Th?Ta5G`J#E&G18)aS zmeI4$63?AliSJOwk6vP6ZnQe>2|uzw?<+C%8+H_hwap(qf$^I3h@Np1Q2KeQ>v^!j zcofmy{UQW)^nyQZYDP7~{kq7oK?G#y8`Ij~vKug)4%@oe%e~fK8a-)U-2o4P2|0Yj z!xAZ!diX=_u&jkUGsRH6GZtY13t0A8*K{c@7WLzGCK}glwf4}ownYqzUC}h1x@7no z#mgQqN_yP^uLyEFxf6Ng^CKGks@;HzKN}wIv7$m9;M?=sP(i7Kz37%Stb=Q1e?Mp# z#Z!-K1W)u zUM~l^k?`BYFoT2UMf>4FAHySwGzLTxsrii;z`i*R-w;>xRM%zPk@!kO=e=rG&FgPk zG9M@{8K~}Jh$M8r7{EIoQ|dxFL?8kw(U$@$Bu~Kmk*I$`(7rT)gw(=!#R3d3qobkZ zo0KMv2Vc4~i5N_|QP!qX2ixRL6srX;M#AmNsQJd%cScc7@xvfB z$l=>=)>)P(pKnv!Jc3_h9;9CdhS{BYMjwR1lhng!pv|voufOO|80TNfLAJtY;P>aE z1UtT8c7>`Yci#rU+g2CZl)vvk1sOOJFMgRi%SaIxs!Tj*4_vecc^5BBp`Vjg`c6e3 z-CgRK_Z(kX0P3^xIs#L>r^`Vpr2{g5vIu~HtF+6hSvkXULWFRh$C1 z$0cBkcII!PZ?K0Up1P z6-M1c=1~!?kBzixD-8~-XIq=C_WvLm(L`mm{{$0#GkNjSJU0goC(sjh*Z3G{->{L^ zMxs45pzVZ-QjMHC>WhhqB=40@PBg-1p!O!u&SSltX2!v?bVfP^eu(?kx0|OSC89xX zK>{qcfk*c0TSuW0+WX!K2cM`^63{4K_`V4I}Jgc7FlT zot?vS3LU0(*9#0#&(~8Ix9UB*iLgCYge|@=tqmS5~+Yn3Ifg1jGHrXf0KoXg0tIw!VXU^A$%Oj8~~P4RwKJ2TUc{ zKEFo?w0dYl&X1@_e?{zm?tS&D2ud?d1=?3}0k*w1A`>lo8oK#{Y>A{)b9;%^P(qA* zf740yR2Qf+VN4{mAyxc*kE9t}id+vq(&610$%^+)t;Vvg?3y9zO`iBvo z559{7Ho$m4#0wVj#m#_|=riDVEhc>U_fMi9b3(0hGQk#@qtGu;Xl!_EXjWG$`e;bF zDLjsg^$DZOZ(BM?C84~E69YU;tRz<6ig zVV|^hhmwhL4xNyF>69}CwX$BBMQDON2P6EtF`i=fO1vU3a_Fgcr-eBWvDh9|CTdRf zQnKrU#SU{5MaV)^2XElq9EJ2`hFx!CE)E{iYiHUF6^kF7-mO(?DfelW6#jWbwx*-? zRRU~lzPNEAi9E^O>aHh%yKIutsb6pC0j*{|rwfr#s8}wVehQ!~dNI!=7-qZuVJYq* z-Fq*#lboL0SvT>Xoy|h1_XqLEjYpf5hUOBlx=Ie)wnh*9qVdV-hOXwI-bX$}BKKwI zENzjAZb5Ser-3;V0t}U@*xs=g^{PdA14jaP(f}lQZT|od-Uh<;MIRW8vUW-Uy9jNM zR>WijuBqL#zubYNBEXbntC*f+p~9H(%x79Oy>Kk)*fEf03b??bPmEXk0>2w`5B6(A zs`XI54U`ZWgI((|hYx;8fTQly4A29cWC%1c<7c|saj4z144(*qnCoJZJ*~TNTNOPj z973O6#hFYBJ*oqYM^g}eb9j(!=%Z=yo8Gkn9?70o-C804Pa4iAuI7UNT>79#pC?f) z-yCRKXSF)AI3xn|wylI9t`Qgjy;w++h>B{GKX}a69WJ5Ob=KvRiezyZ_Yrr%_-mKz zvAchZ;xZEQZaJ=6c5Qw9agGGRtZE&_Ymto0)r=uv5~F56pJS2jc3~J=b_Jh1+G4Sd zTv2h79C?4!+RU``5MvvNz*`Zn>B@i#egMk>oy*WlIwjU-SV^J1zm@+!<)+Hbss=G- z7TtPBnrZCj_Ac(H27EqeHA$Xm-^DnB1RQl-fA5H2MuG3&r5?Si-@DH{k8?OY)wJw` z6sWySEod3=tR@N@=5TkfBaF@W35`bVQ^@Q~!Q68J%;fdy8zW&~h+nn>xJ9&K^G)9` z1`#P>i~VI(YVJdx0h8$jOeV+se}6I^x;Mpr_k{KB9D@JA$siw_lSxisQ*p|S z#D0q+R}Bb|Wu4wV;>09n*Cd4KPzt@HCJA1^WFr(ZB6?l*@z5qa`Vs?RW9};s-I6B0 zaFsEk>|u7>8Bs!~=?uSF^0DEEJGE6*VkalS-0+guHz!^}NO1;*meET8g1SUvHn#c4-9 z-2F7->>Osoe{^y32SsN0cZ|_xrxWq=qRtg|I{e}~9+p`@H~8)oCyMT6^it-JZWfY@ zs>%8%yyav=VvLd(k%fh>?V6Nb2a`S40hN;fnlAPK^>ls2hD20KvY}Zwr?1^<20xJu z{?xq00O~1mLWK-Q2KD%LhKK*4bZ!YCT|XJ*fMnA}EsWoMzgFm1BcROJcq1}fJ^WnGS(3mbSx&{ZsjcHQ0nV3KX zW~HGGQbsibVuU0*xq$OsMR+aA1Bwv5K(7w35=$|F_tgXcXIPYB2o*`4xo$to z?{0e(M9w{zh{}j${`A^{F3idIB_!a}U+UWArn>Ntv7c+uCtWMcKLjw8v^5p;EM6Nv zrs?Y^N>We-c4xFdq42EXR`-$_Ox1I8c+&WuSrifCgrzso7Or;e8 zIEt$)M5|ERpRF+fJY{yRd2tMEnZ`+twoqnM`%<+<$*;Il^ zp@uoyQ_>>Dod3?Dh4o|YV-kW+VJCAQL{>6;TAVylLsyv`#g3nMc7v;qTW!7J>380O z=z1erv{zD$26y>G78}_HwMDVE@~%^N^AjdRV!IXIy^WU5I0E7g?Nx*Max`hHCB2`| zge2*Cr&~>5JTT4E{W14mz~u8i2N3aF#(xhHXG{jeV|?I#ku%j8pnEH3YD!H?7O3tI zsu*-w-q2hNecKVbgb3YY3HuK|k|_y~CItn7sDwRHwzAoTe}WBfw_HiP>0rDGEDs?E zi|4Aya=Pv2k#Ap#6=eUMSBp&^8FTM-p#i?<`5J5@rP}s6Tjj3Ja|s=qp`^{{k_jeC zvH7kqeb)nmMe&D`Dygs~w`aWMD#$9!>cRgD{)~-#@&5#r;1#JPXBHY*ZF6HdQo9<5 z-!a54^lwd=D>8(I1?fq+Y|AqR1DX@JU}nt%iU zUwZXG@L)a;cqt^A@d3oNuHNlwdbkGl@_75BcWYJoc(Qd)`D=M>nU6FzKn4jM@X!CS zF3;IeW_qlHJWRg2+Ad86 zDshC{x3GO6^vmL%C%JyXOD)=`2LqlO5NlKzo;A?Jr2&w6maz)>}0LGs)~co_ZoWSyaB>Pv>ClDuZv2;;6I)XO``;>D zZyyU@hR3`V*MaH4emE_O)s6=F_c__v+0zJW?!x|uaNYPduhM-4IoYAZOkUKdgbt&% z<-UwX>cjV{YxFV-K+VH6uJb~(_86ny-sCsbod6#^so`2j)de85-n#P;FFZs@H zLrMqvSoJR!1QG-1e(vpcV&p}6b&+1T82K1n9l;o=50Z*Ghi9=GS0{&?6&9Ym;BKE! zsb${dX;~#_Bpql&;)0S=3C2F%eU}+gcQZvB`Xz|y(DzLEox2*L!LjY(r#i*6QgMXW z+7>|>K`em2?R43`n-f+-npPR9aXWw_Jv=pi$<0A<-l=JTcLm<{>l+`yemvY_Ekg$+6i^g>T5w`nsGxh!;5Wc-R)RipSNSow@oOpPgF?&F4I?jj6<83Y@w5 z__gD($1Nj+y9UwpYVsL9f`|Wyg4ZEI2GhMiihNyzp;@fztK%Ha*o4(qi-pAVko?Tw zBk{~bS8c3o{;!#6TwP9aN9yT$sni^1XE)8ny?aGDJ&b8HO^&`k4N}n3OKtg)q1^Ax zH2-srf6`8|yFaG<`ix$5m`B=7RlLBt$Z1b`vVw*g(nU_cu&ME?xs+d>cCqTy{QLXE zFm_jY^z@8oimB$0r1yW8x!=?~!xa?&^%xWSYdauT*zr%8LYKXXpNW$BATYd4!(GV^zri zON*MUc<5>;V_|#D`uUGJ5}Fo;JFO4&+=HKbKR6dLp^64N?WuIlgif&FbsOwWTvO^w z<9W(ayKeTBF}5LIf_&stV0!B4Qqu6xuT{ATWcoIB%Y-K3g*z{9(l?A~3refaUHY0w zkw;4KVE#7@7^EVJ4GZ=+j`bXs1@bNR4ews*fBboux>Z6=ZaIIXtZ^+M=>@*S5H;USbjjU!$;tp0U7Ah`toaXe&ar#9Elp{JZQYOU*QN)Vq zxA;nlPjpK^o+_`+9TaS7F9F#q7P7FH?@i_{h{8^l1bN@+uunsU;=eEKBCH4~7&1uD zadTP=m^_PBiM+6RS1W*4*jmzQ-S7~C7?w$NpmI6Z=3KU z$|8o8U9H8BLA4We&}mTzuOGBU=0V$?y+USzrqqzxi<8FLv0(Sb)n1kFJDwkhb_I%R z%!ln>F*+R&v(0IVF*!OC-0Bh*TNsbPoo$%3dd*wQRz#h1i@3;gx{fY1KdqQ zswB>XPpbX2AP9)?G$}s=&F2r_eMx*%hGOKAT+G_9rQ)HH$qy9otCw@B+TrfOy=lHR z@)*zG#~<{_YCZbi33AJ#R%@OLgNnQvoiP;FpTevIGzASi$RSdA;rPff(n(6J?e7!r zK0n(W7wfwEx*|^v9G1fMfU7z-26fgRJD_n2;&* zi<1y|MYy}zka3LKGOrq#&O$sjTj@P3=su*)G2PGuQ~YbZ7Ts%5Ae^D(36>rp04MzN z>#u5UPR;hE78?t|=CgtRa=NzM|H0{^!WdtPtqes0`dnuo@16PY{0O3<9!T1`$rAnK&oQyac~`D z=wToEvBr2EGB0%5tcFN6SgT6l=rOHq^cgP5qviW<1hAQ(#FhV|oc z#!~t=$B!?S%WG8q0omn8d5ce?06c!s)B@yOX>G^*#oicP7^l!HD)fTwmBHcu%$lL! ztgDnK*hx<6k7z`UgAg?-&(qe{VXMi=oEQjiWsV|0FW2qQ&_?#vC~hqNC>#EArAZvX zGZ~L92e@%y7&IT7K?IorNrsB1{IV}Fg6Y0QK70Tl-tn-mL_by?JctCFL;2ob1HFB4 zp@C2BwLGp~zGenNu{oksCYs7mSL6nD2&DmBnS_yeauGFvyiT&s;xg)DjS$;Rr=gytEknY$y#msH(S?#+OmAC z`Y#`Xtu?M2tUmy$a^X4E3=~!AtD#3Btnl&<*k%)Pk~ju{2xG2|)PI)4{M9|&D~!AHVv<5KM7gld_0o|{LaACQ@`C40T-~pa9WOS+ zWQ@kx_P6jEuXa`<6=BPhR*xALbAyjQkz3#7p{MJrgH9;Nr7-M7#vTjU76;gV`9vWu zLbZz@ZCHJj;gSd4$yDFmz>#Olpof8g8^w0FpI-3g{L;^~Sa%Dmu%KFr(Twg;e8r9& z^2!a0OxGw(iJrUJy7k9s4pDu8pK^RA{)yom9xNWmWM%uhbjg3Vke7>30fHUo_EtMQ=Ex-vKy$R0~y~@*TN`whHu#;w#I5B zf}O&h^iS1=Z*0DP8Pvkz5F`*sRJ6v{V$V?73_`=g@Bt_##XuztNj|$Da zJ=Sr*CeqDbM*Zo=CmSFP8Y#_nSYk;rqJzO-ZF{k&$Tr_GNjXXQ&6EBb`!`uK5W<;` z75!x3O51oPt#zB{Oak6-NNj4!dIV`&Yci-ft&*_W-XBRV;M4LOa-NLDsq%+OX)SEr zh}bKus|>1lzl4AO*8%G@hXYyi$inVEQ+?esM3ZEL)DZ2yymG1lec4!feUm}O%)G%+ z9v@~U$sFRf@qv`E|H>Uuw1V4k!fMkZuful@u8wNMvi4+T%01sMz zFTia4f7hQK?$9qz1djZhf-Dy0)YBmKZsdTcyt~`ml$lQA=6r>#Rn?;~--~Zv&9{uq zOSrKXB$Uqm+p9O~w_jBx)9hhUQveZ1$tKmjKj(KM0(+Jqf15g%H&iX9)#I26CNuDM z&e7SssF_rAasU0p;qh$`ea$pKrMvG{y2SQQU|LGrInkul@K8f*EyANxV97w0>Y5Ot z6ghu=+iHF9fG#hbDb1ypBv?*W(1lRhutV$vl}YU906*~ejq{ZlkU_?%g=Zj|f&C)r zQFy;zYlYw8vmUQ{tSg@!#JQAWK2kfYH9mSiQLO9MpS{W>m?OGE1k%dsceAD)Gmu#; z5sr=I7KzeFSKjC&T_NpVYrs)5HW9lzAA%;gO{I|YyGPt#j=mn@xj*1`!pCwtvJ=|4 zZ~BhU`n)xuLtur5MUP)eWhL+!(QEFcDtH8H`5Lg8xQ}SF755J`#(0*bMmShjJ2ccW zBWQvBjgWy&3>8Qc^+>{}*{ojlyAwU}V_NP&G!o!H;%A{+bWV8z?!)l2r`D1K|duOPc;U{MB@Yg${2x zUFp8w@8B+rcdf6#vKYtTNTewzb6!eO$C#S;11DJw6$GJLh71mLJMv^kX|K90-Z=*- znNE;HYBlD&gu)k(RaT!4;cV<1my||zEmGtWI=5m71<+|+lm#g9okYHhx^Hj!g|jhp z7)F{e8mlR84bVA2Zcac7MNq2VcW~I82GZy(LVf^Hh?rDihU;M zAnTjmo24iu*zGxwcU{Q&kLi~@AiqD@q`KlNSok&YjKb9{9U6>JHB-Cd{T*MYny#1j zpU;Lig|<19&zY=FE5?QGDV~?PwBO&IyuRn4F(o4gi4&3gsjXU}{7VbqsA*fL188EZ zfhcc75bSsfh`?+Dc|Yl0&!gV{7e;TM8Za-okBC78p6{YEj$!_+X~q%i7||Ob`ueAv z$m0yFB$#LrM%0$`Zqr_|PeD=!$L3>VhtXyJTIC2|JqA;Qh$q+q?B=ac<2&Wn5-I&9 zr`^!m!iAry8xX+gEs~?`DnNGD8SDs@cfY6IsM)mgFTO~Q@FkkjBh0^1^-#FRk!u?W zi=pc`*1oc~NM8L-PJ>m*Zl258(xAiG+ia;%j(qb}=toT*b=%R5=8M*6khVMcu=)XV z3Pw%jy>y6gQ=YW-_OSvWJ`Y7O!)-v<_hsF9dj4<^ zZD|0AN)QM?{l!3K+4 z7}#hS@9e($(qE^SR~yyG3x!rneVG~~GW5u78W1D{;?|ta8fXh^Bv9j=$M`fB1oOB^ zOX8WNzVzK3l{ho-rywb2-(ji(`z->!vcQiy@!wS2JO11YVM3T%lJ9T6U|bV}1ck&r zR9|t8ECQ=&n=|yp_d#6%q%U1PiX8)D*(3>tiaM;X0Teco?^F$Wz~udZrH^nrAffm{ zJo^|ML|%@{unF~5CZsM6Zu2>{UqGukn92WCXVF#R3HCjA>RFB$#B*h#7fXM{IQ*IT zXL}llzCYY@#c@U4aT~3DV5>U%ylhza^t_DhzR^Fx8Fi*yd^~Q(=zRwYCvDiNxEdOX zXQw~&#YGVbB%l|khI7fLJOCGh9NkK;^Mso0h9^qt! z9GLcb+E;IafOt*KesW;Ib1o)7dnq;aDag-P{)?e(&|Y9=&PpkosL@WdcHPI7m@A`l z3UZYD`f@K(kW`@`bBmFJW2@t#DW>-@wQaBvnH%cz`S6F(HQdeUv=ns$7$8F|kR!Sg5YLX?tD|j^ta8j0Y9q&U{aXul8}RUqFzWm3glF71~pt zZVZWa(v4X@U+8I$v$X*)&U(cQ`AYf2S9QCZaBWf!+Oi)`9P)A_x$lo+*2)-dH?N*B@l@r zNBhw|x8i;a=czflNyorM8saqUCo6fSh_Ev@p9EKwzc&s_H!lU3Bn}yYR{>p{m6J_h zsh%M#%vTBr%bE*@vD;UWIJ2f?8B(BL@=C1lh$&42E0Omo;(qw>DvK!C=T0}n6C6c|$^Q01AL6&4v9Nqp z!F^i8xq5L2)jiQ5Zz1Qs9<97PD~Q5gCT9>fe{o%tp)VV>DCaaVmybZ_OR&ybzfP;oUf@2r zQJFfIY;5C`f<>EVC=Jl2@7Fb)h|$->sQ6{xi^!fegK>B`W)D*8vvQ@Me$s#lBKJWA zVewzV{3h-PHMnm70_nMdTHeGvzdv&(iC z`?)D|W(oai?7=|=M?z_EEUw7dNZJte^#XOP2K5E4jx;-h=)XnmK2zf9M{4X1#@~H_!3_F#1wZ*vPJUXSIdso@*o@F=Iyzs;4agC^j3 zVLh3lhnPrmnWLM$V1%{-cHCu zPs(U|Pbyju^-!`bHwl0;sui5Lo25A5_f^0hBA$MXYTbclt2#*T^nNGr!=dOtMjp`X zY0a?7P`Jt}Abf=EDz8=p2^0G*i7Qm6)neO#Lc^UCUt?&(KiS5~c=94yv?+su=DgPE z(!PN@{ia{%<`Uu{bFtCI+RM2SGT;a}_URAOu|Ecy+Iu)ape*+xQ0563)ADpa?TZI8 z-{2ip)-6C?>_-B{Q2?G}U-CaVAAqXDuz1m76ZZ-$c_l1r8r3Vbd7-);?W)7^rUW{G zrcOp)IW_XL#7Kep;ByFF1@qH(N9#?4DBwzG&By})s8=78z6 zO;Suev_b$ojVvkXKiU zYn7XDyd6r)0;A=#&eq{d8gX9UR&AwS|39ew&c+1Pgn^8&rIeW39e2ahPvu@}G^*gp zWP~Bv5S<$&xmEr>Y8~{2+(1WK?RR0WqLSzgw@rU;O-O*93iaMqLTT)vlUbP+?cHx^ zSxD0n_qJ+t6nXRFIA-eSfMb>XPw)cQ=Lx1(IVbC8AV}%6TP$JK0f0CXBjF+0ZMu*% zW#cvjkut_s$NMJS^AHP7@~N<#oOZ`Xe*^N5Z~iaN-a0JGE^7M*0SO5~=@JwqhVB*- zQBaWXh5@8OI))HXT4HEW5os8@yM&5iehVTkt{yzl3EHXYUADj z5AM|lg`TW#tXR4v+b4!rr*iv2o=pPGAv-YN7q@A`0lq;HIJv34-$jIaO3IX6B6UA; zOv@EH41!B&>2lZc0o990f61U|(y*@&8nVWC*(pJ5)$7L}&ip5wdcD3sqc}Yd@p?`L zr+B#;h6iQ6#)ijqZF!XVEphE0Jt(3LL+E#U*H^qJ%(I?(EF6b!Bi0{5y z*^RtDNHpiT_yE;h%YMZ<0_S&DPVj)mw44bG*yc?_L--vz(Yv)G!fz3Ul1(xA^=FNbjk&R zL%j=l%`-}cR1GeE>DrL%0y);T7bV$*gucCOLx$zCpI6Sp7rs7(oJK{uhP(zwzQ__2=-b;DaXgBtDW&jkE%5z-YWFFu_}2WmL$*cspHBR zXZkMj$s?nFb=+fZZ zo7exXT}98-f3&hm@Vb($Z$>PKvQeEOlFOyR6aoVJJ<&IgZ8$Ow>+SDhL)|P+gwIB0 zRSC*+WyNTFSx(1(FrAjrz`R-W(+0DKyZKF;x)o}gbV}tGQh3fr!^Ro0piSqm22?{i z!kizTHvSxiJh6bLP+%Ggia3PtU!-48Vs){5d@{ij<;kR3sD{XB8T3|OD`HsWp zv+e)(q$LjX@KTzFBjR$LOG&$R5#rv5F?#_Mm zFR(T?i6(xq9qn9@ma1V(vvDrr zH-12J^8U@8js^i2s3_NsuRXUzlIIZg*Ns?8+wd<*ra0$Ml2__m93cX88iGB9gxJs} zpU6`$)$Pb^yyPRJE>j&RdN?|~WY9KhIreDS{y=4iOXMWyl|MqNF=q4$z(=3T@`Ab; z)ALubB6)%@X9W})QtE2})HY>9?k~dh&NpItT>(fbBY|vETW^u&zn4@}ld)S@<))^S5efe6X9f6G!0DC`dpg&$7z?>hy(HXU=cMOXSquzvk za16>X(hXnTjJW6Zmhuu-7_jt6v4@ghes!}%2VR)GIH@&zF2lEA6i^ zq*0SbNwZ6(Z1+_cZX{5yKd9aK?Z34fYm7b247UyKU2U=8H=aE&J4r)g zwP)!x@8bg2DVsoh2GRzc-Un4 zujz^nn=&)rFa7wuIi@?bl47_ZymRs~dFWu$PM>7?(_3Lv!1Uvtk}773I;UOz+2_C7 z++(O8-H)$b#Lw;&{U#_WQC!K-kX|KR z8n;qwkjz*2Hm`8vFr|C#8eQ1E&ds2gkH*30K%F({XYJC6<4GH9fnC5}Pm1<~x^3Y< zCkT(O2&9zoP1n0cpL2dM$<@(tWR=~|2-W6Wxe`c{WTibWfU?$C;6?QyOAwZKhUu;E zq<))!`@rdKtt}^3mHE`vXCiqCB&p`sP4KbLI-D!SrrETpQQZ3JUZ}1VQq(2k4^IwI zkp*-RNMCh^o#tDhXGZx}!g%ent15K^I(e zt9pxd8qPt%P;1hDA(IbK4+aY;`*u@e`KYr}H;Bs{w)=Vf>?M(?L(!y(UD*&W&}u@7 z4^?WD1hOo}q-QY24+9`7yR-3=R_?7ozL7>W@ zY8iH3mtk(2b|C*Y$F!>aCg(hoS>c(cCcId{*J9EVWs!p@1Pi4Ex_ud*G8*4 zVYDIn$vEuYW2_%+(XOY()=2{ZQA4(S(!N~JpZ9X3 zH5Vy2jx4*_LOdovJ2lsMug&?+;ABM8rz|kyar+fiCQRb119`z4UB)cPBu3p`2ShRl zUjEL0Z-o{64;mRCMg@PstzrV3M(9Z?Shnnof>$E#p*6S&Du0&|Gx@AJAy45FDbq5~exaGBvFd1_N=M}HbQ=kRbX;+Ri71La^Xlv!8Cc`-5-%$MHSmD_>%BJhlD^hY5f%S8``k`~JZ`5_w zo4Z}Xd-5*Es~;_8X8L)9+Pbr@pgbjOo%d*qYvTYzruCZ6k7td2I_~qA)d%(XK{L}^ z7bVqyup=iIvClU%b6yKKd&97`C3-jn-$h0&vb#NX_Gp6>Y~bgor`$&@ZqZ3zV9P>= z&E2=YP6o`#6Vi>xQ3iEL=<3bK?wU>ZFm>JQ%?YXVwq`SAxjdz>-KnaM%L_XNZHQk5 z*G#dEPk+3V5g(beEgQL}49I!4DxUGd!CZ4I86gc#8N^ zn>{{jlLdV2n`0^Fj?Z4xT?5?g4-Q_|dZcA{TG`r$+6PoSFqSYII3fWuk)vH{&cp)oo zY^#>N(f^*P%y2X? zj#X4;D(5v!ub=7epg3s21Xdph046cRmeN2YqN2j`hj+ILwIl5V5Rornn?Y2h{Nog$ zGS-Rl?0v!NQH6Ahsu|OO0f)H6<88~Q#oeXvJyQWs5Lx6OJfH$X&b{HL4aZsI#fa5xLXx1;413!SBrftdrgWx$$Tf z#ZW@ML_6%1pL9ja_SM$)RQ{A!E`!wvv>Yt17}cb=9B`5tc}#!74{WSNhvo|`VKa*< z1|gb_JhD}dJr?P%zzwpbx7ZIb^|Qh|qO54*PKGi*bW;Zn9!m+*e8B>8lc9T#Q&qZ^v`wlWbX5% z-Cck{QQSNcegJ?z?;5uIfhsb8A&LnB>X1?>+=mDr9K;KknF=fs0+^pc03}(wms|4~ zWkK^af~*mE)V8tcmzI!!nIBmFmD~5q6loya=4o5}Y8Xl^dATC2Wt*-+%p{-fmz&@k zIGtGm^RNi|;ru534^|u=q2#3dbCsKutv`P$8&i_^G*j;lz7>$87#pnr;CGxnfyW}U zB?3OLj|RZ6ZTJdxCkcOPtq=U{s-i}I&nck!`5)NFwruJ}r#1llNO>qhD1;d4RzTB4 zNg*7Cj9R;Pp6)m6#xNg4(&^K!jF|rYk^EJ^mmMuXYQ&x#+Yczx5~E6qJj~xZOA1#= zdprUEmrxx{xX%b9HQ51(9M4+?EMg7~sf-AoN#TWKym|!_-*OqTMC+U>vbpy zGHZJ-2>Q02;&h6F`1N)KTzcGr|4`pVRQeODB&p23LHFf9!KD{=iiP~S?~Ko*eVG%T z9La^P-{HSlSAXZwinl44>Q^inkHhDEbiz-ON=9JaC`l-!H%n`hIr2_@$uE44Z9cw2 z?xW;-1Hs<11cuSDy?ONXYwX9^T>)+D{=MS&3NDXWF4N7)F3z71D|9j8LP5pF@DTed z=xF}_;Ix`B(1*1pRgclqS6Q(9y9=5u~ini@efVD2(pZq0y zOzQ7~^=B~pjdj9SXODD6E?0f*-*kvTF1K+Lg-c_(EfP{f3{N#%!gg0n1m+)J6neN) z(6Cpwd|7gF==k`g1=;Y|-Xq7Cph9-qk@Ffw-Z1uW7DnAOq6w4M;lha16m@2iOaGSz zm|vYCg_(>je09rFBf#jm>iOL5FoKnqWPnyiH>(LL0!r4-*+(CpLpr6|>NFGz@14-* z8E=9Vau^;ROP-MaJF9b-7T@_| zEzx^D7bQ`x(-pF44O(aJj>-I^kI4D6ulM@019uHh)`?{IhOlRmq(FzMD(W=?gbo(u zXFXH{#Jd<9tz{j9S;zl6xR7fuL{lR19RWz^ZGIUqMpHlX&j6Xu3@~aPWpN~OQ9yg1WaDKeWU9`i4lIWJbVUJ2j$4P{V zq>8I0rA4E zp9^oR`Zj!Cw@}VMR4S~#yQ!djksPJ0DFC&4(*LSfk1~731NLMS{V?6QfFJvqjk1fzXrF5Y{uSHEyy9xZT4~ z&tbyKwr*s(=->a4kn~GzFfxF` z#bdk;d1B-3JBy5=wXS-k0z+!|pU2;q$6<(gA`|mE<>DlrdX77(*GwMF+r3jWS2efT zYr6{>@OkaKTYr<*VnSVp*l!sal0zPZ+!>~u#5(V=pi>jZ_Lrg(EfzcRpEyg*jY49c zhB@Ohfx4;$_ZHw%W3;RG>g}))z6>t<{*w|k@|gvsq-(l;jKqCHVNT~iBtn7-TTPs?sedR)!MhCauYPyoQv+}qvl1HE3H z52}i47J^JPS8qgUuoX*5_)Qg?*>Q#RiNUq+URn`)msFP-w+wjkS&oROcpaBPU)6ai)@oU8X4=8Vi(VweY&W0@d?Z z5nVcdCE0;2_+?Ig&Lq)d_Ey41(KMi@(S09o02ZgbGxr6Vbw)ntFr|6 z=XBFBItr+9iRrQ3VrYGHavz<;Y*7AX52!1Id5FqrhF&xB4i-lLYX4aUF-Yzeb*M`h z&kXI}#B}Ye!)KdG$2TIT-6ivl2I4Qd%cdt7f6YuHzkfTdHKos?l>8`sGdh?2fl^+J zlR)tOJA8=3vw@R4ceK1!m-D=CjEJlly(hc+V+jR737xI@hyH0;XG~Ls6^dM`XBhCb zUAOlYsZzaPuz!Hd;xduh+4pIhuR7FBme2~s1qt7 z)sxv^xV%lAIAs}HoOS`izQ!$L(vtvUBofe=1=+>+sgpYZIj%0^0pkrQ$|AE4&S)is z)gVFU8T6)uxW?y#D?Hb~z6VB%Ce~aWTR(1oXJrh1Dwh0A6>|yam)lnHM{EOeG|QHN zq){A$6m}wBvCr_%r_T3qK@~27J5dp%ctwD0el=&miJsft+trd)-Fo0CWM{3m)aQYL z&R54%Mpf27Lu$wm+}p~s;Bnow^S)5xsK&K>bE1oDRMO*OpvQ*5BH&w;<9v~a8J)+L z@y&~`$Z}3JzPhSwb?VmDzcA?8l7k#Rh0-q0S5?k-^2S2!pA3YAg*<=yQv_@=C&7_s zaXNQ$WRU)w23WP0G$0UdGPWFqX!nXDmzKQktA9L(!2G{XsqU-Gth#hn-5q?1<1<^F zQJ4RE?Au4gnEtpw@{im)H7F!Cj1P2L8I?8_LDb(<^S<&tbW4uxV zL7>@+f8?XzX%NxTLs=O&7)^x?!6`2?x^8vXIs7wrhNPnf5jMzegnbFC1g#lP(Cqc=O z^6q zOezV{&$HjE8?rEvX|WYC3B=BZgzfGkn-5JWv-;aRoPCp6&?3-J4BYgHH6t#7hI*&Z zR%lWvIwIRht>GOw6i#)#p%inE2!mnI| z5Q)U$NiAA~c!-fME2)3Lp1`aYbqgD>%KpOX{8j;h_ z2wU`x&pQp_Mzd1R?imR%$H65^B9;cT6W6H2{oA!G)4Mr5VIfQ=e)%}Av%nN{)csdp zoOb$`pQc1S{bonlfP0JYmZjn0Ae_Md&a3;=q|nFjy0B?u1}>7xL!QY8Od2aQPQZj^ zj@J`@w(5^%J2u((g6tz)x&jIRzFmErFO+Gg_Z$L!?l&gwjg|#gLoUO+T-%hN-lJK4 zv?nK{snzJYV6^sIcJt)^?|0_VOhX|Zwgvy9AzifUsGIXYXmo-7Nr>5#k}|??{UFGy z22=PNTcG)zt}%jHH`Zs32;@foKqX`w9a=XF=YE-181-*rCH|sGM{tS*IQ0(Rfjt~# zP(4M*KW23R8_WZ!^(%>wsLm5WUt#&ti;9Q9Cb9lAY7GQh3#GS#)LaS(L1rAR-{}m6 zrkG7HGy(sOG~UE-p)IE6V}m*7mws{|m)ucc3kU#Pq95`#5MPg`Y&o1dBddeL#4IP% zJe-=k2&dasRO|w*ccvx^+Q+z&B;tb)Br+fq#`BM8I3x#)mS=;o6A@uGz(E3W{um&9 zx;W&y*6y9O^gZ4iAN3;{ge!QEhnzqPy~+me*tg@;plP&RBZMw#Rq4$n-3;h|F+!m& zRcZm~@GKPC(&8eNw5|6T1O!{De6SxWk^5V-+0l|MV~nERLM1_(6Tqpr003JoGXq03 zdnQ^6hh+RlwNCXR8iE0c#)2?@u2eC)gU?B$6jPHp9uK%Y#sm&fizN9S!e4*sVAv=Z znVN&ZUX^E3gV7*wtVUSCb&r?m&ID`*PT!2}zi|fj!)R{mYJ9c|WOIzqePT%+;37^r z#$4VsoW#aE*kBg1*!zUn%}%R{?uaWrJO3x~Cunf}U30H-pM}2Tr!-^#Q8clGe8brf z!GzD?041hsWx%+$+Ec}z1J%|87x+Qf`q$-FZQ(Z_NM$M&$Hrr^bTkp`nD zWthZTp1JX~$u;XyPKo@Y{!>a{34%T}KlN0LqNeHsG~l_$Q-1OD4F*o&hx~4oE{t)0 z71=D3;cszt7s}hWKQAxdJS2cZSV{=MRi@Cos)MTab%%2gR+=MY4N!n0&8h;JDG*!K zx7>{4D@T{9LYYU?J^HmaqSF`Ax>n`Q-=^QEOK{Q7pH1YqiO}?lYE8^9^<8v?Z$wPV z8?zpo*%zICXQ2D^8QZj0jGJUZY9sWpeQTRzt9i)Ferw|wNKVPIjOi>LfkXIPh_;wi zV7h)7EfD#l&FTb(URJ==9Ho8TP`B|cTix#$=8MhHpx)Ly{vu>M+6ERuThmm}0B9vs z?rJQFX|Mk&!J}ewKhwW?GypsK#?MXEG>q>6rzPWRoiad1OCN$-&(D-Yoexylnc|pzWeVDDa-P!8oQ{Z+~R`zpP>L~1fhV*%LSCO>yWD{3OG6P;y5^&pON za-)sbx`upk;#Sj>GA?J=DvhFvz4Y>zS_bdATjG#z7Zr3AkNYVfk^N?zVU3SC?-5S%Zo?{SVXQTGHprJr* zi2uT2*OLQ`yL?FlB48AC63AEQwY8XOfA1VUs8Id>n+6HU{a@ULBX5DjM#)*f!Qp=3 zPf^!3ONoIeyS*Tj3)eAc?xy*^w!Q6@A?CL}K?rx8)w42^JLzRlHz~$YCrGjNqTP&4 zZdvi6Q{m}iU_%ne7i2>qYMKfeS{8OO@-LeCNZv?MBSL_U7?G}fx7Ic zW~JdM;zYj-X}SN-HxVK2>dq422th#ehE`?>(JDi zRe8&q5sg1)Fo?c4-)rb5MDt^#sGbk^Z<`b48w?HRtPkNoth!JWJ*agbDu6>oevJ>z7h z73O%U>(viAA6l~weI{zOj|lpP^rOOJ+Z;MpKVZXV3!fSO6?6g+yi=dmDGz-n0NT+< zIoEcKL2I^hEIX?#KgMl>xhKx_hp(FJ)aS-gl}(pFHWe4HOD^~i6qc$9Na zh3LRhXaA_kjKR&aMlng7njw5l2P;-Te41sG)&;k6ThrNu+_~CwIl*STZ%b+)f=7^uEJS z&+rjFSEpU?hVPA#n7kEFU;A9e-cr&dp`ImYxyct14LvGTTT~k+@_Zwcwfh3K=8ZFy9ZQgl|*P%sd-qvE{A%4w3d7ys@;p~u*!IK zY~PsW%7b*1jwrog4|;P6&Su_yed4(%AZH+Aou~HHXXTs3{_#8VSgJI;&uTNJRt7Y) znLeBehK-QtF6G{`=1%Q9X<w>SMGoUq2e;(Q&PgE<%zM*QL*<`e9ErPEBK-oOi-h&v_?pe|pvv0uR*G{uu_ zPgp&1z9(Ler%9gnU`-X9TGMGzLq&NQhS^?(yJf#LNIDBE{qsoaGx1~o&z^0; z7PX3a@>wj5={ox8v8-^qN!&^T#=JI?DE(OU9G4%Vk|YD{?%LHa0FI zh_2Fy9td3 z@fWg*BDFHl98;RIyx<9^wZyD<%wbqn`++WHrfdwYj8f5H4S`bQ+`&IKf-e(2OC)0` zh$dTC_!LbGW+SY}A+*Zf6xaYZQMN29PYb@?_^^Xk0dHhi#weQ0{r)fJL zyHq3#;NG=;z@9B}fsqp4L)9gal^+K--)}xA(>K4VZ8x#=SFtDotB)p!dq%uBOJx{M zSMvcA%*a}K$ZLc3&92Iti?V~>zMxL$Dmx>Pb* z^q8z7$NPG?ieK`Emd~muayL#{Io6qRV+)+54tN5Yb14;gYCL?V3^Q?mWupb|?|oZx z@A+u5`g+94PqD&mrJ1T2gh+O!~p*ZHK`+0U82oOJTPSlA5h~dcC(IpG>Rv3qUZBK zixBq!pAsVw(wE)W?Bo`$Jp?k+vQtM)u@8yXy)QO`>5Wdp>cd+OYVT?l-LDYgIlyle z1R7d3*@;G}Ozqzn!}NTqR#@_bm|@;ZFM|4?kem6pI{D~hU#+icVGj=LE{lmJsatfG zBCB2;Ow;LKKU=SE zUgGJG0N;f(7-<>MsH+>P>U8n@BcOmogi^FX5aRt^IJJ~RTa9NhLj7ukB4!L=F7wIf7-rC>3DT0Y9=n1fULV`_I4?L`mUxSzZB09?*<5q>sA&dnlN)&};+$q0I3p zHQ*exX+<0P1(hfg@$cY3g#aQECDm57qfn5mCJfZG_5sgI|0Z1r$kWrIe;(WpV!Ji` z_&|<&(%B&jJUL_~J|HxI^53ETu-CCG`_8^HXy4D8Q?YEBG*X?1>`lvjXTKsP+d&Ehi1#BZg!waL4 z0%rJ~%7F6ZQM2IuqVS>#?oGhXDA?WtooWAkX8O9p2uMZ@y2Ww0znsPuu3YH*=Zvb^ zm<08nU1+~Vb#MoK;+BRf@^|U)$Oqy7ifa9|er!9i<&>pL4M(^f-UOh57}N zs4o-fzzE$Pr{>$4Gyb!(cdSv|yob@3B{}v0gzqO=^;;TsPx-ds<%3TefOz8{o-5*G zqNc7}eo%|mQ~)gU-_-;-poMTLH`6MzH~?+AU{}KS9zxIfFT?8~dWLN951jzwpIHC0 z05h|~`Mip1z`tlJfh6z(2DgoNlNr_3-yF6>C?dFDx2x} z#q9_6<90ZW|IS_1ef58N7N91sn!yWaEfXKa0hpIkV+Lwy_!#qy;b;iJyEKGhjz;pr zCDs7jZJ3|a7%**dulz^)-?@D#(;to*tlOQyAKdzT)=+CUyNr&L^2;5J;ml|G(6;VU z(Ulo}e5oDQrQxRC1G~YxSUSm@3Y;RE8T9WJ@;L<+&Gr-73k?|u9%**0I?Y=Ph7%T_ zf3r~xaZmvz?J}L*pkrOUM@Tb);?-1Rabu%9Rc7a715Xzct`LN|D|$nucU{5)gc>CX z#iG<|;~k#qJemGrVDU<6C}4!Sb+(@EY~$2K*r63?$40B4Iu331BrL=rjZquINW+yI zs&V{Jp8nI; z-tu`Gz&`2;8>d`)h-C^(c7(~tdY$Y`IQpz-e%_&&;3FG~t#GKFyfc+Fb~QDJ2r@-J z2daAnt3O)@cX%#!tTzkyEPMs(4-m?}!G6WaaqYwts5WOu`$Fscv&AZtuB__1NO>6^ zwYZU@ijkyjQ`w-LzRzDQj@lt%Uy^&<+ieTr{Xi{%^>5jgA@veelc;19h?W?^G0?I>&$$<8jqy(Xa74u?Xpm>kgqgdNO55 z-m($_DHmvWm_cNBf96xLL`A9X-@J^jJqUT=w|6nI-awlW(aaOz?-rqQw^Nk;l!Yso zTOa^2zFP2FU)VeCW`RL&%7ut%>3YGfXuNNAS;wKD9ZWR;?nKLx;{^;uLX0~)%yjm! z)8N%76@dc~ecQ9$>HONjU*WcnguivLAS_0uRw_mtYVEbES_m%pPysMu3&nz%tX4TE02?kJ(`zi{^SV5?9V^*&vZpUFh z0t~}|IP|sdcJ$UW)2FH1Ks6ADlQ?vx%;uo#dN}&E*O=_OgCx9YcCU*S>XWwWhrmgu zcejuVftz}EwNB@I?MX%38HJdDKMaZ(oo~<|E+{||5eWLSi|0fqGj70$V`lh6x8R>o zwNLiFi0~19*DFkQ?oAe_VS(61YlO(d@V%o+n=0N&`e?LMgV73NvnE?7st@M#r#^Qh z^Rz1q4$(6b(&Br0$4!ml{!WrapyKIS`r0Qin-wznoAq#ka`J`h&3lT|i!#-P+A=XG z9LQ#VU0cnMh)$rmGzP=Qk17#D?*$O=n9Wf_oXp7(Cv1wq_Hlz#d5ZYxw8sjB6 ze(B~!TfA%rZICTC0nmgf`aNCCuIW*P#m@|u!a(HQ>>S%>q&=6g1r$j#r6RsaCH3nc zPGET0b3f$HX?+P%DE@I_?Fk@5o{hfb^#;ij4sNO0CJU6-qi|Jx`UFY4m7U(kH?HK;SxDO;^V#maDwhSDoVF^%vZO{Fx{Hn z-`oh56hVw?_?13>l~8rT4`BN$7C5!a6BhRtRCYoN)n+$`a$PO5*hm^V=uJ8UNSd!c zqlZRygn6C`_`LhTv--5pClWYNM`L+4^@%*=uBoL(1GeO{kLFz|*c-cp0Gn%n#}N_^ zW3t)l5DV_i?R(EB_2t-w_c|8)gR!LKEazAm0Oem9|KxO=X8jjR_;0Y^UUFqr@ksD* z*Mh#4*o+5-Y`+p7BkKZIA)yHU+xa_i8wuq%GzsL~(SF+3@*#Y;Yv(8osHuhocuWCt z;XE$$(UEq64-7w)EE@#Gp8ap1%kOHPw#fxM&U*We94i?h^8KvCkW2})wW70> zI2<|Q)9#GY8^(Bf9Et!`LNe*X64Vk5U50#!TCvAn8~2q%3$qWMZuAzan%p<17uy^J zKL5ij!a16j5D^tCB4BcK{s%7heBOQRFcpS>mtyox1R;92#fb>TV;BenJjQ=yEit#a zEp{#S--O4tb)uhMD-!mB4*tFG)rgQs1fa&6R`P&p70mmy^hMMl2_6t&6Ct8)SHIwC z!LDJMgy5ng6SAkI0%XqAu69VQdY66nrt9%ff^5|xj zu4m^_Uh*|e;p`weBM1>ZM>d6cj8VJb73^{&NQ_F|!x3z_Hlf^A*2lA1&k<+Ta^S_a zdDj%#>3_gQkY()*G-kFFhbzeTY~4g?Kf4T^D0l=aHa%e%DyhOqg-h*H;m{_oB&JCO zp2IVxBqsMCfrvV4m&W^H(?C!%IuAG&iMZT%Y}5>wH}*va?J*qk+4qsiYx%B!GQ0kY zK_6aC2B^Tc^kP-EO0a1WW(R#K@Fx2|s?pGt)R4e`L?Y|!`j}2etsQBX07T0@0Ay(y zj`3tf&G3Duf`U;0_oHIhjINWMo5-}>c;XlDC*t5!Q^ALp(f|R$1SeUaOmA!?7o*|D zGq^nC4jd6AgzwMyV$Vs;S9|yRyB*OFMOy-k|^kzw^tHwbFxQPH?#suoz}h!Ck=S? zIgpbBBI~so(O&AVCMv1=JF8qOKeY?BwZ)emfkN^!$uJraRQ4b_e>1vZiU0X@Ugc|^ z$!OV!lx!_PZsH{_m;a>GJOS{HUYyQeBamfKfGtlMHHZA*4K+#+uQ{8OGomh&YdL6l zq2vxnw=GwbwkCCh=^a!-`P=ZFd-+e*m_ooHQyx|#lwOYmNOH#W!rK2pwzkcW(DsbSm$}9nD=1fv2 z`desYs}s^iT2F9x@ZiKbQoXZm&sai|YT$PCXh7;0BKz5_Z4rN@m}&;yE_v{?RAO`Q z!Kjv-_}ZXI8EQ|js5fr~UY{h~O5RaPS7#O9XWc#F*a#5Nl%*Pq*7VgjT|I#EbmP$#89h2v^(35Cw02*ndaH*917eP4q&!7QNs(Y<~oc$k(ZuCEw z+L^!SZOMav*X!m3YRbX-WdFD2Jl$gI@NG)b4(qccePFDEh8;hjyUo%GRiZ#Rw)moS z)L$K2qwW_2E7;S`i0&727;U=y&7%QMH|)2=F^op*wpSigLu@Mv4JJxu2l~JrY44em zxch+{7%Sjb$)-nAy0WZUfzKCHwIi=raIhSAve|lV6yJaP&3aCO5~F1t-dh-Oug!(~ z6wUP(2n$vfk;*yW!Nh#9#d!3IFKdT%u{#C!3E8~m8!j z-inVy&PbJ04&bEvD(SP)Tt9LtkzVAL*rDuhFX3ss2&HwQ zLwR+u#ef2~aN|`~%jM+hs(OnSSoyoz)#xAHbN`>a+&QCAd2ZlSA_{0z2!48KElW_v z*D&~i@(RHNzX)~~e#n0joaztSxRQ7@47-j{BH<4`y_#hG_yt?pxB%RZQzh(_&nnz zSmq$9Yx?B&SoN^JDsZ9;L52C~E}$wAt?&i|xPdp{eEWN%Qk|e87B-dGg3T%(+~Vy< zYgz70e5P#0-fu(gVM`^I?q{Xe02Q}9wOs^^GS0I3P+)2@(bG?cp3dJ=Yd_8RNoLB+ zVD8=*{AGPNSGg#X?^*W(yg)cjuruDsCKsP|KAO!fb^uWG_QqL+*VgH>1OB-ar|Cz4 z3qYhj=B0C#;pRf^j^$xMNP~%BQil!1SlLAHb5mJ3TFz?|1%ZeYY6W+1~G<*yQfpJYU?qO2aq8 zBX%AM_M1zXQaD2ox+w+(%E%B06K2P+n?RV9Sl`Bn`{+M#+l)lp1F~~;1$-j+{>I2T z=w<~bG;{94)TYUc?Zyb1FG6$z=-Rr02=`aEG<6x(?0`wbBp%4HWwvx5Grj&lRakKv zskz%E$YUBP9@Vt-qXA`|OZr>V%HylC((TpaHq?y+OE6H!DIb!a>*;ROmqEu@{oC!* zA84Vl$9G3A?OsjlV=!>4bQemH@kFn3mdzxHTuY7YlR~T1Vh=-}IHf>OA^jm~a%>V9 zm&g=7VReQQN2oLsby#nNFjhO`*D1 zfSSeGbfi(ufQqv0ZLQ2(f{H~A4LQ`Y-1>=EP6m3q-In=G*x2Kd zCg9TI0UM?8QuWX`2LIp{lxG+Qt%LqZ^_Oo=rKV#&ZlH??O435fBi4NuW1<48?g(wK)5n96UiHxHSp(-kwk5CPj`B?31rafkb(ZfS|p zR-}xbb@>UJ%-7#R0>4yE+Hu}~pM@ov=MsJX>m=4Dl&hn?FSDRZ!8Y0N?yA^ zKW<)^YUCsjvS!>A+aOTpAy#SnUu1;yzP0hBmLw3_bSKehUu5n_oUqGh$=V|W9+9NU z$$gzTs$8RTBx3IF_fiIg*Zl^1J_*O}e^}<0cAQjG&z-bfx2(sU>QrOiiNP(EQ_K6F zlEib_*B7Mlrq(1@o;`J`NYTUNk47K^7!-wD=91rIwsKQ>w85|Nt_4f`P;K~PfQ9$T z$i_*hcD&>F*6$?Gw$$^AdkWOG2R_3R{Q5x@imb86xt%#OE*hJ8csahZ#$09b?c<|Q z@?yr&app`jauJRmOutEkG=h9S1P$p-G{9uO33AkFnt#ikG*bK=*Nyp&tu@+8J-LfU zU*P2o8eG7d1b_17>HRJ1sOx6t%+gNBx9e%{O!|d{Ni7jsSc*>fvkQIGkf+fpv{Zz}WfNWk~V$Z9Y zk|G=O{Wi5XEt=vxAV+^`ltfBt#M7nWO*A%j%q$Jru6&Y=V5%31wQ#YSq?(k$p4Qw^Maae^U+es zP(>uEQAI1&SW1g7rg;zd_ubI>+r&D3CnB!?jf?-L$|}D2FRE-QQz==r2uVia-60Zv zYL3;L71+M+@aD>N_X>UR-dCttyGt&tZg26W1xVxC?xH{Ufw9cx;fGbeAV}6$c*8NU zF?Fuq?LsD^TzUo__)^Rm<}eT35~YraQH%XMfMq2`nMNh=b< zS{*vl9&A?Smwb>H2cOvnDt@f+don}zT?{V$ZY7rLCkV(U(G%-`C8WdQ@u>b49^|Bj znl7-honD&doY&Xp;X4un-Is}Hsvp@u5DmLD-MC#^EReia!0zeQE8F-hq)=*-Ex5~5 z*K=Yqn8PARZc6F)d5MSH_*yUO)M)-IzGkI|Dr*(kyBJh)JIOe#tHxcq<`%i-2Bs5? zCNJiO&Y7WhX`a4C-pn0#{=sd0kmUWgg3-um(N*KzMsw)5d+K{a-9UKvSu^q_e@R7J zY^RiUBa>z;-ybJG)39J7Wc~218x8?p0k300f^w=k_j*eFR|_bHm||+nMPCMfm>zfP zFfC#creDmIZBpu{VKuKZ;HbzLrE>S@`<;QM<&P|~TQRMawVf<#W%l>J^Dr7o)F zIDtsOske=MT=2@g#egiL?E_YUY>}XNUy@r`dQH1tbC&De+|89EER!+?i+GQDs@cQV@ zUNee&PanVbFiuHJ7wS2-tLE}7EfGqKza9Jn?~}Pc%u*{~ZzduAz9L;|Y{DDJsQwG> zbhE)-!?s+DgPHLIr!?z$i88VDEy2k=eChq@GuZ>77)>ft^`NSP67~?onAR>C<=4f7 z3MyU4(S_|f>Nv4UQ!p6~g;zPSF_pxgmwC+!hNMRQ()!Ok-zR4DzIZNvJv#Qy6CY6> zE0rXnyU<*<`{7w?7#hM;=?}H`^6FZIP}ZjdGx?6KQ?f(~6iiejHplDBN?5*Gm$i23?yQcQTP`)D^wdcd3c&7reM9VXnnJtdKr>c2yeA;pwK4V0*N_vlB<)#fFh-{bcN5IkZS4$x zh3>w4qP(vshPeMY`sK9EHzSxP!cYUR&67#CK(uQ#XR7n_;2jC0?!HsfXM3UnOOs|^ zDP8XG3r~J5Vxxf5PqtX)VEN{-ruGUWyvEIx&aB)dEK_IyEM=bp$f|ZbY!kD$o-#8! z@n?@-oNi!gS895d(yWOnVedihgL1m5b(8Pp%BXL7&~1$bW}ddVk?xOCGF_-=ta~^Q zJO^scz(=%lU>R$U0fO9rdhP@X>@S`_+AGX{X&Q6?i@;P|Ykrs(kb##8 z;v^69xIfFZR9T|IRqv-y=L}TUVoJe8z8JccWIlTj%Gh-#0RC#SH{&k=;-}S@e^)?3 zw)#IRprsl3vY=oKsei}~O1@gPnvZ(N9d~`f5Y)}Zh+uQ52$lqFx*cmbjk4L6?rA#9 zRd4s`%Qa-KwK|o45j1|0?RaF({O2+O+0QkiMezFX77ZA0mW7;S>&f^L4;;(-=pCxK zhg%}+DKySQmm6_FuB&YLZ#BDr3P>|J%zYvFIe9VY(7xm(hThX&3kuAAJ6ZtX2P!rLn+!q@|s%FqLc(Y1U;{aM)Qvdu`J(1H*i1 zb-UhHbj{n2p^Q>WPv`)u=Y%RgPioKJ>+s~QLyTA@ZAt;3cKnWJ$iW%~jk|YfwqIbnTVC2F=mqhM^(HAq5DBYQHj2)T2ilkzSApu^iYD8>0i>RKXO0M_~xu1 zF2y4s2Ckk0Krb(8M-o9?-TC4EpG>24yhGZf}w;!8{jVds0Z#{y=MSm2A>X zjcra=V|uLhp1O;*U^`VeZ!TcuUY%Scm}RjR!oHnqq5Ae?j=x>tGv7}0m6xnVo+>!P zgrmEzy%cR@Nn|Y$_4K)=!?5|%ZmA%n%Og#eaH{+uCLIp%)XTY$P}!~@C_>Km&$xg6 z%tZ;4@V7X9qjxWH&+62yDH$JL9%C@qWoJ0<@amCKJxzB(kc-tV!F;{X;orRqIRajj zeR~{Fa_dm!@_Rc@s(W|+YiFLlr>Q+-P}waX+)}i8O4|p#^Fm#)m^{f|kmrlKc$_*;H4V z#JOpbz1EQ)P4Vr_NdLqUmaUv!u-yVO-M7PX>Vl4JhG|2g?2zDZ=2*R zPj}uhaOif9tBry}Ov-~gg!MxB?t@`dQaR}M@h!N&8>yInAWvkYR!@jcZ<8PTLc{?Y2o%BXOFr0J|?i9gNo8+ zm`UDB;)c%G)e@Fg-=}hk)BXBzYd1(3b+0^t_?}5{l+weywFsdYECv%JyXV1gZ_!=X z`%+NJLxUEqz<+jpI4+Jm-?BwTOI^j<@am{P;)Qizc}QJ#a-JmfJ=U$in)$*v9&N*67-$1Rwv3 zV1}bW<9C63V;)X&G+O)HTw>V_sr!pfWMR?!#`+Iw%D=7Etz{CQy;U`Z(&jqEk1Fn_ z92#qXcA1|p2tOYyE*~>9*1~l6Ufk3Vu){mbKxR}gi$umlqV`TNG^#E_v?MEm)YaFs zd5vF(r2TNGQsPMYXQ5d~WlT}Eu|zzBWHa%TSS5Y68K{_zSdlDw77=>K zZ1L?aMqm!a$TAKTz6@xUMF-wGuisSd1z>z&ZMHSFcDXFOTeWralwe-6SLnOV3y%SX z>wQ?vR?gh<;sQ-U*r(#_Eor;vd{J~2RL7>eY(IPF8`0oFzrwvC7}=RO@t~25x0wq~ zCoT`!-*m9Vm9=Buh!?XSMuE$k5M^sKB>WU) zlCf@{jV$Y`S)9TJ2|1A6LWA$j_evbn%oF-DH`n}RrS)o$%ovMgjQZLf9d+>XKK{DCohXp?bV!O&;x#6_M>P2iv!&UHT6Xu|9BfVTfI3-lT=v z4x+%fG~I7DOxw4yFSVd+>l=Bo_2E=PB?#aHUyTPvC8^`15{A}DKMVhnl22b?3<44V z7)oXmM1&m$;qZ>)e_0i41Ephg-!)LEP6)(hcHDXZ#I<_coU*~(tO`i+RqqNGR`ZV>@Wv; z{OO}#Hj+ z$V=BUcbo8ESZ@tKwWRl(*a55_u?Nwk*VbsysyI-4uN!H3eEM%v

    F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/dev/images/cplsetup.png b/dev/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/dev/index.html b/dev/index.html new file mode 100644 index 000000000..4a9614768 --- /dev/null +++ b/dev/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

    ClimaCoupler.jl

    Coupling CliMA Models

    ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

    • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
    • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

    The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

    Coupler Scheme
    ClimaCoupler.jl allows for independent development of interchangeable component models.
    diff --git a/dev/interfacer/index.html b/dev/interfacer/index.html new file mode 100644 index 000000000..5804d43bc --- /dev/null +++ b/dev/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

    Interfacer

    This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

    Coupled Simulation

    • CoupledSimulation (cs) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

    Component model simulations

    • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
    • the current version requires that there is:
      • one AtmosModelSimulation
      • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
        • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

    Prescribed conditions

    • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
    get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
    +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
    +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
    +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
    +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
    +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

    with the corresponding update_field! functions

    function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
    +    sim.cache.area_fraction .= field
    +end
    +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
    +    sim.cache.T_sfc .= field
    +end

    Interfacer API

    ClimaCoupler.Interfacer.get_fieldFunction
    get_field(::SurfaceStub, ::Val)

    A getter function, that should not allocate. If undefined, it returns a descriptive error.

    source
    get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

    Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

    source
    ClimaCoupler.Interfacer.update_field!Function
    update_field!(::ComponentModelSimulation, ::Val, _...)

    No update in unspecified in the particular component model simulation.

    source
    update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

    Updates the specified value in the cache of SurfaceStub.

    source
    diff --git a/dev/performance/index.html b/dev/performance/index.html new file mode 100644 index 000000000..d3b3bdf75 --- /dev/null +++ b/dev/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

    Performance Analysis Tools

    ClimaCoupler.jl provides basic tools for analyzing performance:

    1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
    2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

    Flame Graph Interpretation

    • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
    • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

    canvas

    • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
    • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

    References

    diff --git a/dev/postprocessor/index.html b/dev/postprocessor/index.html new file mode 100644 index 000000000..d6a263835 --- /dev/null +++ b/dev/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

    PostProcessor

    This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

    Diagnostics API

    ClimaCoupler.PostProcessor.postprocessFunction
    postprocess(
    +    name::Symbol,
    +    raw_data::Union{Fields.Field, Array},
    +    p_methods::Tuple;
    +    lev_slice = 1,
    +    datafile_latlon = nothing,
    +    nlat = 90,
    +    nlon = 180,
    +)

    Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

    Arguments:

    • name: [Symbol] variable name
    • raw_data: [Union{Fields.Field, Array}] variable data
    • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
    • lev_slice: [Int] level index along which the :horizontal_slice is applied
    • datafile_latlon: [String] name of the regrid file
    • nlat: [Int] number of latitudes of the regridded array
    • nlon: [Symbol] number of longitudes of the regridded array
    source
    Missing docstring.

    Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

    ClimaCoupler.PostProcessor.DataPackageType
    DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

    A container for storing the tyoe, name, data and coordinates of a variable.

    source

    Diagnostics Internal Functions

    diff --git a/dev/regridder/index.html b/dev/regridder/index.html new file mode 100644 index 000000000..70901cbc3 --- /dev/null +++ b/dev/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

    Regridder

    This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

    Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

    Regridder API

    ClimaCoupler.Regridder.write_to_hdf5Function
    write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

    Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

    Arguments

    • REGRID_DIR: [String] directory to save output files in.
    • hd_outfile_root: [String] root of the output file name.
    • time: [Dates.DateTime] the timestamp of the data being written.
    • field: [Fields.Field] object to be written.
    • varname: [String] variable name of data.
    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
    source
    ClimaCoupler.Regridder.read_from_hdf5Function
    read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

    Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

    Arguments

    • REGRID_DIR: [String] directory to save output files in.
    • hd_outfile_root: [String] root of the output file name.
    • time: [Dates.DateTime] the timestamp of the data being written.
    • varname: [String] variable name of data.
    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

    Returns

    • Field or FieldVector
    source
    ClimaCoupler.Regridder.dummmy_remap!Function
    dummmy_remap!(target, source)

    Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

    Arguments

    • target: [Fields.Field] destination of remapping.
    • source: [Fields.Field] source of remapping.
    source
    ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
    remap_field_cgll_to_rll(
    +    name,
    +    field::Fields.Field,
    +    remap_tmpdir,
    +    datafile_rll;
    +    nlat = 90,
    +    nlon = 180
    +)

    Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

    Arguments

    • name: [Symbol] variable name.
    • field: [Fields.Field] data to be remapped.
    • remap_tmpdir: [String] directory used for remapping.
    • datafile_rll: [String] filename of remapped data output.
    source
    ClimaCoupler.Regridder.land_fractionFunction
    function land_fraction(
    +    FT,
    +    REGRID_DIR,
    +    comms_ctx::ClimaComms.AbstractCommsContext,
    +    infile,
    +    varname,
    +    boundary_space;
    +    outfile_root = "land_sea_cgll",
    +    mono = false,
    +    threshold = 0.7,
    +)

    Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

    See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

    Arguments

    • FT: [DataType] Float type
    • REGRID_DIR: [String] directory to save output files in.
    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
    • infile: [String] filename containing input data.
    • varname: [Symbol] variable name.
    • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
    • outfile_root: [String] root for output file name.
    • mono: [Bool] flag for monotone remapping.
    • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

    Returns

    • Fields.Field
    source
    ClimaCoupler.Regridder.update_surface_fractions!Function
    update_surface_fractions!(cs::CoupledSimulation)

    Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

    Arguments

    • cs: [CoupledSimulation] containing area fraction information.
    source
    ClimaCoupler.Regridder.combine_surfaces!Function
    combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

    Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

    Arguments

    • combined_field: [Fields.Field] output object containing weighted values.
    • sims: [NamedTuple] containing simulations .
    • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

    Example

    • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
    source

    Regridder Internal Functions

    ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
    reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

    Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

    Arguments

    • field: [Fields.Field] object populated with the input array.
    • in_array: [Array] input used to fill field.
    • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
    source
    ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
    hdwrite_regridfile_rll_to_cgll(
    +    FT,
    +    REGRID_DIR,
    +    datafile_rll,
    +    varname,
    +    space;
    +    hd_outfile_root = "data_cgll",
    +    mono = false,
    +)

    Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

    Arguments

    • FT: [DataType] Float type.
    • REGRID_DIR: [String] directory to save output files in.
    • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
    • varname: [String] the name of the variable to be remapped.
    • space: [Spaces.AbstractSpace] the space to which we are mapping.
    • hd_outfile_root: [String] root of the output file name.
    • mono: [Bool] flag to specify monotone remapping.
    source
    ClimaCoupler.Regridder.write_datafile_ccFunction
    write_datafile_cc(datafile_cc, field, name)

    Write the data stored in field to an NCDataset file datafile_cc.

    Arguments

    • datafile_cc: [String] filename of output file.
    • field: [Fields.Field] to be written to file.
    • name: [Symbol] variable name.
    source
    ClimaCoupler.Regridder.binary_maskFunction
    binary_mask(var::FT; threshold = 0.5)

    Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

    Arguments

    • var: [FT] value to be converted.
    • threshold: [Float] cutoff value for conversions.
    source
    diff --git a/dev/search/index.html b/dev/search/index.html new file mode 100644 index 000000000..dd708c4dd --- /dev/null +++ b/dev/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

    Loading search...

      diff --git a/dev/search_index.js b/dev/search_index.js new file mode 100644 index 000000000..ec1b0fdc0 --- /dev/null +++ b/dev/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.9.3 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\nimport ClimaAtmos as CA\nimport YAML\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\n# coupler specific imports\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n CoupledSimulation,\n float_type,\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator:\n PartitionedStateFluxes,\n CombinedStateFluxes,\n combined_turbulent_fluxes!,\n MoninObukhovScheme,\n partitioned_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\n# helpers for component models\ninclude(\"components/atmosphere/climaatmos_init.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/prescr_seaice_init.jl\")\ninclude(\"components/ocean/eisenman_seaice_init.jl\")\n\n# helpers for user-specified IO\ninclude(\"user_io/user_diagnostics.jl\")\ninclude(\"user_io/user_logging.jl\")\n\n# coupler defaults\ninclude(\"cli_options.jl\")\nparsed_args = parse_commandline(argparse_settings())\n\n# setup coupler and model configurations","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"modify parsed args for fast testing from REPL #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"pkg_dir = pkgdir(ClimaCoupler)\nif isinteractive()\n include(\"user_io/debug_plots.jl\")\n parsed_args[\"config_file\"] =\n isnothing(parsed_args[\"config_file\"]) ? joinpath(pkg_dir, \"config/model_configs/interactive_debug.yml\") :\n parsed_args[\"config_file\"]\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"read in config dictionary from file, overriding the coupler defaults","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict = YAML.load_file(parsed_args[\"config_file\"])\nconfig_dict = merge(parsed_args, config_dict)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"get component model dictionaries","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict_atmos = get_atmos_config(config_dict)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"merge dictionaries of command line arguments, coupler dictionary and component model dictionaries (if there are common keys, the last dictorionary in the merge arguments takes precedence)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict = merge(config_dict_atmos, config_dict)\n\n# read in some parsed command line arguments\nmode_name = config_dict[\"mode_name\"]\nrun_name = config_dict[\"run_name\"]\nenergy_check = config_dict[\"energy_check\"]\nconst FT = config_dict[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(config_dict[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(config_dict[\"dt_cpl\"])\nsaveat = time_to_seconds(config_dict[\"dt_save_to_sol\"])\ndate0 = date = DateTime(config_dict[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = config_dict[\"mono_surface\"]\nmonthly_checkpoint = config_dict[\"monthly_checkpoint\"]\nrestart_dir = config_dict[\"restart_dir\"]\nrestart_t = Int(config_dict[\"restart_t\"])\n\n# I/O directory setup\nif isinteractive()\n COUPLER_OUTPUT_DIR = joinpath(\"output\", joinpath(mode_name, run_name)) # TempestRemap fails if interactive and paths are too long\nelse\n COUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nend\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\nconfig_dict[\"print_config_dict\"] ? @info(config_dict) : nothing","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"include(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\natmos_sim = atmos_init(FT, config_dict_atmos);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D boundary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n config_dict[\"land_domain_type\"],\n config_dict[\"land_albedo_type\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n date_ref = date0,\n t_start = FT(0),\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\n\nelseif mode_name == \"slabplanet_eisenman\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = eisenman_seaice_init(\n FT,\n tspan,\n space = boundary_space,\n area_fraction = (FT(1) .- land_fraction),\n dt = Δt_cpl,\n saveat = saveat,\n thermo_params = thermo_params,\n )\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_turb_ρτxz,\n :F_turb_ρτyz,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot, :q_liq_ice),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name[1:10] == \"slabplanet\" && !CA.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n config_dict,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = nothing\nif config_dict[\"turb_flux_partition\"] == \"PartitionedStateFluxes\"\n turbulent_fluxes = PartitionedStateFluxes()\nelseif config_dict[\"turb_flux_partition\"] == \"CombinedStateFluxes\"\n turbulent_fluxes = CombinedStateFluxes()\nelse\n error(\"turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes\")\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each surface component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if turbulent_fluxes isa CombinedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate fluxes using combined surface states on the atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts\nelseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surface models and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)\n update_field!(ocean_sim, Val(:surface_temperature), SST_current)\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n SIC_current =\n get_ice_fraction.(interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), mono_surface)\n update_field!(ice_sim, Val(:area_fraction), SIC_current)\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\n if turbulent_fluxes isa CombinedStateFluxes\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)\n elseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surfaces and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\n end\n\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent\n\n # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name[1:10] == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && config_dict[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_ARTIFACTS_DIR)\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa_fluxes = (:regrid, :horizontal_slice),\n precipitation_rate = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n tubulent_energy_fluxes = (:regrid, :horizontal_slice),\n q_liq_ice = (:regrid, :zonal_mean),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 30), units = \"g/kg\"),\n toa_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n precipitation_rate = (clims = (0, 1e-4), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n tubulent_energy_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n q_liq_ice = (; clims = (0, 10), units = \"g/kg\"),\n )\n amip_data = amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa_fluxes = (:horizontal_slice,),\n precipitation_rate = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n tubulent_energy_fluxes = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_data = ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedStateFluxes\n ClimaCoupler.FluxCalculator.CombinedStateFluxes\n ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedStateFluxes","text":"PartitionedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedStateFluxes","text":"CombinedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","text":"combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","text":"atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractConservationCheck\n\nStruct of type AbstractConservationCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractConservationCheck\n\nStruct of type AbstractConservationCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::Interfacer.CoupledSimulation; runtime_check = false)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim::Interfacer.CoupledSimulation,\n runtime_check = false,\n )\n\ncomputes the total energy, ∫ ρe dV, of the model components of the coupled simulations and the TOA radiation, and updates cc with these values.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim::Interfacer.CoupledSimulation,\nruntime_check = false,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::Interfacer.CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/dev/siteinfo.js b/dev/siteinfo.js new file mode 100644 index 000000000..334349194 --- /dev/null +++ b/dev/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "dev"; diff --git a/dev/testhelper/index.html b/dev/testhelper/index.html new file mode 100644 index 000000000..b1d145aec --- /dev/null +++ b/dev/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

      TestHelper

      This module defines helper functions, objects, and constants to be used by various files in the test folder.

      TestHelper API

      ClimaCoupler.TestHelper.create_spaceFunction
      create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
      +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

      Initialize a space on a sphere with the given parameters. Used for debugging and testing.

      Arguments

      • FT: [DataType] Float type
      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
      • R: [FT] radius of the sphere underlying space.
      • ne: [Integer] number of elements used in the space's mesh.
      • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
      • nz: [Integer] number of vertical elements
      source
      ClimaCoupler.TestHelper.gen_ncdataFunction
      gen_ncdata(FT, path, varname, val)

      Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

      Arguments

      • FT: [DataType] Float type.
      • path: [String] location to store output datafile.
      • varname: [Symbol] variable name.
      • val: [FT] value to store as varname at all indices.
      source
      diff --git a/dev/timemanager/index.html b/dev/timemanager/index.html new file mode 100644 index 000000000..4d0909979 --- /dev/null +++ b/dev/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

      TimeManager

      This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

      TimeManager API

      ClimaCoupler.TimeManager.current_dateFunction
      current_date(cs::CoupledSimulation, t::Int)

      Return the model date at the current timestep.

      Arguments

      • cs: [CoupledSimulation] containing info about the simulation
      • t: [Real] number of seconds since simulation began
      source
      ClimaCoupler.TimeManager.trigger_callbackFunction
      trigger_callback(cs, ::Monthly)

      Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

      Arguments

      • cs: [CoupledSimulation] containing info about the simulation
      source
      Missing docstring.

      Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

      diff --git a/dev/timestepping/index.html b/dev/timestepping/index.html new file mode 100644 index 000000000..945d74d67 --- /dev/null +++ b/dev/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

      Coupled Simulations & Timestepping

      ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

      Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

      • step!: advances the component model in time
      • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
      • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
      ClimaCoupler.run!Function
      run!(::CoupledSimulation)

      A simple outer timestepping loop for coupled system runs.

      This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

      source
      ClimaCoupler.step!Function
      step!(sim, dt)

      Advances a simulation sim by dt.

      Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

      source
      ClimaCoupler.coupler_push!Function
      coupler_push!(coupler::CouplerState, model)

      Update coupler with fields retrieved from the coupler.

      coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

      source
      ClimaCoupler.coupler_pull!Function
      coupler_pull!(model, coupler::CouplerState)

      Update model with fields retrieved from the coupler.

      coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

      source
      diff --git a/dev/utilities/index.html b/dev/utilities/index.html new file mode 100644 index 000000000..a2cbe0a94 --- /dev/null +++ b/dev/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

      Utilities

      This module contains functions, objects, and constants used by various modules in the coupler.

      Utilities API

      Missing docstring.

      Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for ClimaCoupler.Utilities.float_type. Check Documenter's build log for details.

      ClimaCoupler.Utilities.swap_space!Function
      swap_space!(field_out::Fields.Field, field_in::Fields.Field)

      Remap the values of a field onto a new space.

      Arguments

      • field_in: [Fields.Field] to be remapped to new space.
      • field_out: [Fields.Field] to remap field_in to.
      source
      diff --git a/index.html b/index.html new file mode 100644 index 000000000..1a6cc1163 --- /dev/null +++ b/index.html @@ -0,0 +1,2 @@ + + diff --git a/previews/PR109/assets/documenter.js b/previews/PR109/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR109/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR109/assets/logo.svg b/previews/PR109/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR109/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR109/assets/search.js b/previews/PR109/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR109/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
    • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR109/assets/themes/documenter-dark.css b/previews/PR109/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR109/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
      that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR109/assets/themes/documenter-light.css b/previews/PR109/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR109/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
      that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR109/assets/themeswap.js b/previews/PR109/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR109/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR109/assets/warner.js b/previews/PR109/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR109/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
      Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR109/couplerstate/index.html b/previews/PR109/couplerstate/index.html new file mode 100644 index 000000000..6226ae8b0 --- /dev/null +++ b/previews/PR109/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

      Coupler State

      The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

      The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

      Coupler Object API

      ClimaCoupler.CouplerStateType
      CouplerState()

      Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

      A field is exported by one component and imported by one or more other components.

      source
      ClimaCoupler.coupler_add_field!Function
      coupler_add_field!(
      +        coupler::CouplerState,
      +        fieldname::Symbol,
      +        fieldvalue,
      +    )

      Add a field to the coupler that is accessible with key fieldname.

      Arguments

      • coupler: coupler object the field is added to.
      • fieldname: key to access the field in the coupler.
      • fieldvalue: data array of field values.
      source
      ClimaCoupler.coupler_getFunction
      coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

      Retrieve data array corresponding to fieldname.

      If a target_sim is passed, the field is remapped to that simulation's boundary space.

      source
      diff --git a/previews/PR109/generated/sea_breeze/atmos_rhs/index.html b/previews/PR109/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..a03fa3089 --- /dev/null +++ b/previews/PR109/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

      Atmospheric Model

      Atmosphere Conservation Equations

      Density:

      \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

      Momentum (flux form):

      \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

      Potential temperature:

      \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

      Total Energy (possibly replace potential temperature equation with total energy conservation):

      \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

      where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

      Tracer transport:

      \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

      Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

      \[\rho\tau = -2\rho\nu\nabla u.\]

      Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

      \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

      with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

      Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

      Consider components of the viscous stress tensor in three dimensions:

      \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

      Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

      \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

      Which can be interpreted as, for horizontal-momentum:

      1. Horizontal divergence of vertical gradients of cell-centered variables $u$
      2. Vertical divergence of vertical gradients of cell-centered variables $u$
      3. Vertical divergence of horizontal gradients of cell-face variables $w$

      and for vertical-momentum, as:

      1. Horizontal divergence of vertical gradients of cell-centered variables $u$
      2. Horizontal divergence of horizontal gradients of cell-face variables $w$
      3. Vertical divergence of vertical gradients of cell-face variables $w$.

      Model Code

      push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
      +
      +using Test
      +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
      +
      +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
      +using ClimaCore.Geometry
      +using ClimaCore.Utilities: PlusHalf
      +
      +using Logging: global_logger
      +using TerminalLoggers: TerminalLogger
      +global_logger(TerminalLogger())
      +
      +using ClimaCoupler
      +
      +# set up function space
      +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
      +    FT = Float64
      +    vertdomain = Domains.IntervalDomain(
      +        Geometry.ZPoint{FT}(zlim[1]),
      +        Geometry.ZPoint{FT}(zlim[2]);
      +        boundary_tags = (:bottom, :top),
      +    )
      +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
      +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
      +
      +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
      +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
      +    horztopology = Topologies.IntervalTopology(horzmesh)
      +
      +    quad = Spaces.Quadratures.GLL{npoly + 1}()
      +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
      +
      +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
      +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
      +    return (hv_center_space, hv_face_space)
      +end
      +
      +function pressure(ρθ)
      +    if ρθ >= 0
      +        return MSLP * (R_d * ρθ / MSLP)^γ
      +    else
      +        return NaN
      +    end
      +end
      +
      +Φ(z) = grav * z
      +
      +abstract type BCtag end
      +struct ZeroFlux <: BCtag end
      +
      +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
      +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
      +
      +function init_sea_breeze_2d(x, z)
      +    θ₀ = atm_T_ini
      +    cp_d = C_p
      +    cv_d = C_v
      +    p₀ = MSLP
      +    g = grav
      +    γ = cp_d / cv_d
      +    z_c = 100.0
      +    θ_b = atm_T_ini
      +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
      +    θ = θ_b + θ_p # potential temperature
      +    π_exn = 1.0 - g * z / cp_d / θ # exner function
      +    T = π_exn * θ # temperature
      +    p = p₀ * π_exn^(cp_d / R_d) # pressure
      +    ρ = p / R_d / T # density
      +    ρθ = ρ * θ # potential temperature density
      +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
      +end
      +
      +function atm_rhs!(dY, Y, params, t)
      +    ρw = Y.ρw
      +    Yc = Y.Yc
      +    dYc = dY.Yc
      +    dρw = dY.ρw
      +
      +    center_coords = Fields.coordinate_field(axes(Yc))
      +
      +    # spectral horizontal operators
      +    hdiv = Operators.Divergence()
      +    hgrad = Operators.Gradient()
      +    hwdiv = Operators.WeakDivergence()
      +    hwgrad = Operators.WeakGradient()
      +
      +    # vertical FD operators with BC's
      +    vdivf2c = Operators.DivergenceF2C(
      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
      +        top = Operators.SetValue(Geometry.WVector(0.0)),
      +    )
      +    vvdivc2f = Operators.DivergenceC2F(
      +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
      +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
      +    )
      +    uvdivf2c = Operators.DivergenceF2C(
      +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
      +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
      +    )
      +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
      +    Ic = Operators.InterpolateF2C()
      +    ∂ = Operators.DivergenceF2C(
      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
      +        top = Operators.SetValue(Geometry.WVector(0.0)),
      +    )
      +    ∂f = Operators.GradientC2F()
      +    ∂c = Operators.GradientF2C()
      +    B = Operators.SetBoundaryOperator(
      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
      +        top = Operators.SetValue(Geometry.WVector(0.0)),
      +    )
      +
      +    ∇_z_ρθ = Operators.DivergenceF2C(
      +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
      +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
      +    )
      +
      +    uₕ = @. Yc.ρuₕ / Yc.ρ
      +    w = @. ρw / If(Yc.ρ)
      +    wc = @. Ic(ρw) / Yc.ρ
      +    p = @. pressure(Yc.ρθ)
      +    θ = @. Yc.ρθ / Yc.ρ
      +    Yfρ = @. If(Yc.ρ)
      +
      +    ### HYPERVISCOSITY
      +    # 1) compute hyperviscosity coefficients
      +    @. dYc.ρθ = hwdiv(hgrad(θ))
      +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
      +    @. dρw = hwdiv(hgrad(w))
      +    Spaces.weighted_dss!(dYc)
      +    Spaces.weighted_dss!(dρw)
      +
      +    κ₄ = 0.0 # m^4/s
      +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
      +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
      +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
      +
      +    # density
      +    @. dYc.ρ = -∂(ρw)
      +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
      +
      +    # potential temperature
      +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
      +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
      +
      +    # horizontal momentum
      +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
      +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
      +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
      +
      +    # vertical momentum
      +    @. dρw +=
      +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
      +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
      +    @. dρw -= hdiv(uₕf ⊗ ρw)
      +
      +    # DIFFUSION
      +    κ₂ = 5.0 # m^2/s
      +    #  1a) horizontal div of horizontal grad of horiz momentun
      +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
      +    #  1b) vertical div of vertical grad of horiz momentun
      +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
      +
      +    #  1c) horizontal div of horizontal grad of vert momentum
      +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
      +    #  1d) vertical div of vertical grad of vert momentun
      +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
      +
      +    #  2a) horizontal div of horizontal grad of potential temperature
      +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
      +    #  2b) vertical div of vertial grad of potential temperature
      +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
      +
      +    Spaces.weighted_dss!(dYc)
      +    Spaces.weighted_dss!(dρw)
      +    return dY
      +end
      +
      +# init simulation
      +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
      +
      +    # construct domain spaces
      +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
      +    center_coords = Fields.coordinate_field(hv_center_space)
      +    face_coords = Fields.coordinate_field(hv_face_space)
      +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
      +
      +    # initialize prognostic variables
      +    Yc = map(center_coords) do coord
      +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
      +        sea_breeze
      +    end
      +
      +    ρw = map(face_coords) do coord
      +        Geometry.WVector(0.0)
      +    end
      +
      +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
      +
      +    # select boundary conditions
      +    if bc === nothing
      +        bc = (
      +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
      +            ρu = nothing, # for now BCs are hard coded, except for ρθ
      +        )
      +    end
      +
      +    return Y, bc, domain
      +end
      +
      +using OrdinaryDiffEq
      +function atm_run!(Y, bc, domain)
      +    dYdt = similar(Y)
      +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
      +    atm_rhs!(dYdt, Y, params, 0.0)
      +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
      +    Δt = 0.025
      +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
      +end

      Coupled Atmos Wrappers

      # Atmos Simulation - later to live in ClimaAtmos
      +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
      +    integrator::Any
      +end
      +
      +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
      +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
      +
      +    atm_integ = init(
      +        atm_prob,
      +        timestepper,
      +        dt = dt,
      +        saveat = saveat,
      +        progress = true,
      +        progress_message = (dt, u, params, t) -> t,
      +        callback = callbacks,
      +    )
      +
      +    return AtmosSimulation(atm_integ)
      +end
      +
      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
      +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
      +end
      +
      +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
      +    # reset flux accumulator
      +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
      +
      +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
      +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
      +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
      +end

      Coupled Boundary Conditions

      The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

      To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

      struct CoupledFlux <: BCtag end
      +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
      +    # flux calculation
      +    Yc = Y.Yc
      +    uₕ = Yc.ρuₕ ./ Yc.ρ
      +    ρw = Y.ρw
      +    If2c = Operators.InterpolateF2C()
      +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
      +    w = If2c.(ρw) ./ Yc.ρ
      +    cuv = @. Geometry.UWVector(uₕ)
      +    windspeed = @. norm(cuv)
      +    windspeed_boundary = Fields.level(windspeed, 1)
      +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
      +    ρ_boundary = Fields.level(Yc.ρ, 1)
      +
      +    # build atmos face fields on surface boundary space to enable broadcasting
      +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
      +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
      +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
      +
      +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
      +    dθ = @. θ_boundary - p.T_sfc
      +    heat_flux = @. -λ * dθ
      +    @. dY.F_sfc += heat_flux # accumulation
      +
      +    return Operators.SetValue(Geometry.WVector.(heat_flux))
      +end

      This page was generated using Literate.jl.

      diff --git a/previews/PR109/generated/sea_breeze/land_rhs/index.html b/previews/PR109/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..b5bee1607 --- /dev/null +++ b/previews/PR109/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

      Land Model

      Slab Land ODE

      For our land component, we solve a simple slab land ODE:

      \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

      • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
      • and $F_{integ}$ is the integrated surface fluxes in time.

      Model Code

      function lnd_rhs!(du, u, (parameters, F_accumulated), t)
      +    """
      +    Slab layer equation
      +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
      +        where
      +            F_accumulated = F_integrated / Δt_coupler
      +    """
      +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
      +    @unpack T_sfc = du
      +
      +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
      +end
      +
      +# set up domain
      +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
      +    FT = Float64
      +
      +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
      +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
      +    topology = Topologies.IntervalTopology(mesh)
      +
      +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
      +    quad = Spaces.Quadratures.GL{npoly + 1}()
      +    space = Spaces.SpectralElementSpace1D(topology, quad)
      +
      +    return space
      +end
      +
      +# init simulation
      +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
      +
      +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
      +    space = hspace_1D((xmin, xmax), npoly, helem)
      +    coords = Fields.coordinate_field(space)
      +    domain = space
      +
      +    # initial condition
      +    T_sfc = map(coords) do coord
      +        T_sfc = 273.0
      +    end
      +
      +    # prognostic variable
      +    Y = Fields.FieldVector(T_sfc = T_sfc)
      +
      +    return Y, domain
      +end

      Coupled Land Wrappers

      # Land Simulation - later to live in ClimaLSM
      +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
      +    integrator::Any
      +end
      +
      +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
      +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
      +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
      +    return LandSimulation(lnd_integ)
      +end
      +
      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
      +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
      +end
      +
      +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
      +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
      +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
      +end

      This page was generated using Literate.jl.

      diff --git a/previews/PR109/generated/sea_breeze/ocean_rhs/index.html b/previews/PR109/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..17587eb8a --- /dev/null +++ b/previews/PR109/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

      Ocean Model

      Slab Ocean ODE

      For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

      \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

      • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
      • and $F_{integ}$ is the integrated surface fluxes in time.

      Model Code

      function ocn_rhs!(du, u, (parameters, F_accumulated), t)
      +    """
      +    Slab layer equation
      +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
      +        where
      +            F_accumulated = F_integrated / Δt_coupler
      +    """
      +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
      +    @unpack T_sfc = du
      +
      +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
      +end
      +
      +# set up domain
      +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
      +    FT = Float64
      +
      +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
      +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
      +    topology = Topologies.IntervalTopology(mesh)
      +
      +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
      +    quad = Spaces.Quadratures.GL{npoly + 1}()
      +    space = Spaces.SpectralElementSpace1D(topology, quad)
      +
      +    return space
      +end
      +
      +# init simulation
      +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
      +
      +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
      +    space = hspace_1D((xmin, xmax), npoly, helem)
      +    coords = Fields.coordinate_field(space)
      +    domain = space
      +
      +    # initial condition
      +    T_sfc = map(coords) do coord
      +        T_sfc = 267.0
      +    end
      +
      +    # prognostic variable
      +    Y = Fields.FieldVector(T_sfc = T_sfc)
      +
      +    return Y, domain
      +end

      Coupled Ocean Wrappers

      # Ocean Simulation - Later to live in Oceananigans
      +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
      +    integrator::Any
      +end
      +
      +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
      +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
      +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
      +    return OceanSimulation(ocn_integ)
      +end
      +
      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
      +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
      +end
      +
      +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
      +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
      +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
      +end

      This page was generated using Literate.jl.

      diff --git a/previews/PR109/generated/sea_breeze/run/index.html b/previews/PR109/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..f56a08af0 --- /dev/null +++ b/previews/PR109/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

      Coupled Sea Breeze

      Overview

      This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

      In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

      Model Initialization

      Component Models

      Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

      In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

      include("atmos_rhs.jl")
      +include("ocean_rhs.jl")
      +include("land_rhs.jl")
      +
      +# model parameters
      +const atm_T_ini = FT(270.0)
      +const MSLP = FT(1e5)
      +const grav = FT(9.8)
      +const R_d = FT(287.058)
      +const γ = FT(1.4)
      +const C_p = FT(R_d * γ / (γ - 1))
      +const C_v = FT(R_d / (γ - 1))
      +const R_m = R_d
      +cpl_parameters = (
      +    # atmos parameters
      +    atm_μ = FT(0.0001), # diffusion coefficient
      +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
      +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
      +    MSLP = MSLP, # mean sea level pressure
      +    grav = grav, # gravitational constant
      +    R_d = R_d, # R dry (gas constant / mol mass dry air)
      +    γ = γ, # heat capacity ratio
      +    C_p = C_p, # heat capacity at constant pressure
      +    C_v = C_v, # heat capacity at constant volume
      +    R_m = R_m, # moist R, assumed to be dry
      +    # land slab parameters
      +    lnd_h = FT(0.5), # depth of slab layer [m]
      +    lnd_ρ = FT(1500), # density [kg m^-3]
      +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
      +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
      +    # ocean slab parameters
      +    ocn_h = FT(0.5), # depth of slab layer [m]
      +    ocn_ρ = FT(1025), # density [kg m^-3]
      +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
      +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
      +    # coupling parameters
      +    C_H = FT(0.0015),
      +)
      +
      +# DSS callback
      +function make_dss_func()
      +    function _dss!(x::Fields.Field)
      +        Spaces.weighted_dss!(x)
      +    end
      +    function _dss!(::Any)
      +        nothing
      +    end
      +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
      +    return dss_func
      +end
      +dss_func = make_dss_func()
      +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

      Initialization

      The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

      Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

      @info "Init Models and Maps"
      +
      +t_start, t_end = (0.0, 1.0)
      +Δt_coupled = 0.1
      +saveat = 1e2
      +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
      +
      +# Initialize Models
      +atm_Y_default, atm_bc, atm_domain = atm_init(
      +    xmin = -500,
      +    xmax = 500,
      +    zmin = 0,
      +    zmax = 1000,
      +    npoly = 4,
      +    helem = 20,
      +    velem = 20,
      +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
      +)
      +
      +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
      +
      +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

      Remapping

      Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

      atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
      +
      +maps = (
      +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
      +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
      +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
      +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
      +)
      +
      +# initialize coupling fields
      +atm_T_sfc =
      +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
      +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
      +atm_F_sfc = Fields.zeros(atm_boundary)
      +ocn_F_sfc = Fields.zeros(ocn_domain)
      +lnd_F_sfc = Fields.zeros(lnd_domain)

      Simulations

      Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

      atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
      +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
      +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
      +
      +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
      +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
      +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
      +
      +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
      +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
      +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

      Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

      struct AOLCoupledSimulation{
      +    A <: AtmosSimulation,
      +    O <: OceanSimulation,
      +    L <: LandSimulation,
      +    C <: ClimaCoupler.CouplerState,
      +} <: ClimaCoupler.AbstractCoupledSimulation
      +    # Atmosphere Simulation
      +    atmos::A
      +    # Ocean Simulation
      +    ocean::O
      +    # Land Simulation
      +    land::L
      +    # Coupler storage
      +    coupler::C
      +end

      step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

      function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
      +    Δt = t_stop - sim.integrator.t
      +    step!(sim.integrator, Δt, true)
      +end

      The Coupler

      The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

      After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

      Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

      Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

      \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

      where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

      coupler = CouplerState(Δt_coupled)
      +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
      +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
      +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
      +for (name, map) in pairs(maps)
      +    coupler_add_map!(coupler, name, map)
      +end
      +
      +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

      Coupled Time Integration

      Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

      Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

      Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

      \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

      where $F_{integ}$ has units of $J m^{-2}$.

      function cpl_run(simulation::AOLCoupledSimulation)
      +    @info "Run model"
      +    @unpack atmos, ocean, land, coupler = simulation
      +    Δt_coupled = coupler.Δt_coupled
      +    # coupler stepping
      +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
      +        # Atmos
      +        coupler_pull!(atmos, coupler)
      +        step!(atmos, t)
      +        coupler_push!(coupler, atmos)
      +
      +        # Ocean
      +        coupler_pull!(ocean, coupler)
      +        step!(ocean, t)
      +        coupler_push!(coupler, ocean)
      +
      +        # Land
      +        coupler_pull!(land, coupler)
      +        step!(land, t)
      +        coupler_push!(coupler, land)
      +    end
      +    @info "Simulation Complete"
      +end
      +
      +# Run simulation
      +cpl_run(sim)

      References


      This page was generated using Literate.jl.

      diff --git a/previews/PR109/images/cplsetup.png b/previews/PR109/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR109/index.html b/previews/PR109/index.html new file mode 100644 index 000000000..9d420c9e2 --- /dev/null +++ b/previews/PR109/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

      ClimaCoupler.jl

      Coupling CliMA Models

      ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

      • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
      • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

      The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

      Coupler Scheme
      ClimaCoupler.jl allows for independent development of interchangeable component models.
      diff --git a/previews/PR109/search/index.html b/previews/PR109/search/index.html new file mode 100644 index 000000000..d33bb8ec1 --- /dev/null +++ b/previews/PR109/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

      Loading search...

        diff --git a/previews/PR109/search_index.js b/previews/PR109/search_index.js new file mode 100644 index 000000000..d4b08844d --- /dev/null +++ b/previews/PR109/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"}] +} diff --git a/previews/PR109/siteinfo.js b/previews/PR109/siteinfo.js new file mode 100644 index 000000000..3c9d417a8 --- /dev/null +++ b/previews/PR109/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR109"; diff --git a/previews/PR109/timestepping/index.html b/previews/PR109/timestepping/index.html new file mode 100644 index 000000000..86bb1df0e --- /dev/null +++ b/previews/PR109/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

        Coupled Simulations & Timestepping

        ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

        Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

        • step!: advances the component model in time
        • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
        • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
        Missing docstring.

        Missing docstring for ClimaCoupler.CoupledSimulation. Check Documenter's build log for details.

        ClimaCoupler.run!Function
        run!(::CoupledSimulation)

        A simple outer timestepping loop for coupled system runs.

        This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

        source
        ClimaCoupler.step!Function
        step!(sim, dt)

        Advances a simulation by dt.

        Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

        source
        ClimaCoupler.coupler_push!Function
        coupler_push!(coupler::CouplerState, model)

        Update coupler with fields retrieved from the coupler.

        coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

        source
        ClimaCoupler.coupler_pull!Function
        coupler_pull!(model, coupler::CouplerState)

        Update model with fields retrieved from the coupler.

        coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

        source
        diff --git a/previews/PR113/assets/documenter.js b/previews/PR113/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR113/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR113/assets/logo.svg b/previews/PR113/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR113/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR113/assets/search.js b/previews/PR113/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR113/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
      • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR113/assets/themes/documenter-dark.css b/previews/PR113/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR113/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
        that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR113/assets/themes/documenter-light.css b/previews/PR113/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR113/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
        that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR113/assets/themeswap.js b/previews/PR113/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR113/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR113/assets/warner.js b/previews/PR113/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR113/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
        Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR113/couplerstate/index.html b/previews/PR113/couplerstate/index.html new file mode 100644 index 000000000..214d2d359 --- /dev/null +++ b/previews/PR113/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

        Coupler State

        The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

        The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

        Coupler Object API

        ClimaCoupler.CouplerStateType
        CouplerState()

        Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

        A field is exported by one component and imported by one or more other components.

        source
        ClimaCoupler.coupler_add_field!Function
        coupler_add_field!(
        +        coupler::CouplerState,
        +        fieldname::Symbol,
        +        fieldvalue,
        +    )

        Add a field to the coupler that is accessible with key fieldname.

        Arguments

        • coupler: coupler object the field is added to.
        • fieldname: key to access the field in the coupler.
        • fieldvalue: data array of field values.
        source
        ClimaCoupler.coupler_getFunction
        coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

        Retrieve data array corresponding to fieldname.

        If a target_sim is passed, the field is remapped to that simulation's boundary space.

        source
        diff --git a/previews/PR113/generated/sea_breeze/atmos_rhs/index.html b/previews/PR113/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..6d0d837f5 --- /dev/null +++ b/previews/PR113/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

        Atmospheric Model

        Atmosphere Conservation Equations

        Density:

        \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

        Momentum (flux form):

        \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

        Potential temperature:

        \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

        Total Energy (possibly replace potential temperature equation with total energy conservation):

        \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

        where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

        Tracer transport:

        \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

        Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

        \[\rho\tau = -2\rho\nu\nabla u.\]

        Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

        \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

        with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

        Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

        Consider components of the viscous stress tensor in three dimensions:

        \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

        Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

        \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

        Which can be interpreted as, for horizontal-momentum:

        1. Horizontal divergence of vertical gradients of cell-centered variables $u$
        2. Vertical divergence of vertical gradients of cell-centered variables $u$
        3. Vertical divergence of horizontal gradients of cell-face variables $w$

        and for vertical-momentum, as:

        1. Horizontal divergence of vertical gradients of cell-centered variables $u$
        2. Horizontal divergence of horizontal gradients of cell-face variables $w$
        3. Vertical divergence of vertical gradients of cell-face variables $w$.

        Model Code

        push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
        +
        +using Test
        +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
        +
        +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
        +using ClimaCore.Geometry
        +using ClimaCore.Utilities: PlusHalf
        +
        +using Logging: global_logger
        +using TerminalLoggers: TerminalLogger
        +global_logger(TerminalLogger())
        +
        +using ClimaCoupler
        +
        +# set up function space
        +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
        +    FT = Float64
        +    vertdomain = Domains.IntervalDomain(
        +        Geometry.ZPoint{FT}(zlim[1]),
        +        Geometry.ZPoint{FT}(zlim[2]);
        +        boundary_tags = (:bottom, :top),
        +    )
        +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
        +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
        +
        +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
        +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
        +    horztopology = Topologies.IntervalTopology(horzmesh)
        +
        +    quad = Spaces.Quadratures.GLL{npoly + 1}()
        +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
        +
        +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
        +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
        +    return (hv_center_space, hv_face_space)
        +end
        +
        +function pressure(ρθ)
        +    if ρθ >= 0
        +        return MSLP * (R_d * ρθ / MSLP)^γ
        +    else
        +        return NaN
        +    end
        +end
        +
        +Φ(z) = grav * z
        +
        +abstract type BCtag end
        +struct ZeroFlux <: BCtag end
        +
        +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
        +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
        +
        +function init_sea_breeze_2d(x, z)
        +    θ₀ = atm_T_ini
        +    cp_d = C_p
        +    cv_d = C_v
        +    p₀ = MSLP
        +    g = grav
        +    γ = cp_d / cv_d
        +    z_c = 100.0
        +    θ_b = atm_T_ini
        +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
        +    θ = θ_b + θ_p # potential temperature
        +    π_exn = 1.0 - g * z / cp_d / θ # exner function
        +    T = π_exn * θ # temperature
        +    p = p₀ * π_exn^(cp_d / R_d) # pressure
        +    ρ = p / R_d / T # density
        +    ρθ = ρ * θ # potential temperature density
        +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
        +end
        +
        +function atm_rhs!(dY, Y, params, t)
        +    ρw = Y.ρw
        +    Yc = Y.Yc
        +    dYc = dY.Yc
        +    dρw = dY.ρw
        +
        +    center_coords = Fields.coordinate_field(axes(Yc))
        +
        +    # spectral horizontal operators
        +    hdiv = Operators.Divergence()
        +    hgrad = Operators.Gradient()
        +    hwdiv = Operators.WeakDivergence()
        +    hwgrad = Operators.WeakGradient()
        +
        +    # vertical FD operators with BC's
        +    vdivf2c = Operators.DivergenceF2C(
        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
        +        top = Operators.SetValue(Geometry.WVector(0.0)),
        +    )
        +    vvdivc2f = Operators.DivergenceC2F(
        +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
        +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
        +    )
        +    uvdivf2c = Operators.DivergenceF2C(
        +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
        +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
        +    )
        +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
        +    Ic = Operators.InterpolateF2C()
        +    ∂ = Operators.DivergenceF2C(
        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
        +        top = Operators.SetValue(Geometry.WVector(0.0)),
        +    )
        +    ∂f = Operators.GradientC2F()
        +    ∂c = Operators.GradientF2C()
        +    B = Operators.SetBoundaryOperator(
        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
        +        top = Operators.SetValue(Geometry.WVector(0.0)),
        +    )
        +
        +    ∇_z_ρθ = Operators.DivergenceF2C(
        +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
        +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
        +    )
        +
        +    uₕ = @. Yc.ρuₕ / Yc.ρ
        +    w = @. ρw / If(Yc.ρ)
        +    wc = @. Ic(ρw) / Yc.ρ
        +    p = @. pressure(Yc.ρθ)
        +    θ = @. Yc.ρθ / Yc.ρ
        +    Yfρ = @. If(Yc.ρ)
        +
        +    ### HYPERVISCOSITY
        +    # 1) compute hyperviscosity coefficients
        +    @. dYc.ρθ = hwdiv(hgrad(θ))
        +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
        +    @. dρw = hwdiv(hgrad(w))
        +    Spaces.weighted_dss!(dYc)
        +    Spaces.weighted_dss!(dρw)
        +
        +    κ₄ = 0.0 # m^4/s
        +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
        +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
        +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
        +
        +    # density
        +    @. dYc.ρ = -∂(ρw)
        +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
        +
        +    # potential temperature
        +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
        +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
        +
        +    # horizontal momentum
        +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
        +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
        +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
        +
        +    # vertical momentum
        +    @. dρw +=
        +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
        +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
        +    @. dρw -= hdiv(uₕf ⊗ ρw)
        +
        +    # DIFFUSION
        +    κ₂ = 5.0 # m^2/s
        +    #  1a) horizontal div of horizontal grad of horiz momentun
        +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
        +    #  1b) vertical div of vertical grad of horiz momentun
        +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
        +
        +    #  1c) horizontal div of horizontal grad of vert momentum
        +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
        +    #  1d) vertical div of vertical grad of vert momentun
        +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
        +
        +    #  2a) horizontal div of horizontal grad of potential temperature
        +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
        +    #  2b) vertical div of vertial grad of potential temperature
        +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
        +
        +    Spaces.weighted_dss!(dYc)
        +    Spaces.weighted_dss!(dρw)
        +    return dY
        +end
        +
        +# init simulation
        +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
        +
        +    # construct domain spaces
        +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
        +    center_coords = Fields.coordinate_field(hv_center_space)
        +    face_coords = Fields.coordinate_field(hv_face_space)
        +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
        +
        +    # initialize prognostic variables
        +    Yc = map(center_coords) do coord
        +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
        +        sea_breeze
        +    end
        +
        +    ρw = map(face_coords) do coord
        +        Geometry.WVector(0.0)
        +    end
        +
        +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
        +
        +    # select boundary conditions
        +    if bc === nothing
        +        bc = (
        +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
        +            ρu = nothing, # for now BCs are hard coded, except for ρθ
        +        )
        +    end
        +
        +    return Y, bc, domain
        +end
        +
        +using OrdinaryDiffEq
        +function atm_run!(Y, bc, domain)
        +    dYdt = similar(Y)
        +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
        +    atm_rhs!(dYdt, Y, params, 0.0)
        +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
        +    Δt = 0.025
        +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
        +end

        Coupled Atmos Wrappers

        # Atmos Simulation - later to live in ClimaAtmos
        +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
        +    integrator::Any
        +end
        +
        +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
        +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
        +
        +    atm_integ = init(
        +        atm_prob,
        +        timestepper,
        +        dt = dt,
        +        saveat = saveat,
        +        progress = true,
        +        progress_message = (dt, u, params, t) -> t,
        +        callback = callbacks,
        +    )
        +
        +    return AtmosSimulation(atm_integ)
        +end
        +
        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
        +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
        +end
        +
        +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
        +    # reset flux accumulator
        +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
        +
        +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
        +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
        +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
        +end

        Coupled Boundary Conditions

        The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

        To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

        struct CoupledFlux <: BCtag end
        +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
        +    # flux calculation
        +    Yc = Y.Yc
        +    uₕ = Yc.ρuₕ ./ Yc.ρ
        +    ρw = Y.ρw
        +    If2c = Operators.InterpolateF2C()
        +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
        +    w = If2c.(ρw) ./ Yc.ρ
        +    cuv = @. Geometry.UWVector(uₕ)
        +    windspeed = @. norm(cuv)
        +    windspeed_boundary = Fields.level(windspeed, 1)
        +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
        +    ρ_boundary = Fields.level(Yc.ρ, 1)
        +
        +    # build atmos face fields on surface boundary space to enable broadcasting
        +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
        +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
        +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
        +
        +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
        +    dθ = @. θ_boundary - p.T_sfc
        +    heat_flux = @. -λ * dθ
        +    @. dY.F_sfc += heat_flux # accumulation
        +
        +    return Operators.SetValue(Geometry.WVector.(heat_flux))
        +end

        This page was generated using Literate.jl.

        diff --git a/previews/PR113/generated/sea_breeze/land_rhs/index.html b/previews/PR113/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..641f15b57 --- /dev/null +++ b/previews/PR113/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

        Land Model

        Slab Land ODE

        For our land component, we solve a simple slab land ODE:

        \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

        • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
        • and $F_{integ}$ is the integrated surface fluxes in time.

        Model Code

        function lnd_rhs!(du, u, (parameters, F_accumulated), t)
        +    """
        +    Slab layer equation
        +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
        +        where
        +            F_accumulated = F_integrated / Δt_coupler
        +    """
        +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
        +    @unpack T_sfc = du
        +
        +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
        +end
        +
        +# set up domain
        +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
        +    FT = Float64
        +
        +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
        +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
        +    topology = Topologies.IntervalTopology(mesh)
        +
        +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
        +    quad = Spaces.Quadratures.GL{npoly + 1}()
        +    space = Spaces.SpectralElementSpace1D(topology, quad)
        +
        +    return space
        +end
        +
        +# init simulation
        +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
        +
        +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
        +    space = hspace_1D((xmin, xmax), npoly, helem)
        +    coords = Fields.coordinate_field(space)
        +    domain = space
        +
        +    # initial condition
        +    T_sfc = map(coords) do coord
        +        T_sfc = 273.0
        +    end
        +
        +    # prognostic variable
        +    Y = Fields.FieldVector(T_sfc = T_sfc)
        +
        +    return Y, domain
        +end

        Coupled Land Wrappers

        # Land Simulation - later to live in ClimaLSM
        +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
        +    integrator::Any
        +end
        +
        +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
        +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
        +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
        +    return LandSimulation(lnd_integ)
        +end
        +
        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
        +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
        +end
        +
        +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
        +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
        +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
        +end

        This page was generated using Literate.jl.

        diff --git a/previews/PR113/generated/sea_breeze/ocean_rhs/index.html b/previews/PR113/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..8cb2a9fa8 --- /dev/null +++ b/previews/PR113/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

        Ocean Model

        Slab Ocean ODE

        For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

        \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

        • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
        • and $F_{integ}$ is the integrated surface fluxes in time.

        Model Code

        function ocn_rhs!(du, u, (parameters, F_accumulated), t)
        +    """
        +    Slab layer equation
        +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
        +        where
        +            F_accumulated = F_integrated / Δt_coupler
        +    """
        +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
        +    @unpack T_sfc = du
        +
        +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
        +end
        +
        +# set up domain
        +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
        +    FT = Float64
        +
        +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
        +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
        +    topology = Topologies.IntervalTopology(mesh)
        +
        +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
        +    quad = Spaces.Quadratures.GL{npoly + 1}()
        +    space = Spaces.SpectralElementSpace1D(topology, quad)
        +
        +    return space
        +end
        +
        +# init simulation
        +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
        +
        +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
        +    space = hspace_1D((xmin, xmax), npoly, helem)
        +    coords = Fields.coordinate_field(space)
        +    domain = space
        +
        +    # initial condition
        +    T_sfc = map(coords) do coord
        +        T_sfc = 267.0
        +    end
        +
        +    # prognostic variable
        +    Y = Fields.FieldVector(T_sfc = T_sfc)
        +
        +    return Y, domain
        +end

        Coupled Ocean Wrappers

        # Ocean Simulation - Later to live in Oceananigans
        +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
        +    integrator::Any
        +end
        +
        +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
        +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
        +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
        +    return OceanSimulation(ocn_integ)
        +end
        +
        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
        +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
        +end
        +
        +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
        +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
        +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
        +end

        This page was generated using Literate.jl.

        diff --git a/previews/PR113/generated/sea_breeze/run/index.html b/previews/PR113/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..c31ca3713 --- /dev/null +++ b/previews/PR113/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

        Coupled Sea Breeze

        Overview

        This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

        In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

        Model Initialization

        Component Models

        Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

        In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

        include("atmos_rhs.jl")
        +include("ocean_rhs.jl")
        +include("land_rhs.jl")
        +
        +# model parameters
        +const atm_T_ini = FT(270.0)
        +const MSLP = FT(1e5)
        +const grav = FT(9.8)
        +const R_d = FT(287.058)
        +const γ = FT(1.4)
        +const C_p = FT(R_d * γ / (γ - 1))
        +const C_v = FT(R_d / (γ - 1))
        +const R_m = R_d
        +cpl_parameters = (
        +    # atmos parameters
        +    atm_μ = FT(0.0001), # diffusion coefficient
        +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
        +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
        +    MSLP = MSLP, # mean sea level pressure
        +    grav = grav, # gravitational constant
        +    R_d = R_d, # R dry (gas constant / mol mass dry air)
        +    γ = γ, # heat capacity ratio
        +    C_p = C_p, # heat capacity at constant pressure
        +    C_v = C_v, # heat capacity at constant volume
        +    R_m = R_m, # moist R, assumed to be dry
        +    # land slab parameters
        +    lnd_h = FT(0.5), # depth of slab layer [m]
        +    lnd_ρ = FT(1500), # density [kg m^-3]
        +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
        +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
        +    # ocean slab parameters
        +    ocn_h = FT(0.5), # depth of slab layer [m]
        +    ocn_ρ = FT(1025), # density [kg m^-3]
        +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
        +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
        +    # coupling parameters
        +    C_H = FT(0.0015),
        +)
        +
        +# DSS callback
        +function make_dss_func()
        +    function _dss!(x::Fields.Field)
        +        Spaces.weighted_dss!(x)
        +    end
        +    function _dss!(::Any)
        +        nothing
        +    end
        +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
        +    return dss_func
        +end
        +dss_func = make_dss_func()
        +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

        Initialization

        The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

        Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

        @info "Init Models and Maps"
        +
        +t_start, t_end = (0.0, 1.0)
        +Δt_coupled = 0.1
        +saveat = 1e2
        +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
        +
        +# Initialize Models
        +atm_Y_default, atm_bc, atm_domain = atm_init(
        +    xmin = -500,
        +    xmax = 500,
        +    zmin = 0,
        +    zmax = 1000,
        +    npoly = 4,
        +    helem = 20,
        +    velem = 20,
        +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
        +)
        +
        +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
        +
        +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

        Remapping

        Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

        atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
        +
        +maps = (
        +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
        +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
        +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
        +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
        +)
        +
        +# initialize coupling fields
        +atm_T_sfc =
        +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
        +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
        +atm_F_sfc = Fields.zeros(atm_boundary)
        +ocn_F_sfc = Fields.zeros(ocn_domain)
        +lnd_F_sfc = Fields.zeros(lnd_domain)

        Simulations

        Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

        atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
        +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
        +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
        +
        +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
        +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
        +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
        +
        +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
        +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
        +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

        Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

        struct AOLCoupledSimulation{
        +    A <: AtmosSimulation,
        +    O <: OceanSimulation,
        +    L <: LandSimulation,
        +    C <: ClimaCoupler.CouplerState,
        +} <: ClimaCoupler.AbstractCoupledSimulation
        +    # Atmosphere Simulation
        +    atmos::A
        +    # Ocean Simulation
        +    ocean::O
        +    # Land Simulation
        +    land::L
        +    # Coupler storage
        +    coupler::C
        +end

        step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

        function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
        +    Δt = t_stop - sim.integrator.t
        +    step!(sim.integrator, Δt, true)
        +end

        The Coupler

        The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

        After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

        Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

        Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

        \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

        where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

        coupler = CouplerState(Δt_coupled)
        +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
        +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
        +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
        +for (name, map) in pairs(maps)
        +    coupler_add_map!(coupler, name, map)
        +end
        +
        +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

        Coupled Time Integration

        Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

        Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

        Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

        \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

        where $F_{integ}$ has units of $J m^{-2}$.

        function cpl_run(simulation::AOLCoupledSimulation)
        +    @info "Run model"
        +    @unpack atmos, ocean, land, coupler = simulation
        +    Δt_coupled = coupler.Δt_coupled
        +    # coupler stepping
        +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
        +        # Atmos
        +        coupler_pull!(atmos, coupler)
        +        step!(atmos, t)
        +        coupler_push!(coupler, atmos)
        +
        +        # Ocean
        +        coupler_pull!(ocean, coupler)
        +        step!(ocean, t)
        +        coupler_push!(coupler, ocean)
        +
        +        # Land
        +        coupler_pull!(land, coupler)
        +        step!(land, t)
        +        coupler_push!(coupler, land)
        +    end
        +    @info "Simulation Complete"
        +end
        +
        +# Run simulation
        +cpl_run(sim)

        References


        This page was generated using Literate.jl.

        diff --git a/previews/PR113/images/cplsetup.png b/previews/PR113/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR113/index.html b/previews/PR113/index.html new file mode 100644 index 000000000..df4bee236 --- /dev/null +++ b/previews/PR113/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

        ClimaCoupler.jl

        Coupling CliMA Models

        ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

        • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
        • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

        The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

        Coupler Scheme
        ClimaCoupler.jl allows for independent development of interchangeable component models.
        diff --git a/previews/PR113/search/index.html b/previews/PR113/search/index.html new file mode 100644 index 000000000..d1135d9f4 --- /dev/null +++ b/previews/PR113/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

        Loading search...

          diff --git a/previews/PR113/search_index.js b/previews/PR113/search_index.js new file mode 100644 index 000000000..d4b08844d --- /dev/null +++ b/previews/PR113/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"}] +} diff --git a/previews/PR113/siteinfo.js b/previews/PR113/siteinfo.js new file mode 100644 index 000000000..5720d694b --- /dev/null +++ b/previews/PR113/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR113"; diff --git a/previews/PR113/timestepping/index.html b/previews/PR113/timestepping/index.html new file mode 100644 index 000000000..94b8a0e52 --- /dev/null +++ b/previews/PR113/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

          Coupled Simulations & Timestepping

          ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

          Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

          • step!: advances the component model in time
          • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
          • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
          Missing docstring.

          Missing docstring for ClimaCoupler.CoupledSimulation. Check Documenter's build log for details.

          ClimaCoupler.run!Function
          run!(::CoupledSimulation)

          A simple outer timestepping loop for coupled system runs.

          This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

          source
          ClimaCoupler.step!Function
          step!(sim, dt)

          Advances a simulation by dt.

          Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

          source
          ClimaCoupler.coupler_push!Function
          coupler_push!(coupler::CouplerState, model)

          Update coupler with fields retrieved from the coupler.

          coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

          source
          ClimaCoupler.coupler_pull!Function
          coupler_pull!(model, coupler::CouplerState)

          Update model with fields retrieved from the coupler.

          coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

          source
          diff --git a/previews/PR125/assets/documenter.js b/previews/PR125/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR125/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR125/assets/logo.svg b/previews/PR125/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR125/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR125/assets/search.js b/previews/PR125/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR125/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
        • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR125/assets/themes/documenter-dark.css b/previews/PR125/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR125/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR125/assets/themes/documenter-light.css b/previews/PR125/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR125/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR125/assets/themeswap.js b/previews/PR125/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR125/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR125/assets/warner.js b/previews/PR125/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR125/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
          Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR125/couplerstate/index.html b/previews/PR125/couplerstate/index.html new file mode 100644 index 000000000..fde9b895a --- /dev/null +++ b/previews/PR125/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

          Coupler State

          The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

          The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

          Coupler Object API

          ClimaCoupler.CouplerStateType
          CouplerState()

          Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

          A field is exported by one component and imported by one or more other components.

          source
          ClimaCoupler.coupler_add_field!Function
          coupler_add_field!(
          +        coupler::CouplerState,
          +        fieldname::Symbol,
          +        fieldvalue,
          +    )

          Add a field to the coupler that is accessible with key fieldname.

          Arguments

          • coupler: coupler object the field is added to.
          • fieldname: key to access the field in the coupler.
          • fieldvalue: data array of field values.
          source
          ClimaCoupler.coupler_getFunction
          coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

          Retrieve data array corresponding to fieldname.

          If a target_sim is passed, the field is remapped to that simulation's boundary space.

          source
          diff --git a/previews/PR125/generated/sea_breeze/atmos_rhs/index.html b/previews/PR125/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..e29303998 --- /dev/null +++ b/previews/PR125/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

          Atmospheric Model

          Atmosphere Conservation Equations

          Density:

          \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

          Momentum (flux form):

          \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

          Potential temperature:

          \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

          Total Energy (possibly replace potential temperature equation with total energy conservation):

          \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

          where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

          Tracer transport:

          \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

          Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

          \[\rho\tau = -2\rho\nu\nabla u.\]

          Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

          \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

          with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

          Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

          Consider components of the viscous stress tensor in three dimensions:

          \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

          Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

          \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

          Which can be interpreted as, for horizontal-momentum:

          1. Horizontal divergence of vertical gradients of cell-centered variables $u$
          2. Vertical divergence of vertical gradients of cell-centered variables $u$
          3. Vertical divergence of horizontal gradients of cell-face variables $w$

          and for vertical-momentum, as:

          1. Horizontal divergence of vertical gradients of cell-centered variables $u$
          2. Horizontal divergence of horizontal gradients of cell-face variables $w$
          3. Vertical divergence of vertical gradients of cell-face variables $w$.

          Model Code

          push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
          +
          +using Test
          +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
          +
          +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
          +using ClimaCore.Geometry
          +using ClimaCore.Utilities: PlusHalf
          +
          +using Logging: global_logger
          +using TerminalLoggers: TerminalLogger
          +global_logger(TerminalLogger())
          +
          +using ClimaCoupler
          +
          +# set up function space
          +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
          +    FT = Float64
          +    vertdomain = Domains.IntervalDomain(
          +        Geometry.ZPoint{FT}(zlim[1]),
          +        Geometry.ZPoint{FT}(zlim[2]);
          +        boundary_tags = (:bottom, :top),
          +    )
          +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
          +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
          +
          +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
          +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
          +    horztopology = Topologies.IntervalTopology(horzmesh)
          +
          +    quad = Spaces.Quadratures.GLL{npoly + 1}()
          +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
          +
          +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
          +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
          +    return (hv_center_space, hv_face_space)
          +end
          +
          +function pressure(ρθ)
          +    if ρθ >= 0
          +        return MSLP * (R_d * ρθ / MSLP)^γ
          +    else
          +        return NaN
          +    end
          +end
          +
          +Φ(z) = grav * z
          +
          +abstract type BCtag end
          +struct ZeroFlux <: BCtag end
          +
          +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
          +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
          +
          +function init_sea_breeze_2d(x, z)
          +    θ₀ = atm_T_ini
          +    cp_d = C_p
          +    cv_d = C_v
          +    p₀ = MSLP
          +    g = grav
          +    γ = cp_d / cv_d
          +    z_c = 100.0
          +    θ_b = atm_T_ini
          +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
          +    θ = θ_b + θ_p # potential temperature
          +    π_exn = 1.0 - g * z / cp_d / θ # exner function
          +    T = π_exn * θ # temperature
          +    p = p₀ * π_exn^(cp_d / R_d) # pressure
          +    ρ = p / R_d / T # density
          +    ρθ = ρ * θ # potential temperature density
          +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
          +end
          +
          +function atm_rhs!(dY, Y, params, t)
          +    ρw = Y.ρw
          +    Yc = Y.Yc
          +    dYc = dY.Yc
          +    dρw = dY.ρw
          +
          +    center_coords = Fields.coordinate_field(axes(Yc))
          +
          +    # spectral horizontal operators
          +    hdiv = Operators.Divergence()
          +    hgrad = Operators.Gradient()
          +    hwdiv = Operators.WeakDivergence()
          +    hwgrad = Operators.WeakGradient()
          +
          +    # vertical FD operators with BC's
          +    vdivf2c = Operators.DivergenceF2C(
          +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
          +        top = Operators.SetValue(Geometry.WVector(0.0)),
          +    )
          +    vvdivc2f = Operators.DivergenceC2F(
          +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
          +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
          +    )
          +    uvdivf2c = Operators.DivergenceF2C(
          +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
          +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
          +    )
          +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
          +    Ic = Operators.InterpolateF2C()
          +    ∂ = Operators.DivergenceF2C(
          +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
          +        top = Operators.SetValue(Geometry.WVector(0.0)),
          +    )
          +    ∂f = Operators.GradientC2F()
          +    ∂c = Operators.GradientF2C()
          +    B = Operators.SetBoundaryOperator(
          +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
          +        top = Operators.SetValue(Geometry.WVector(0.0)),
          +    )
          +
          +    ∇_z_ρθ = Operators.DivergenceF2C(
          +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
          +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
          +    )
          +
          +    uₕ = @. Yc.ρuₕ / Yc.ρ
          +    w = @. ρw / If(Yc.ρ)
          +    wc = @. Ic(ρw) / Yc.ρ
          +    p = @. pressure(Yc.ρθ)
          +    θ = @. Yc.ρθ / Yc.ρ
          +    Yfρ = @. If(Yc.ρ)
          +
          +    ### HYPERVISCOSITY
          +    # 1) compute hyperviscosity coefficients
          +    @. dYc.ρθ = hwdiv(hgrad(θ))
          +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
          +    @. dρw = hwdiv(hgrad(w))
          +    Spaces.weighted_dss!(dYc)
          +    Spaces.weighted_dss!(dρw)
          +
          +    κ₄ = 0.0 # m^4/s
          +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
          +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
          +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
          +
          +    # density
          +    @. dYc.ρ = -∂(ρw)
          +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
          +
          +    # potential temperature
          +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
          +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
          +
          +    # horizontal momentum
          +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
          +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
          +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
          +
          +    # vertical momentum
          +    @. dρw +=
          +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
          +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
          +    @. dρw -= hdiv(uₕf ⊗ ρw)
          +
          +    # DIFFUSION
          +    κ₂ = 5.0 # m^2/s
          +    #  1a) horizontal div of horizontal grad of horiz momentun
          +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
          +    #  1b) vertical div of vertical grad of horiz momentun
          +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
          +
          +    #  1c) horizontal div of horizontal grad of vert momentum
          +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
          +    #  1d) vertical div of vertical grad of vert momentun
          +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
          +
          +    #  2a) horizontal div of horizontal grad of potential temperature
          +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
          +    #  2b) vertical div of vertial grad of potential temperature
          +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
          +
          +    Spaces.weighted_dss!(dYc)
          +    Spaces.weighted_dss!(dρw)
          +    return dY
          +end
          +
          +# init simulation
          +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
          +
          +    # construct domain spaces
          +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
          +    center_coords = Fields.coordinate_field(hv_center_space)
          +    face_coords = Fields.coordinate_field(hv_face_space)
          +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
          +
          +    # initialize prognostic variables
          +    Yc = map(center_coords) do coord
          +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
          +        sea_breeze
          +    end
          +
          +    ρw = map(face_coords) do coord
          +        Geometry.WVector(0.0)
          +    end
          +
          +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
          +
          +    # select boundary conditions
          +    if bc === nothing
          +        bc = (
          +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
          +            ρu = nothing, # for now BCs are hard coded, except for ρθ
          +        )
          +    end
          +
          +    return Y, bc, domain
          +end
          +
          +using OrdinaryDiffEq
          +function atm_run!(Y, bc, domain)
          +    dYdt = similar(Y)
          +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
          +    atm_rhs!(dYdt, Y, params, 0.0)
          +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
          +    Δt = 0.025
          +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
          +end

          Coupled Atmos Wrappers

          # Atmos Simulation - later to live in ClimaAtmos
          +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
          +    integrator::Any
          +end
          +
          +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
          +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
          +
          +    atm_integ = init(
          +        atm_prob,
          +        timestepper,
          +        dt = dt,
          +        saveat = saveat,
          +        progress = true,
          +        progress_message = (dt, u, params, t) -> t,
          +        callback = callbacks,
          +    )
          +
          +    return AtmosSimulation(atm_integ)
          +end
          +
          +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
          +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
          +end
          +
          +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
          +    # reset flux accumulator
          +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
          +
          +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
          +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
          +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
          +end

          Coupled Boundary Conditions

          The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

          To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

          struct CoupledFlux <: BCtag end
          +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
          +    # flux calculation
          +    Yc = Y.Yc
          +    uₕ = Yc.ρuₕ ./ Yc.ρ
          +    ρw = Y.ρw
          +    If2c = Operators.InterpolateF2C()
          +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
          +    w = If2c.(ρw) ./ Yc.ρ
          +    cuv = @. Geometry.UWVector(uₕ)
          +    windspeed = @. norm(cuv)
          +    windspeed_boundary = Fields.level(windspeed, 1)
          +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
          +    ρ_boundary = Fields.level(Yc.ρ, 1)
          +
          +    # build atmos face fields on surface boundary space to enable broadcasting
          +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
          +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
          +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
          +
          +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
          +    dθ = @. θ_boundary - p.T_sfc
          +    heat_flux = @. -λ * dθ
          +    @. dY.F_sfc += heat_flux # accumulation
          +
          +    return Operators.SetValue(Geometry.WVector.(heat_flux))
          +end

          This page was generated using Literate.jl.

          diff --git a/previews/PR125/generated/sea_breeze/land_rhs/index.html b/previews/PR125/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..896b18769 --- /dev/null +++ b/previews/PR125/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

          Land Model

          Slab Land ODE

          For our land component, we solve a simple slab land ODE:

          \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

          • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
          • and $F_{integ}$ is the integrated surface fluxes in time.

          Model Code

          function lnd_rhs!(du, u, (parameters, F_accumulated), t)
          +    """
          +    Slab layer equation
          +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
          +        where
          +            F_accumulated = F_integrated / Δt_coupler
          +    """
          +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
          +    @unpack T_sfc = du
          +
          +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
          +end
          +
          +# set up domain
          +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
          +    FT = Float64
          +
          +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
          +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
          +    topology = Topologies.IntervalTopology(mesh)
          +
          +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
          +    quad = Spaces.Quadratures.GL{npoly + 1}()
          +    space = Spaces.SpectralElementSpace1D(topology, quad)
          +
          +    return space
          +end
          +
          +# init simulation
          +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
          +
          +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
          +    space = hspace_1D((xmin, xmax), npoly, helem)
          +    coords = Fields.coordinate_field(space)
          +    domain = space
          +
          +    # initial condition
          +    T_sfc = map(coords) do coord
          +        T_sfc = 273.0
          +    end
          +
          +    # prognostic variable
          +    Y = Fields.FieldVector(T_sfc = T_sfc)
          +
          +    return Y, domain
          +end

          Coupled Land Wrappers

          # Land Simulation - later to live in ClimaLSM
          +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
          +    integrator::Any
          +end
          +
          +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
          +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
          +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
          +    return LandSimulation(lnd_integ)
          +end
          +
          +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
          +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
          +end
          +
          +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
          +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
          +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
          +end

          This page was generated using Literate.jl.

          diff --git a/previews/PR125/generated/sea_breeze/ocean_rhs/index.html b/previews/PR125/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..85c29a018 --- /dev/null +++ b/previews/PR125/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

          Ocean Model

          Slab Ocean ODE

          For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

          \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

          • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
          • and $F_{integ}$ is the integrated surface fluxes in time.

          Model Code

          function ocn_rhs!(du, u, (parameters, F_accumulated), t)
          +    """
          +    Slab layer equation
          +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
          +        where
          +            F_accumulated = F_integrated / Δt_coupler
          +    """
          +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
          +    @unpack T_sfc = du
          +
          +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
          +end
          +
          +# set up domain
          +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
          +    FT = Float64
          +
          +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
          +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
          +    topology = Topologies.IntervalTopology(mesh)
          +
          +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
          +    quad = Spaces.Quadratures.GL{npoly + 1}()
          +    space = Spaces.SpectralElementSpace1D(topology, quad)
          +
          +    return space
          +end
          +
          +# init simulation
          +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
          +
          +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
          +    space = hspace_1D((xmin, xmax), npoly, helem)
          +    coords = Fields.coordinate_field(space)
          +    domain = space
          +
          +    # initial condition
          +    T_sfc = map(coords) do coord
          +        T_sfc = 267.0
          +    end
          +
          +    # prognostic variable
          +    Y = Fields.FieldVector(T_sfc = T_sfc)
          +
          +    return Y, domain
          +end

          Coupled Ocean Wrappers

          # Ocean Simulation - Later to live in Oceananigans
          +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
          +    integrator::Any
          +end
          +
          +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
          +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
          +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
          +    return OceanSimulation(ocn_integ)
          +end
          +
          +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
          +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
          +end
          +
          +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
          +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
          +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
          +end

          This page was generated using Literate.jl.

          diff --git a/previews/PR125/generated/sea_breeze/run/index.html b/previews/PR125/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..9dcb4ba1a --- /dev/null +++ b/previews/PR125/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

          Coupled Sea Breeze

          Overview

          This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

          In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

          Model Initialization

          Component Models

          Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

          In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

          include("atmos_rhs.jl")
          +include("ocean_rhs.jl")
          +include("land_rhs.jl")
          +
          +# model parameters
          +const atm_T_ini = FT(270.0)
          +const MSLP = FT(1e5)
          +const grav = FT(9.8)
          +const R_d = FT(287.058)
          +const γ = FT(1.4)
          +const C_p = FT(R_d * γ / (γ - 1))
          +const C_v = FT(R_d / (γ - 1))
          +const R_m = R_d
          +cpl_parameters = (
          +    # atmos parameters
          +    atm_μ = FT(0.0001), # diffusion coefficient
          +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
          +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
          +    MSLP = MSLP, # mean sea level pressure
          +    grav = grav, # gravitational constant
          +    R_d = R_d, # R dry (gas constant / mol mass dry air)
          +    γ = γ, # heat capacity ratio
          +    C_p = C_p, # heat capacity at constant pressure
          +    C_v = C_v, # heat capacity at constant volume
          +    R_m = R_m, # moist R, assumed to be dry
          +    # land slab parameters
          +    lnd_h = FT(0.5), # depth of slab layer [m]
          +    lnd_ρ = FT(1500), # density [kg m^-3]
          +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
          +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
          +    # ocean slab parameters
          +    ocn_h = FT(0.5), # depth of slab layer [m]
          +    ocn_ρ = FT(1025), # density [kg m^-3]
          +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
          +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
          +    # coupling parameters
          +    C_H = FT(0.0015),
          +)
          +
          +# DSS callback
          +function make_dss_func()
          +    function _dss!(x::Fields.Field)
          +        Spaces.weighted_dss!(x)
          +    end
          +    function _dss!(::Any)
          +        nothing
          +    end
          +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
          +    return dss_func
          +end
          +dss_func = make_dss_func()
          +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

          Initialization

          The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

          Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

          @info "Init Models and Maps"
          +
          +t_start, t_end = (0.0, 1.0)
          +Δt_coupled = 0.1
          +saveat = 1e2
          +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
          +
          +# Initialize Models
          +atm_Y_default, atm_bc, atm_domain = atm_init(
          +    xmin = -500,
          +    xmax = 500,
          +    zmin = 0,
          +    zmax = 1000,
          +    npoly = 4,
          +    helem = 20,
          +    velem = 20,
          +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
          +)
          +
          +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
          +
          +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

          Remapping

          Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

          atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
          +
          +maps = (
          +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
          +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
          +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
          +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
          +)
          +
          +# initialize coupling fields
          +atm_T_sfc =
          +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
          +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
          +atm_F_sfc = Fields.zeros(atm_boundary)
          +ocn_F_sfc = Fields.zeros(ocn_domain)
          +lnd_F_sfc = Fields.zeros(lnd_domain)

          Simulations

          Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

          atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
          +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
          +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
          +
          +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
          +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
          +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
          +
          +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
          +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
          +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

          Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

          struct AOLCoupledSimulation{
          +    A <: AtmosSimulation,
          +    O <: OceanSimulation,
          +    L <: LandSimulation,
          +    C <: ClimaCoupler.CouplerState,
          +} <: ClimaCoupler.AbstractCoupledSimulation
          +    # Atmosphere Simulation
          +    atmos::A
          +    # Ocean Simulation
          +    ocean::O
          +    # Land Simulation
          +    land::L
          +    # Coupler storage
          +    coupler::C
          +end

          step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

          function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
          +    Δt = t_stop - sim.integrator.t
          +    step!(sim.integrator, Δt, true)
          +end

          The Coupler

          The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

          After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

          Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

          Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

          \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

          where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

          coupler = CouplerState(Δt_coupled)
          +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
          +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
          +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
          +for (name, map) in pairs(maps)
          +    coupler_add_map!(coupler, name, map)
          +end
          +
          +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

          Coupled Time Integration

          Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

          Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

          Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

          \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

          where $F_{integ}$ has units of $J m^{-2}$.

          function cpl_run(simulation::AOLCoupledSimulation)
          +    @info "Run model"
          +    @unpack atmos, ocean, land, coupler = simulation
          +    Δt_coupled = coupler.Δt_coupled
          +    # coupler stepping
          +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
          +        # Atmos
          +        coupler_pull!(atmos, coupler)
          +        step!(atmos, t)
          +        coupler_push!(coupler, atmos)
          +
          +        # Ocean
          +        coupler_pull!(ocean, coupler)
          +        step!(ocean, t)
          +        coupler_push!(coupler, ocean)
          +
          +        # Land
          +        coupler_pull!(land, coupler)
          +        step!(land, t)
          +        coupler_push!(coupler, land)
          +    end
          +    @info "Simulation Complete"
          +end
          +
          +# Run simulation
          +cpl_run(sim)

          References


          This page was generated using Literate.jl.

          diff --git a/previews/PR125/images/cplsetup.png b/previews/PR125/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR125/index.html b/previews/PR125/index.html new file mode 100644 index 000000000..7cb56a7f2 --- /dev/null +++ b/previews/PR125/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

          ClimaCoupler.jl

          Coupling CliMA Models

          ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

          • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
          • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

          The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

          Coupler Scheme
          ClimaCoupler.jl allows for independent development of interchangeable component models.
          diff --git a/previews/PR125/search/index.html b/previews/PR125/search/index.html new file mode 100644 index 000000000..a9e790b66 --- /dev/null +++ b/previews/PR125/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

          Loading search...

            diff --git a/previews/PR125/search_index.js b/previews/PR125/search_index.js new file mode 100644 index 000000000..d4b08844d --- /dev/null +++ b/previews/PR125/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"}] +} diff --git a/previews/PR125/siteinfo.js b/previews/PR125/siteinfo.js new file mode 100644 index 000000000..1325aead8 --- /dev/null +++ b/previews/PR125/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR125"; diff --git a/previews/PR125/timestepping/index.html b/previews/PR125/timestepping/index.html new file mode 100644 index 000000000..281affa4e --- /dev/null +++ b/previews/PR125/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

            Coupled Simulations & Timestepping

            ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

            Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

            • step!: advances the component model in time
            • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
            • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
            Missing docstring.

            Missing docstring for ClimaCoupler.CoupledSimulation. Check Documenter's build log for details.

            ClimaCoupler.run!Function
            run!(::CoupledSimulation)

            A simple outer timestepping loop for coupled system runs.

            This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

            source
            ClimaCoupler.step!Function
            step!(sim, dt)

            Advances a simulation by dt.

            Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

            source
            ClimaCoupler.coupler_push!Function
            coupler_push!(coupler::CouplerState, model)

            Update coupler with fields retrieved from the coupler.

            coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

            source
            ClimaCoupler.coupler_pull!Function
            coupler_pull!(model, coupler::CouplerState)

            Update model with fields retrieved from the coupler.

            coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

            source
            diff --git a/previews/PR19/assets/documenter.js b/previews/PR19/assets/documenter.js new file mode 100644 index 000000000..15dc682b9 --- /dev/null +++ b/previews/PR19/assets/documenter.js @@ -0,0 +1,264 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) { +$(document).ready(function() { + hljs.initHighlighting(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR19/assets/logo.svg b/previews/PR19/assets/logo.svg new file mode 100644 index 000000000..badfb58df --- /dev/null +++ b/previews/PR19/assets/logo.svg @@ -0,0 +1,138 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR19/assets/search.js b/previews/PR19/assets/search.js new file mode 100644 index 000000000..71ebd87ed --- /dev/null +++ b/previews/PR19/assets/search.js @@ -0,0 +1,251 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.6/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
          • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR19/assets/themes/documenter-dark.css b/previews/PR19/assets/themes/documenter-dark.css new file mode 100644 index 000000000..f866234ff --- /dev/null +++ b/previews/PR19/assets/themes/documenter-dark.css @@ -0,0 +1,7642 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close, .is-unselectable, html.theme--documenter-dark .button, html.theme--documenter-dark .file, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after, html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .box:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:focus, html.theme--documenter-dark .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .delete:active, html.theme--documenter-dark .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete, html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.delete, html.theme--documenter-dark .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.delete, html.theme--documenter-dark .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .button.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, html.theme--documenter-dark .modal, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .button, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .button:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .is-active.button, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis { + outline: none; } + html.theme--documenter-dark .button[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], + fieldset[disabled] html.theme--documenter-dark .button, + html.theme--documenter-dark fieldset[disabled] .button, + fieldset[disabled] html.theme--documenter-dark .input, + html.theme--documenter-dark fieldset[disabled] .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + html.theme--documenter-dark fieldset[disabled] .textarea, + fieldset[disabled] html.theme--documenter-dark .select select, + html.theme--documenter-dark .select fieldset[disabled] select, + fieldset[disabled] html.theme--documenter-dark .file-cta, + html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, + fieldset[disabled] html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
            that is identified by id #documenter. + */ + /* a11y-dark theme */ + /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ + /* @author: ericwbailey */ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #e74c3c; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark, + fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], + fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag:not(body).is-white, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-white, html.theme--documenter-dark .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag:not(body).is-black, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-black, html.theme--documenter-dark .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag:not(body).is-light, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-light, html.theme--documenter-dark .content kbd:not(body).is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag:not(body).is-dark, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-dark, html.theme--documenter-dark .content kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag:not(body).is-primary, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body).is-primary { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-link, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-link, html.theme--documenter-dark .content kbd:not(body).is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-info, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-info, html.theme--documenter-dark .content kbd:not(body).is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-success, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-success, html.theme--documenter-dark .content kbd:not(body).is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-warning, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-warning, html.theme--documenter-dark .content kbd:not(body).is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-danger, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-danger, html.theme--documenter-dark .content kbd:not(body).is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-normal, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-normal, html.theme--documenter-dark .content kbd:not(body).is-normal { + font-size: 0.85em; } + html.theme--documenter-dark .tag:not(body).is-medium, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-medium, html.theme--documenter-dark .content kbd:not(body).is-medium { + font-size: 15px; } + html.theme--documenter-dark .tag:not(body).is-large, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-large, html.theme--documenter-dark .content kbd:not(body).is-large { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body).is-delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete, html.theme--documenter-dark .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before, html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag:not(body).is-delete:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, html.theme--documenter-dark .content kbd:not(body).is-delete:hover, html.theme--documenter-dark .tag:not(body).is-delete:focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, html.theme--documenter-dark .content kbd:not(body).is-delete:focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag:not(body).is-delete:active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:active, html.theme--documenter-dark .content kbd:not(body).is-delete:active { + background-color: #111414; } + html.theme--documenter-dark .tag:not(body).is-rounded, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-rounded, html.theme--documenter-dark .content kbd:not(body).is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .select select.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], + fieldset[disabled] html.theme--documenter-dark .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + fieldset[disabled] html.theme--documenter-dark .select select { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .select select[disabled]::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .select select[disabled]:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly], html.theme--documenter-dark .textarea[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white, html.theme--documenter-dark .is-white.textarea { + border-color: white; } + html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-active, html.theme--documenter-dark .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black, html.theme--documenter-dark .is-black.textarea { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-active, html.theme--documenter-dark .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light, html.theme--documenter-dark .is-light.textarea { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-active, html.theme--documenter-dark .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark .content kbd.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link, html.theme--documenter-dark .is-link.textarea { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-active, html.theme--documenter-dark .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info, html.theme--documenter-dark .is-info.textarea { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-active, html.theme--documenter-dark .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success, html.theme--documenter-dark .is-success.textarea { + border-color: #008438; } + html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-active, html.theme--documenter-dark .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning, html.theme--documenter-dark .is-warning.textarea { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, html.theme--documenter-dark .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger, html.theme--documenter-dark .is-danger.textarea { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, html.theme--documenter-dark .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .is-small.textarea { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium, html.theme--documenter-dark .is-medium.textarea { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large, html.theme--documenter-dark .is-large.textarea { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth, html.theme--documenter-dark .is-fullwidth.textarea { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline, html.theme--documenter-dark .is-inline.textarea { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .checkbox, html.theme--documenter-dark .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .checkbox input, html.theme--documenter-dark .radio input { + cursor: pointer; } + html.theme--documenter-dark .checkbox:hover, html.theme--documenter-dark .radio:hover { + color: #8c9b9d; } + html.theme--documenter-dark .checkbox[disabled], html.theme--documenter-dark .radio[disabled], + fieldset[disabled] html.theme--documenter-dark .checkbox, + fieldset[disabled] html.theme--documenter-dark .radio { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, + fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .content kbd { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; + padding: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs { + display: block; + overflow-x: auto; + background: #2b2b2b; + color: #f8f8f2; + padding: 0.5em; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR19/assets/themes/documenter-light.css b/previews/PR19/assets/themes/documenter-light.css new file mode 100644 index 000000000..57fdf947d --- /dev/null +++ b/previews/PR19/assets/themes/documenter-light.css @@ -0,0 +1,7630 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child), .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .delete::before, .modal-close::before { + height: 2px; + width: 50%; } + .delete::after, .modal-close::after { + height: 50%; + width: 2px; } + .delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + .delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete, .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.button, .input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .button:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .file-cta:focus, + .file-name:focus, .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .is-focused.button, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, + .is-focused.file-name, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .button:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .file-cta:active, + .file-name:active, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .is-active.button, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active, .is-active.file-cta, + .is-active.file-name, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis { + outline: none; } + .button[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], + .file-name[disabled], .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], + fieldset[disabled] .button, + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select, + fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, + fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #7a7a7a !important; } + +.has-background-grey { + background-color: #7a7a7a !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #2e63b8; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], + fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], + fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], + fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], + fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], + fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], + fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], + fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], + fieldset[disabled] .button.is-dark, + fieldset[disabled] .content kbd.button, + .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], + fieldset[disabled] .button.is-dark.is-inverted, + fieldset[disabled] .content kbd.button.is-inverted, + .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-outlined, + fieldset[disabled] .content kbd.button.is-outlined, + .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] .content kbd.button.is-inverted.is-outlined, + .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary, + fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted, + fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], + fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], + fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], + fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], + fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], + fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], + fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], + fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], + fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], + fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], + fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], + fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } + +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .docstring > section > a.docs-sourcelink, .tags .content kbd, .content .tags kbd { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .docstring > section > a.docs-sourcelink, .tags.is-centered .content kbd, .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .docstring > section > a.docs-sourcelink, .tags.has-addons .content kbd, .content .tags.has-addons kbd { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete, .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag:not(body).is-white, .docstring > section > a.docs-sourcelink:not(body).is-white, .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + .tag:not(body).is-black, .docstring > section > a.docs-sourcelink:not(body).is-black, .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + .tag:not(body).is-light, .docstring > section > a.docs-sourcelink:not(body).is-light, .content kbd:not(body).is-light { + background-color: whitesmoke; + color: #363636; } + .tag:not(body).is-dark, .docstring > section > a.docs-sourcelink:not(body).is-dark, .content kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag:not(body).is-primary, .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body).is-primary { + background-color: #4eb5de; + color: #fff; } + .tag:not(body).is-link, .docstring > section > a.docs-sourcelink:not(body).is-link, .content kbd:not(body).is-link { + background-color: #2e63b8; + color: #fff; } + .tag:not(body).is-info, .docstring > section > a.docs-sourcelink:not(body).is-info, .content kbd:not(body).is-info { + background-color: #209cee; + color: #fff; } + .tag:not(body).is-success, .docstring > section > a.docs-sourcelink:not(body).is-success, .content kbd:not(body).is-success { + background-color: #22c35b; + color: #fff; } + .tag:not(body).is-warning, .docstring > section > a.docs-sourcelink:not(body).is-warning, .content kbd:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag:not(body).is-danger, .docstring > section > a.docs-sourcelink:not(body).is-danger, .content kbd:not(body).is-danger { + background-color: #da0b00; + color: #fff; } + .tag:not(body).is-normal, .docstring > section > a.docs-sourcelink:not(body).is-normal, .content kbd:not(body).is-normal { + font-size: 0.75rem; } + .tag:not(body).is-medium, .docstring > section > a.docs-sourcelink:not(body).is-medium, .content kbd:not(body).is-medium { + font-size: 1rem; } + .tag:not(body).is-large, .docstring > section > a.docs-sourcelink:not(body).is-large, .content kbd:not(body).is-large { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag:not(body).is-delete, .docstring > section > a.docs-sourcelink:not(body).is-delete, .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before, .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + .tag:not(body).is-delete:hover, .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, .content kbd:not(body).is-delete:hover, .tag:not(body).is-delete:focus, .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, .content kbd:not(body).is-delete:focus { + background-color: #e8e8e8; } + .tag:not(body).is-delete:active, .docstring > section > a.docs-sourcelink:not(body).is-delete:active, .content kbd:not(body).is-delete:active { + background-color: #dbdbdb; } + .tag:not(body).is-rounded, .docstring > section > a.docs-sourcelink:not(body).is-rounded, .content kbd:not(body).is-rounded, #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .docstring > section > a.docs-sourcelink, .title .content kbd, .content .title kbd, + .subtitle .tag, + .subtitle .docstring > section > a.docs-sourcelink, + .subtitle .content kbd, + .content .subtitle kbd { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .textarea:hover, .select select:hover, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; } + .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; } + .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, + fieldset[disabled] .input::-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder, + fieldset[disabled] .textarea::-moz-placeholder, + fieldset[disabled] .select select::-moz-placeholder, + .select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] .input::-webkit-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] .textarea::-webkit-input-placeholder, + fieldset[disabled] .select select::-webkit-input-placeholder, + .select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, + fieldset[disabled] .input:-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder, + fieldset[disabled] .textarea:-moz-placeholder, + fieldset[disabled] .select select:-moz-placeholder, + .select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] .input:-ms-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] .textarea:-ms-input-placeholder, + fieldset[disabled] .select select:-ms-input-placeholder, + .select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly], .textarea[readonly] { + box-shadow: none; } + .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white, .is-white.textarea { + border-color: white; } + .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.textarea:focus, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, .is-white.is-focused.textarea, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.textarea:active, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-active, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black, .is-black.textarea { + border-color: #0a0a0a; } + .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.textarea:focus, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, .is-black.is-focused.textarea, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.textarea:active, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-active, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light, .is-light.textarea { + border-color: whitesmoke; } + .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.textarea:focus, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, .is-light.is-focused.textarea, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.textarea:active, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-active, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.input, .content kbd.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .is-dark.textarea, .content kbd.textarea { + border-color: #363636; } + .is-dark.input:focus, .content kbd.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.is-focused.input, .content kbd.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.input:active, .content kbd.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.is-active.input, .content kbd.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, .is-dark.is-active.textarea, .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.input, .docstring > section > a.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary, .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.input:focus, .docstring > section > a.input.docs-sourcelink:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.is-focused.input, .docstring > section > a.is-focused.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.input:active, .docstring > section > a.input.docs-sourcelink:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.is-active.input, .docstring > section > a.is-active.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link, .is-link.textarea { + border-color: #2e63b8; } + .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.textarea:focus, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, .is-link.is-focused.textarea, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.textarea:active, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-active, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info, .is-info.textarea { + border-color: #209cee; } + .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.textarea:focus, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, .is-info.is-focused.textarea, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.textarea:active, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-active, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success, .is-success.textarea { + border-color: #22c35b; } + .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.textarea:focus, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, .is-success.is-focused.textarea, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.textarea:active, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-active, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning, .is-warning.textarea { + border-color: #ffdd57; } + .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, .is-warning.is-focused.textarea, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.textarea:active, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger, .is-danger.textarea { + border-color: #da0b00; } + .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, .is-danger.is-focused.textarea, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.textarea:active, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.input, #documenter .docs-sidebar form.docs-search > input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium, .is-medium.textarea { + font-size: 1.25rem; } + .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large, .is-large.textarea { + font-size: 1.5rem; } + .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth, .is-fullwidth.textarea { + display: block; + width: 100%; } + .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline, .is-inline.textarea { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .checkbox input, .radio input { + cursor: pointer; } + .checkbox:hover, .radio:hover { + color: #363636; } + .checkbox[disabled], .radio[disabled], + fieldset[disabled] .checkbox, + fieldset[disabled] .radio { + color: #7a7a7a; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, + fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #7a7a7a; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]).is-hovered, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input:not([disabled]).is-focused, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input:not([disabled]).is-active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select:not([disabled]).is-focused, + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input:not([disabled]).is-focused:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input:not([disabled]).is-active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select:not([disabled]).is-focused:hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, + .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon, + .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } + +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537e; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1em 1.25em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #2e63b8; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.33333%; } + .column.is-offset-1-mobile { + margin-left: 8.33333%; } + .column.is-2-mobile { + flex: none; + width: 16.66667%; } + .column.is-offset-2-mobile { + margin-left: 16.66667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.33333%; } + .column.is-offset-4-mobile { + margin-left: 33.33333%; } + .column.is-5-mobile { + flex: none; + width: 41.66667%; } + .column.is-offset-5-mobile { + margin-left: 41.66667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.33333%; } + .column.is-offset-7-mobile { + margin-left: 58.33333%; } + .column.is-8-mobile { + flex: none; + width: 66.66667%; } + .column.is-offset-8-mobile { + margin-left: 66.66667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.33333%; } + .column.is-offset-10-mobile { + margin-left: 83.33333%; } + .column.is-11-mobile { + flex: none; + width: 91.66667%; } + .column.is-offset-11-mobile { + margin-left: 91.66667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.33333%; } + .column.is-offset-1-touch { + margin-left: 8.33333%; } + .column.is-2-touch { + flex: none; + width: 16.66667%; } + .column.is-offset-2-touch { + margin-left: 16.66667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.33333%; } + .column.is-offset-4-touch { + margin-left: 33.33333%; } + .column.is-5-touch { + flex: none; + width: 41.66667%; } + .column.is-offset-5-touch { + margin-left: 41.66667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.33333%; } + .column.is-offset-7-touch { + margin-left: 58.33333%; } + .column.is-8-touch { + flex: none; + width: 66.66667%; } + .column.is-offset-8-touch { + margin-left: 66.66667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.33333%; } + .column.is-offset-10-touch { + margin-left: 83.33333%; } + .column.is-11-touch { + flex: none; + width: 91.66667%; } + .column.is-offset-11-touch { + margin-left: 91.66667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.33333%; } + .column.is-offset-1-desktop { + margin-left: 8.33333%; } + .column.is-2-desktop { + flex: none; + width: 16.66667%; } + .column.is-offset-2-desktop { + margin-left: 16.66667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.33333%; } + .column.is-offset-4-desktop { + margin-left: 33.33333%; } + .column.is-5-desktop { + flex: none; + width: 41.66667%; } + .column.is-offset-5-desktop { + margin-left: 41.66667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.33333%; } + .column.is-offset-7-desktop { + margin-left: 58.33333%; } + .column.is-8-desktop { + flex: none; + width: 66.66667%; } + .column.is-offset-8-desktop { + margin-left: 66.66667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.33333%; } + .column.is-offset-10-desktop { + margin-left: 83.33333%; } + .column.is-11-desktop { + flex: none; + width: 91.66667%; } + .column.is-offset-11-desktop { + margin-left: 91.66667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.33333%; } + .tile.is-2 { + flex: none; + width: 16.66667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.33333%; } + .tile.is-5 { + flex: none; + width: 41.66667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.33333%; } + .tile.is-8 { + flex: none; + width: 66.66667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.33333%; } + .tile.is-11 { + flex: none; + width: 91.66667%; } + .tile.is-12 { + flex: none; + width: 100%; } } + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .content kbd.hero .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover, .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } + +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #b8dffa; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #9beeb8; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ff857e; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: #fff; } + .admonition.is-compat { + background-color: #99e6f0; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 1em 1.25em; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; + padding: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +/* This file contain the overall layout. + * + * The main container is
            that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; } + +/* Base color: saturation 0; */ +.hljs, +.hljs-subst { + color: #444; } + +.hljs-comment { + color: #888888; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR19/assets/themeswap.js b/previews/PR19/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR19/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR19/boundary_conditions_doc/index.html b/previews/PR19/boundary_conditions_doc/index.html new file mode 100644 index 000000000..c7ec4437a --- /dev/null +++ b/previews/PR19/boundary_conditions_doc/index.html @@ -0,0 +1,42 @@ + +Boundary Conditions (BCs) · CouplerMachine

            Boundary Conditions (BCs)

            This section attempts to bridge mathematical considerations of BCs and their implementations in climate models.

            Types of boundary conditions

            1. Dirichlet $θ = f$
            2. Neumann $\partial θ / \partial n = f$
            3. Robin $c_1θ + c_2\partial θ / \partial n = f$
            4. Cauchy $θ = f_1$ $\partial θ / \partial n = f_2$
            5. Mixed
              • a mix of the above, each applied at a different section of the boundary

            Well-posedness and general context

            • Well-posedness, or the availability of a unique robust solution, is easier to prove in some problems than others. For example, using the heat-diffusion equation this section demonstrates that some combinations of the above boundary conditions do not produce a unique solution. The problem of imposing boundary conditions in climate models is more complex, so well-posedness is more difficult to prove analytically, as discussed below.

            • Examples of imposing BCs:

              1. Diffusion equation in steady state

                • The prognostic heat equation rewritten in terms of potential temperature, $θ$, is:

                $\frac{\partial θ}{\partial t} = - ∇ \cdot (κ ∇ θ)$

                • for simplicity, we assume a steady state ($\partial / \partial t = 0$), a diffusivity of $\kappa = 1$ m$^2$ s$^{-1}$ and that we're only in 1D (i.e. $∇ = \partial / \partial x$). Solving this requires two BCs in space (assuming we have no constraints in time), so we have:

                $\frac{\partial^2 θ}{\partial x^2} = 0$

                • upon integration in $x$ we expect

                $\frac{\partial θ}{\partial x} = c_1$ and $x = c_1x + c_2$, where $c_1$ and $c_2$ are set by the boundary conditions.

                • If we have two Neumann boundary conditions (e.g. $dT/dx = 1$ at both $x_0$ = 1 and $x_N$ ), we can only obtain $c_1$ and the solution is not unique. We therefore need one of the boundaries to be constrained using a Dirichlet BC.
              2. Advection-diffusion equation with a linear flux

                • stepping up the ladder of complexity is the advection diffusion problem: $\frac{\partial θ}{\partial t} = - ∇ \cdot (\vec{u} \theta + κ ∇ θ) = - ∇ \cdot (F_{non-diffusive} + F_{diffusive})$
                • Miyaoka et al 17 have shown that by taking advantage of mass conservation, it is possible to derive a general BC for the advection-diffusion problem, as long as the flux is linear in $\theta$ (e.g. $\vec{u}(x,y,z)$). Evidently, this is still insufficient for climate modelling purposes.
              3. Navier Stokes and climate models

                • well-posedness of the NS equations is still unknown (after all it is one of the Clay Mathematics Institute's Millennium Problems)
                • in climate modelling it is often considered sufficient to use the general rule of thumb and use as many BCs as we have derivatives, without explicitly proving that the problem is analytically well posed.
                • we implicitly assume mass conservation and the divergence theorem like in the Miyaoka et al 17 study above
                • in practice, for global atmospheric models there are different constraints on each of the two boundaries:
                  • lower boundary of the atmosphere
                    • Impenetrable: reflective BCs are imposed by setting $w=0$ and the tangential wind remains unchanged. This is the FreeSlip() BC for momentum, Impenetrable() for mass and Insulating() for energy/moisture/tracers which may be used for atmosphere-only idealized studies.
                    • Prescribed: it is common to prescribe a constant (or variable if coupled to another model) surface temperature. This allows calculation of a surface sensible and latent heat fluxes, which are then added to any other sources of heat at the surface (e.g. radiation fluxes, etc). Once all surface fluxes are summed up, they are then passed to the atmospheric model as fluxes that enter the prognostic equations at the boundaries. E.g. see the Prescribed() BC, and CoupledPrimary(), CoupledSecondary() BCs for more complex setups.
                  • upper boundary of the atmosphere
                    • Impenetrable: reflective BCs are imposed by setting $w=0$ and the tangential wind remains unchanged. This is the FreeSlip() BC for momentum, Impenetrable() for mass and Insulating() for energy/moisture/tracers which may be used for atmosphere-only idealized studies.
                    • Open: it is undesirable to produce reflection in the upper levels, but open BCs are more difficult to implement
                    • Sponge layer: an alternative to the above can be obtained by artificial (often linear or 2nd order) damping in the upper levels. The down side is that this sponge layer ofen takes up a substantial part of the model's depth.

            Implementation in the ClimateMachine.jl

            Boundaries in DG:
            +    __________-  bc +
            +   | element  |  |  |            - = internal state
            +   | in       |  |  |           bc = boundary state 
            +   | question |  |  |            + = ghost state
            +   |__________|  |  |
            +              \__ __/
            +                 V
            +    same location in space
            • BCs in ClimateMachine.jl are imposed separately for the different compute kernels as illustrated by the CMFlowChart.
            • For the AtmosModel, the BCs that need to be considered are:

            Mass

            • Impenetrable():

              • no normal component of mass flux, which means $u$ at $bc$: $u_{bc} = \vec{u}^- - (\hat{n} \cdot u^-) \hat{n}$

              • In conjunction with the CentralNumericalFlux at the boundary, this can be imposed via the ghost state as:

                  # use CentralNumericalFlux with this reflective ghost state  ​
                +  function atmos_momentum_boundary_state!(_...)
                +          ​state⁺.ρu = state⁻.ρu - 2 * dot(state⁻.ρu, n) .* SVector(n) 
                +  ​end
            • Penetrable():

              • this means no boundary condition (free surface)

                  # use the transmissive boundary flux: 
                +  function atmos_momentum_boundary_state!(_...)
                +          ​state⁺.ρu = state⁻.ρu
                +  ​end

            Momentum

            • NoSlip():

              • this means $u$ vanishes are the boundary (i.e. Dirichlet BC), so that $u_{bc} = 0$

              • In conjunction with the CentralNumericalFlux at the boundary, this can be imposed via the ghost state as:

                  function atmos_momentum_boundary_state!(nf::Union{NumericalFluxFirstOrder, NumericalFluxGradient}, _...)
                +      state⁺.ρu = -state⁻.ρu
                +  end
                +  
                +  # a stabilising penalty term can be used here:
                +  numerical_boundary_flux_first_order!(_...) = ... end
                +
                +  atmos_momentum_normal_boundary_flux_second_order!(_...) = nothing # no contribution from nF_diffusive
            • FreeSlip(): $\nabla_h \cdot\vec{u} = 0$, $\hat{n} \cdot u = 0$

              • no diffusive normal flux at the boundary and no drag on the tangential components
              • \[u_{bc}\]

                is determined by the mass flux BC above
                    function atmos_momentum_boundary_state!(nf::NumericalFluxFirstOrder, _...)
            +                state⁺.ρu -= 2 * dot(state⁻.ρu, n) .* SVector(n) # reflective to impose no normal flux
            +        end
            +        function atmos_momentum_boundary_state!(nf::NumericalFluxGradient, _...)
            +                state⁺.ρu -= dot(state⁻.ρu, n) .* SVector(n) # non-reflective to capture the sign of the gradient
            +        end
            +        atmos_momentum_normal_boundary_flux_second_order!(_...) = nothing  # no contribution from nF_diffusive
            • DragLaw():

              • use momentum constraints on $u_{bc}$, just like FreeSlip(), but with a non-zero second-order normal flux (nF_diffusive)

                  function atmos_momentum_boundary_state!(nf::Union{NumericalFluxFirstOrder, NumericalFluxGradient}, _...)
                +      atmos_momentum_boundary_state!(nf, Impenetrable(FreeSlip()), _...)
                +  end
                +  function atmos_momentum_normal_boundary_flux_second_order!(_...)
                +      fluxᵀn.ρu += C * state⁻.ρ * |u_h| * u_h # contribution from nF_diffusive
                +  end

            Energy / Moisture / Tracers

            • Insulating():

              • no normal diffusive flux (nFdiffusive) across the boundary (homogeneous Neumann BC) imposed via the second order flux, with the first-order and gradient fluxes assuming u{bc}$ from the mass and momentum BCs for consistency

                  atmos_energy_boundary_state!(_...) 
                +      state⁺.ρe = state⁻.ρe
                +  end
                +  atmos_energy_normal_boundary_flux_second_order!( _...,) = nothing
            • Prescribed(), CoupledPrimary(), CoupledSecondary()

              • same as Insulating(), but with a non-zero second-order normal flux (nF_diffusive)

                  atmos_energy_boundary_state!(_...) 
                +      state⁺.ρe = state⁻.ρe
                +  end
                +  function atmos_energy_normal_boundary_flux_second_order!(_...)
                +      fluxᵀn.energy.ρe -= bc_energy.fn(state⁻, aux⁻, t)
                +  end

                where bc_energy.fn can be a flux value or a relaxation function to a surface temperature (e.g. see the slab land/ocean, bulk formulation, or the M-O flux-based NishizawaEnergyFlux function). NB: Dirichlet BC is not normally applied in this context.

            BC stability in DG for idealized problems (probably delete or expand?)

            • boundary fluxes (numerical + physical) are implementable in DG via boundary numerical fluxes, between the interior point ($x^-$) and its exterior ghost equivalent ($x^+$). These need to be applied depending on the problem at hand. For example in the advective problem, the BCs will need to consider the flow direction, so that information is carried in the correct direction (i.e. downstream).
            • Advection problem
              • Imposed BCs
                • A) Impose BCs via numerical fluxes
                  • e.g. central boundary flux (or another numerical flux, e.g. Rusanov):
                  $u\theta_{bc} = \frac{u\theta^- + u\theta^+}{2} = \frac{u\theta^- + f_0}{2}$
                • B) Impose the flux directly at the boundary: $u\theta_{bc} = f_0$ which is implemented via the ghost point as $\theta^+ = \theta^- + 2\theta_0 \rightarrow$ reflection principle
                • For an advective problem Lyapunov function analysis shows that A) is more dissipative (and stable) but B) is closer to the analytical conservation solution
              • Free endpoints / open boundaries $u\theta_{bc} = u\theta^-$ which is implemented as $\theta^+ = \theta^- \rightarrow$ transmissive / free boundary (endpoint is just what it is)
            • Diffusion problem
              • call the diffusive flux $\sigma = \kappa\partial_x \theta$
              • A) Neumann on $\theta$
                • is basically Dirichlet on $\sigma$, so that the boundary is transmissive $\theta$
                $\sigma_{bc} = \frac{\sigma^- + \sigma^+}{2}$ and $\sigma^+ = \sigma^- + 2f_0$
                • \[\theta_{bc} = \theta_0\]

                  or $\sigma_{bc} = 0$ are stable and conservative
              • B) Dirichlet
                • transmissive on $\sigma_{bc}$ and explicit BCs on $\theta_{bc}$ are stable and conservative
            • Advection-diffusion problem
              • best choice for the numerical solution to mimic the analytical solution is $u\theta_{bc} = 0$ and $\sigma_{bc}=\sigma^-$
              • best choice for sufficient dissipation (and thus a more stable solution) is $u\theta_{bc} = u\theta^- / 2$ and $\theta_{bc}=0$ and $\sigma_{bc}=\sigma^-$

            References:

            diff --git a/previews/PR19/coupledmodel/index.html b/previews/PR19/coupledmodel/index.html new file mode 100644 index 000000000..884b86973 --- /dev/null +++ b/previews/PR19/coupledmodel/index.html @@ -0,0 +1,14 @@ + +Coupled Model Components · CouplerMachine

            Coupled Model Components

            CouplerMachine provides a wrapper for model components so that they may connect to the coupler. The CplModel struct packages a component model with the information needed for the CplSolver to evolve it.

            CouplerMachine.CplModelType
            CplModel(; 
            +    grid,
            +    equations,
            +    nsteps::Int,
            +    boundary_z = 0.0,
            +    dt = 1.0,
            +    timestepper = LSRK54CarpenterKennedy,
            +    NFfirstorder = RusanovNumericalFlux(),
            +    NFsecondorder = CentralNumericalFluxSecondOrder(),
            +    NFgradient = CentralNumericalFluxGradient(),
            +    overint_params = nothing,
            +    callbacks = (),
            +)

            Builds an instance of a coupler test model. This is currently a toy model used for testing and designing coupling machinery. In a full-blown coupled experiment this model would be replaced by a full component model that is wrapped to format it for coupler compatibility.

            • grid the spectral element grid used by this model.
            • equations the Balance Law used by this model.
            • nsteps number of component steps to run during each coupling step.
            • boundary_z height above or below the air-sea interface of the coupled boundary.
            • dt component timestep to use on each component step.
            • timestepper the ODE solver used to advance the system.
            • NFfirstorder numerical flux to use for first order terms.
            • NFsecondorder numerical flux to use for second order terms.
            • NFgradient numerical flux to use for gradient terms.
            • overint_params overintegration parameters.
            • callbacks component-specific callbacks executed at inner time steps.

            Each returned model instance is independent and has its own grid, balance law, time stepper and other attributes. For now the code keeps some of these things the same for initial testing, including component timestepper and initial time (both of which need tweaking to use for real setups).

            A real model might have many more flags and/or may wrap the component creation very differently. Any component should allow itself to set a number of timesteps to execute with a certain timestep to synchronize with the coupling time scale.

            source
            diff --git a/previews/PR19/couplerstate/index.html b/previews/PR19/couplerstate/index.html new file mode 100644 index 000000000..14920f81c --- /dev/null +++ b/previews/PR19/couplerstate/index.html @@ -0,0 +1,9 @@ + +Coupler State · CouplerMachine

            Coupler State

            The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

            The CouplerMachine defines a type CplState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CplState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

            Coupler Object API

            CouplerMachine.CplStateType
            CplState()

            Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

            A field is exported by one component and imported by one or more other components.

            source
            CouplerMachine.coupler_register!Function
            Coupling.coupler_register!(
            +        coupler::CplState,
            +        fieldname::Symbol,
            +        fieldvalue,
            +        grid,
            +        datetime::DateTime,
            +        units::Unitful.Units = Unitful.NoUnits, 
            +    )

            Add a field to the coupler that is accessible with key fieldname.

            Arguments

            • coupler: coupler object the field is registered to.
            • fieldname: key to access the field in the coupler.
            • fieldvalue: data array of field values.
            • grid: grid the field is stored on.
            • datetime: time associated with the field state.
            • units: units associated with the field values. Dimensionless by default.
            source
            CouplerMachine.coupler_put!Function
            coupler_put!(coupler::CplState, fieldname::Symbol, fieldvalue, gridinfo, datetime::DateTime, units::Unitful.Units)

            Updates coupler field fieldname with fieldvalue, the field's value at time datetime.

            gridinfo and units inform the coupler of the format of the inputted data allowing conversion to match the grid and units of the coupler field.

            source
            CouplerMachine.coupler_getFunction
            coupler_get(coupler::CplState, fieldname::Symbol, gridinfo, datetime::DateTime, units::Unitful.Units)

            Retrieve data array corresponding to fieldname.

            Returns data on the grid specified by gridinfo and in the units of units. Checks that the coupler data field is the state at time datetime.

            source
            diff --git a/previews/PR19/generated/run_script_v2/index.html b/previews/PR19/generated/run_script_v2/index.html new file mode 100644 index 000000000..fb694df23 --- /dev/null +++ b/previews/PR19/generated/run_script_v2/index.html @@ -0,0 +1,212 @@ + +Advection-diffusion on a Sphere · CouplerMachine

            Advection-diffusion on a Sphere

            Setup

            • Passive advection of an anomaly using non-divergent horizontal flow on the sphere (currently 300km/s but switching to Williamson stream function)
            • Homogeneous tracer concentration of the outer shell couples to an inhomogeneous concentration of the inner shell

            Equations

            The RHS evaluation follows:

            \[\frac{\partial \theta}{\partial t} = - \nabla \cdot (\vec{u} \theta + \kappa \nabla \theta) \qquad\]

            where

            • $\theta$ is the tracer (e.g. potential temperature)
            • $\vec{u}(u,0,0)$ is a constant zonal velocity
            • $\kappa$ is the diffusivity tensor.

            Boundary Conditions

            • External boundary conditions (Neumann):

            \[\vec{n} \cdot \kappa \nabla \theta = 0 \qquad \text{at } z = 4\text{km}, -4\text{km}\]

            where $\vec{n}$ is the upward pointing unit normal vector at the boundary.

            • Primary coupled boundary condition (forced by secondary domain):

            \[\vec{n} \cdot \kappa_a \nabla \theta =f_a= \lambda (\theta - \theta_{secondary}) \qquad \text{at atmos } z = 0\]

            where $\lambda$ is a constant but will be replaced by a roughness coefficient factor in more complex test cases. $f_a$ and $\kappa_a$ are, respectively, the flux and diffusivity of the atmosphere component.

            • Secondary coupled boundary condition (accumulated flux by primary domain or prescribed flux):

            If accumulated,

            \[\vec{n} \cdot \kappa_o\nabla \theta = f_o \qquad \text{at ocean } z = 0 \text{ (or pseudo subsurface)} +and\]

            \[f_o = f_{accum} = \int_{\tau_0}^{\tau} f_a dt\]

            where $τ-τ_0$ gives the coupling cycle length. $f_o$ and $\kappa_o$ are, respectively, the flux and diffusivity of the atmosphere component, with $f_{accum}$ being the accumulated flux.

            ATMOS
            +------------- θ @z=0 [lowest atmos level]
            +  A
            + / \          f = n⋅κ_a ∇θ = λ(θ−θ_secondary​)
            +  |
            +------------- θ_secondary​ @z=0 [highest ocean level]
            +OCEAN

            Import packages

            using ClimateMachine, MPI
            +using ClimateMachine.DGMethods.NumericalFluxes
            +using ClimateMachine.DGMethods
            +
            +using ClimateMachine.ODESolvers
            +using ClimateMachine.ODESolvers: solve!
            +
            +using ClimateMachine.Atmos: SphericalOrientation, latitude, longitude, AtmosFilterPerturbations
            +
            +using CLIMAParameters
            +using CLIMAParameters.Planet: MSLP, R_d, day, grav, Omega, planet_radius
            +
            +using ClimateMachine.Mesh.Filters
            +
            +using ClimateMachine.BalanceLaws:
            +    BalanceLaw,
            +    AbstractStateType,
            +    Prognostic,
            +    Auxiliary,
            +    Gradient,
            +    GradientFlux,
            +    GradientLaplacian,
            +    Hyperdiffusive,
            +    UpwardIntegrals,
            +    DownwardIntegrals,
            +    vars_state,
            +    number_states
            +
            +using CouplerMachine
            +
            +using Unitful
            +using Dates: DateTime
            +using Statistics
            +using StaticArrays
            +
            +struct EarthParameterSet <: AbstractEarthParameterSet end
            +const param_set = EarthParameterSet()
            +
            +ClimateMachine.init()
            +FT = Float64
            +
            +## Shared functions
            +include("domains.jl")
            +include("abstractions.jl")
            +include("callbacks.jl")
            +
            +# Main balance law and its components
            +include("CplMainBL.jl")

            Set simulation parameters

            nstepsA = 10
            +nstepsO = 5
            +
            +#  Background atmos and ocean diffusivities
            +const κᵃʰ = FT(1e4) * 0.0
            +const κᵃᶻ = FT(1e-1)
            +const κᵒʰ = FT(1e3) * 0.0
            +const κᵒᶻ = FT(1e-4)
            +const τ_airsea = FT(60 * 86400)
            +const L_airsea = FT(500)
            +const λ_airsea = FT(L_airsea / τ_airsea)
            +coupling_lambda() = (λ_airsea)
            +const u_max = FT(1e-5) # max. advective velocity in radians

            Set up coupled model

            Define component models and initialize the coupler

            function main(::Type{FT}) where {FT}
            +
            +    # Domain - Spherical Shells
            +    # confusing name - better might be to use something like DeepSphericalShellDomain directly?
            +    ΩO = DeepSphericalShellDomain(radius = FT(planet_radius(param_set)) - FT(4e3), height = FT(4e3))
            +    ΩA = DeepSphericalShellDomain(radius = FT(planet_radius(param_set)) , height = FT(4e3))
            +
            +    # Grid
            +    nelem = (;horizontal = 8, vertical = 4)
            +    polynomialorder = (;horizontal = 5, vertical = 5)
            +    overintegrationorder = (;horizontal = 1, vertical = 1)
            +
            +    gridA = DiscontinuousSpectralElementGrid(ΩA, nelem, polynomialorder)
            +    gridO = DiscontinuousSpectralElementGrid(ΩO, nelem, polynomialorder)
            +
            +    # Numerics-specific options
            +    numerics = (NFfirstorder = CentralNumericalFluxFirstOrder(), NFsecondorder = PenaltyNumFluxDiffusive(),
            +                overint_params = (overintegrationorder, polynomialorder))
            +
            +    # Timestepping
            +    Δt_ = calculate_dt(gridA, wavespeed = u_max*(ΩA.radius), diffusivity = maximum([κᵃʰ, κᵃᶻ]) )
            +
            +    t_time, end_time = ( 0  , 20Δt_ )
            +
            +    # Collect spatial info, timestepping, balance law and DGmodel for the two components
            +    boundary_mask( xc, yc, zc ) = @. ( xc^2 + yc^2 + zc^2 )^0.5 ≈ planet_radius(param_set)

            1. Atmos component

                # Prop atmos functions to override defaults
            +    atmos_structure(λ, ϕ, r) = FT(30)#30.0 + 10.0 * cos(ϕ) * sin(5λ)
            +    atmos_θⁱⁿⁱᵗ(npt, el, x, y, z) = atmos_structure( lon(x,y,z), lat(x,y,z), rad(x,y,z) )                # Set atmosphere initial state function
            +    ##atmos_θ_shadowflux(θᵃ, θᵒ, npt, el, xc, yc, zc) = FT(0.0)
            +    atmos_θ_shadowflux(θᵃ, θᵒ, npt, el, xc, yc, zc) = is_surface(xc,yc,zc) ? (1.0 / τ_airsea) * (θᵃ - θᵒ) : 0.0 # Set atmosphere shadow boundary flux function
            +    atmos_calc_kappa_diff(_...) = κᵃʰ, κᵃʰ, κᵃᶻ               # Set atmos diffusion coeffs
            +    atmos_source_θ(θᵃ, npt, el, xc, yc, zc, θᵒ) = FT(0.0)     # Set atmos source!
            +    atmos_get_penalty_tau(_...) = FT(3.0 * 0.0)               # Set penalty term tau (for debugging)
            +
            +    ## Set atmos advective velocity (constant in time) and convert to Cartesian
            +    uˡᵒⁿ(λ, ϕ, r) = u_max * r * cos(ϕ)
            +    atmos_uⁱⁿⁱᵗ(npt, el, x, y, z) = (     0 * r̂(x,y,z)
            +                                        + 0 * ϕ̂(x,y,z)
            +                                        + uˡᵒⁿ(lon(x,y,z), lat(x,y,z), rad(x,y,z)) * λ̂(x,y,z) )
            +
            +    # Collect atmos props
            +    bl_propA = prop_defaults()
            +    bl_propA = (;bl_propA...,
            +                init_theta = atmos_θⁱⁿⁱᵗ,
            +                theta_shadow_boundary_flux = atmos_θ_shadowflux,
            +                calc_kappa_diff = atmos_calc_kappa_diff,
            +                source_theta = atmos_source_θ,
            +                get_penalty_tau = atmos_get_penalty_tau,
            +                coupling_lambda = coupling_lambda,
            +                init_u = atmos_uⁱⁿⁱᵗ
            +                )
            +    # Setup atmos component model
            +    mA = CplModel(;
            +        grid = gridA,
            +        equations = CplMainBL(
            +            bl_propA,
            +            (CoupledPrimaryBoundary(), ExteriorBoundary()),
            +            param_set,
            +        ),
            +        boundary_z = boundary_mask,
            +        nsteps = nstepsA,
            +        dt = Δt_/ nstepsA,
            +        timestepper = LSRK54CarpenterKennedy,
            +        numerics...,
            +    )

            2. Ocean component

                # Prop ocean functions to override defaults
            +    tropical_heating_1(λ, ϕ, r) = 30.0 + 10.0 * cos(ϕ) * sin(5λ)
            +    tropical_heating_2(λ, ϕ, r) = 30.0 + 10.0 * cos(ϕ) + 1 * sin(5λ) * cos(ϕ)
            +    tropical_heating(λ, ϕ, r) = tropical_heating_1(λ, ϕ, r)
            +    ocean_θⁱⁿⁱᵗ(npt, el, x, y, z) = tropical_heating( lon(x,y,z), lat(x,y,z), rad(x,y,z) )                    # Set ocean initial state function
            +    ocean_calc_kappa_diff(_...) = κᵒʰ, κᵒʰ, κᵒᶻ               # Set ocean diffusion coeffs
            +    ocean_source_θ(θᵃ, npt, el, xc, yc, zc, θᵒ) = FT(0.0)     # Set ocean source!
            +    ocean_get_penalty_tau(_...) = FT(0.15 * 0.0)               # Set penalty term tau (for debugging)
            +    ocean_uⁱⁿⁱᵗ(xc, yc, zc, npt, el) = SVector(FT(0.0), FT(0.0), FT(0.0)) # Set ocean advective velocity
            +
            +    # Collect ocean props
            +    bl_propO = prop_defaults()
            +    bl_propO = (;bl_propO...,
            +                init_theta = ocean_θⁱⁿⁱᵗ,
            +                calc_kappa_diff = ocean_calc_kappa_diff,
            +                source_theta = ocean_source_θ,
            +                get_penalty_tau = ocean_get_penalty_tau,
            +                coupling_lambda = coupling_lambda,
            +                init_u = ocean_uⁱⁿⁱᵗ,
            +                )
            +    # Setup ocean component model
            +    mO = CplModel(;
            +        grid = gridO,
            +        equations = CplMainBL(
            +            bl_propO,
            +            (ExteriorBoundary(), CoupledSecondaryBoundary()),
            +            param_set,
            +        ),
            +        boundary_z = boundary_mask,
            +        nsteps = nstepsO,
            +        dt = Δt_ / nstepsO,
            +        timestepper = LSRK54CarpenterKennedy,
            +        numerics...,
            +    )

            Create the coupler object for holding import/export fields and performs mappings and instantiate the coupled timestepper:

                coupler = CplState()
            +    coupler_register!(coupler, :Ocean_SST, deepcopy(mO.state.θ[mO.boundary]), mO.grid, DateTime(0), u"°C")
            +    coupler_register!(coupler, :Atmos_MeanAirSeaθFlux, deepcopy(mA.state.F_accum[mA.boundary]), mA.grid, DateTime(0), u"°C")

            Instantiate a coupled timestepper that steps forward the components and implements mapings between components export bondary states and other components imports.

                compA = (pre_step = preatmos, component_model = mA, post_step = postatmos)
            +    compO = (pre_step = preocean, component_model = mO, post_step = postocean)
            +    component_list = (atmosphere = compA, ocean = compO)
            +    cpl_solver = CplSolver(
            +        component_list = component_list,
            +        coupler = coupler,
            +        coupling_dt = Δt_,
            +        t0 = 0.0,
            +    )

            Creat callbacks and bundle the simulation:

                # For now applying callbacks only to atmos.
            +    callbacks = (
            +        ExponentialFiltering(),
            +        VTKOutput((
            +            iteration = string(5Δt_)*"ssecs" ,
            +            overdir ="output",
            +            overwrite = true,
            +            number_sample_points = 0
            +            )...,),
            +    )
            +
            +    simulation = (;
            +        coupled_odesolver = cpl_solver,
            +        odesolver = cpl_solver.component_list.atmosphere.component_model.stepper,
            +        state = cpl_solver.component_list.atmosphere.component_model.state,
            +        dgmodel =  cpl_solver.component_list.atmosphere.component_model.discretization,
            +        callbacks = callbacks,
            +        simtime = (t_time, end_time),
            +        name = "Coupler_UnitTest_ctrl",
            +        )
            +
            +    return simulation
            +end
            +
            +
            +function run(cpl_solver, numberofsteps, cbvector)
            +    # Run the model
            +    solve!(
            +        nothing,
            +        cpl_solver;
            +        numberofsteps = numberofsteps,
            +        callbacks = cbvector,
            +    )
            +end

            Run simulation

            simulation = main(Float64);
            +nsteps = Int(simulation.simtime[2] / simulation.coupled_odesolver.dt)
            +cbvector = create_callbacks(simulation, simulation.odesolver)
            +println("Initialized. Running...")
            +@time run(simulation.coupled_odesolver, nsteps, cbvector)

            This page was generated using Literate.jl.

            diff --git a/previews/PR19/generated/simple_2testcomp/index.html b/previews/PR19/generated/simple_2testcomp/index.html new file mode 100644 index 000000000..df3384717 --- /dev/null +++ b/previews/PR19/generated/simple_2testcomp/index.html @@ -0,0 +1,281 @@ + +Vertical Column Heat Diffusion · CouplerMachine

            Diffusion Equation in a Vertical Column

            Setup

            • A vertical diffusive column split over two Cartesian components (atmos & ocean columns)
            • Boundary conditions used to set diffusive flux in other components have different vertical discretizations and timesteps
            • The coupler maps fields between the two components

            Equations

            The RHS evaluation follows:

            \[\frac{\partial \theta}{\partial t} = - \nabla \cdot [\kappa(\phi_{init}) \nabla \phi]\]

            where

            • $\theta$ is the tracer (e.g. potential temperature)
            • $\kappa$ is the diffusivity tensor

            Import packages

            using ClimateMachine
            +using MPI
            +using Statistics
            +
            +# To couple
            +using CouplerMachine
            +using Unitful, Dates
            +
            +# To create meshes & grids
            +using ClimateMachine.Ocean.Domains
            +using ClimateMachine.Grids
            +import ClimateMachine.DGMethods.NumericalFluxes: NumericalFluxSecondOrder
            +
            +# To setup some callbacks
            +using ClimateMachine.GenericCallbacks
            +
            +# To invoke timestepper
            +using ClimateMachine.ODESolvers
            +using ClimateMachine.ODESolvers: solve!
            +using ClimateMachine.MPIStateArrays: weightedsum
            +
            +ClimateMachine.init()
            +const FT = Float64;
            +
            +if !(:CplTestingBL in names(Main))
            +    include("CplTestingBL.jl") # allows re-run of script without restarting julia
            +end
            +using .CplTestingBL

            Set simulation parameters

            couple_dt = 3600.0 # timestep at which coupled components sync
            +nstepsA = 10 # atmos steps per coupled timestep
            +nstepsO = 5 # ocean steps per coupled timestep
            +
            +#  Haney like relaxation time scale and a length scale (Haney, 1971).
            +#  Air-sea exchange vigor is governed by length/time-scale.
            +const τ_airsea = FT(60 * 86400)
            +const L_airsea = FT(500)
            +const λ_airsea = FT(L_airsea / τ_airsea)
            +function coupling_lambda()
            +    return (λ_airsea)
            +end;
            +
            +#  Background atmos and ocean diffusivities
            +const κᵃʰ = FT(1e4) * 0.0
            +const κᵃᶻ = FT(1e-1)
            +const κᵒʰ = FT(1e3) * 0.0
            +const κᵒᶻ = FT(1e-4)

            Set up coupled model

            Define component models and initialize the coupler

            function main(::Type{FT}) where {FT}
            +    # Domain
            +    Np = 4
            +    ΩA = RectangularDomain(
            +        Ne = (10, 10, 5),
            +        Np = Np,
            +        x = (0, 1e6),
            +        y = (0, 1e6),
            +        z = (0, 1e5),
            +        periodicity = (true, true, false),
            +    )
            +    ΩO = RectangularDomain(
            +        Ne = (10, 10, 4),
            +        Np = Np,
            +        x = (0, 1e6),
            +        y = (0, 1e6),
            +        z = (-4e3, 0),
            +        periodicity = (true, true, false),
            +    )
            +
            +    # Grid
            +    btags = ((0,0),(0,0),(1,2))
            +    gridA = DiscontinuousSpectralElementGrid(ΩA; boundary_tags = btags)
            +    gridO = DiscontinuousSpectralElementGrid(ΩO; boundary_tags = btags)
            +
            +    # Numerics-specific options
            +    numerics = (NFsecondorder = CplTestingBL.PenaltyNumFluxDiffusive(),)
            +
            +    # Callbacks (TODO)
            +    callbacks = ()
            +
            +    # Collect spatial info, timestepping, balance law and DGmodel for the two components
            +
            +    # 1. Atmos component
            +    mA = CplModel(;
            +        grid = gridA,
            +        equations = CplTestBL(
            +            bl_propA,
            +            (CoupledPrimaryBoundary(), ExteriorBoundary()),
            +        ),
            +        nsteps = nstepsA,
            +        dt = couple_dt / nstepsA,
            +        numerics...,
            +    )
            +
            +    # 2. Ocean component
            +    mO = CplModel(;
            +        grid = gridO,
            +        equations = CplTestBL(
            +            bl_propO,
            +            (ExteriorBoundary(), CoupledSecondaryBoundary()),
            +        ),
            +        nsteps = nstepsO,
            +        dt = couple_dt / nstepsO,
            +        numerics...,
            +    )

            Create the coupler object for holding import/export fields and performs mappings and instantiate the coupled timestepper:

                coupler = CplState()
            +    coupler_register!(coupler, :Ocean_SST, deepcopy(mO.state.θ[mO.boundary]), mO.grid, DateTime(0), u"°C")
            +    coupler_register!(coupler, :Atmos_MeanAirSeaθFlux, deepcopy(mA.state.F_accum[mA.boundary]), mA.grid, DateTime(0), u"°C")
            +
            +    compA = (pre_step = preatmos, component_model = mA, post_step = postatmos)
            +    compO = (pre_step = preocean, component_model = mO, post_step = postocean)
            +    component_list = (atmosphere = compA, ocean = compO)
            +    cpl_solver = CplSolver(
            +        component_list = component_list,
            +        coupler = coupler,
            +        coupling_dt = couple_dt,
            +        t0 = 0.0,
            +    )
            +
            +    return cpl_solver, callbacks
            +end
            +
            +function run(cpl_solver, numberofsteps, cbvector)
            +    solve!(
            +        nothing,
            +        cpl_solver;
            +        numberofsteps = numberofsteps,
            +        callbacks = cbvector,
            +    )
            +end
            run (generic function with 1 method)

            Define pre_step and post_step functions

            Each component model must define pre_step and post_step functions. In the pre_step, a component imports necessary boundary state and flux data from the coupler. In the post_step, a component exports boundary data to the coupler to be later received by other components.

            function get_components(csolver)
            +    mA = csolver.component_list.atmosphere.component_model
            +    mO = csolver.component_list.ocean.component_model
            +    return mA, mO
            +end
            +
            +function preatmos(csolver)
            +    mA, mO = get_components(csolver)
            +
            +    # Set boundary SST used in atmos to SST of ocean surface at start of coupling cycle.
            +    mA.discretization.state_auxiliary.θ_secondary[mA.boundary] .=
            +        coupler_get(csolver.coupler, :Ocean_SST, mA.grid, DateTime(0), u"°C")
            +    # Set atmos boundary flux accumulator to 0.
            +    mA.state.F_accum .= 0
            +
            +    @info(
            +        "preatmos",
            +        time = csolver.t,
            +        total_θ_atmos = weightedsum(mA.state, 1),
            +        total_θ_ocean = weightedsum(mO.state, 1),
            +        total_θ = weightedsum(mA.state, 1) + weightedsum(mO.state, 1),
            +        atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),
            +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
            +    )
            +end
            +
            +function postatmos(csolver)
            +    mA, mO = get_components(csolver)
            +
            +    # Pass atmos exports to "coupler" namespace
            +    # 1. Save mean θ flux at the Atmos boundary during the coupling period
            +    coupler_put!(csolver.coupler, :Atmos_MeanAirSeaθFlux, mA.state.F_accum[mA.boundary] ./ csolver.dt,
            +        mA.grid, DateTime(0), u"°C")
            +
            +    @info(
            +        "postatmos",
            +        time = time = csolver.t + csolver.dt,
            +        total_θ_atmos = weightedsum(mA.state, 1),
            +        total_θ_ocean = weightedsum(mO.state, 1),
            +        total_F_accum = mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,
            +        total_θ =
            +            weightedsum(mA.state, 1) +
            +            weightedsum(mO.state, 1) +
            +            mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,
            +        F_accum_max = maximum(mA.state.F_accum[mA.boundary]),
            +        F_avg_max = maximum(mA.state.F_accum[mA.boundary] ./ csolver.dt),
            +        atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),
            +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
            +    )
            +end
            +
            +function preocean(csolver)
            +    mA, mO = get_components(csolver)
            +
            +    # Set mean air-sea theta flux
            +    mO.discretization.state_auxiliary.F_prescribed[mO.boundary] .=
            +        coupler_get(csolver.coupler, :Atmos_MeanAirSeaθFlux, mO.grid, DateTime(0), u"°C")
            +    # Set ocean boundary flux accumulator to 0. (this isn't used)
            +    mO.state.F_accum .= 0
            +
            +    @info(
            +        "preocean",
            +        time = csolver.t,
            +        F_prescribed_max =
            +            maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),
            +        F_prescribed_min =
            +            maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),
            +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
            +        ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),
            +    )
            +end
            +
            +function postocean(csolver)
            +    mA, mO = get_components(csolver)
            +    @info(
            +        "postocean",
            +        time = csolver.t + csolver.dt,
            +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
            +        ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),
            +    )
            +
            +    # Pass ocean exports to "coupler" namespace
            +    #  1. Ocean SST (value of θ at z=0)
            +    coupler_put!(csolver.coupler, :Ocean_SST, mO.state.θ[mO.boundary], mO.grid, DateTime(0), u"°C")
            +end
            postocean (generic function with 1 method)

            Specify balance law

            # Set atmosphere initial state function
            +function atmos_init_theta(xc, yc, zc, npt, el)
            +    return 30.0
            +end
            +# Set atmosphere shadow boundary flux function
            +function atmos_theta_shadow_boundary_flux(θᵃ, θᵒ, npt, el, xc, yc, zc)
            +    if zc == 0.0
            +        tflux = (1.0 / τ_airsea) * (θᵃ - θᵒ)
            +    else
            +        tflux = 0.0
            +    end
            +    return tflux
            +end
            +# Set atmsophere diffusion coeffs
            +function atmos_calc_kappa_diff(_...)
            +    return κᵃʰ, κᵃʰ, κᵃᶻ
            +end
            +# Set atmos source!
            +function atmos_source_theta(θᵃ, npt, el, xc, yc, zc, θᵒ)
            +    tsource = 0.0
            +    if zc == 0.0
            +        # tsource = -(1. / τ_airsea)*( θᵃ-θᵒ )
            +    end
            +    return tsource
            +end
            +# Set penalty term tau (for debugging)
            +function atmos_get_penalty_tau(_...)
            +    return FT(3.0 * 0.0)
            +end
            +# Create atmos component
            +bl_propA = CplTestingBL.prop_defaults()
            +
            +bl_propA = (;bl_propA..., init_theta = atmos_init_theta,
            +            theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)
            +bl_propA = (bl_propA..., init_theta = atmos_init_theta)
            +bl_propA =
            +    (bl_propA..., theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)
            +bl_propA = (bl_propA..., calc_kappa_diff = atmos_calc_kappa_diff)
            +bl_propA = (bl_propA..., source_theta = atmos_source_theta)
            +bl_propA = (bl_propA..., get_penalty_tau = atmos_get_penalty_tau)
            +bl_propA = (bl_propA..., coupling_lambda = coupling_lambda)
            +
            +# Set initial temperature profile
            +function ocean_init_theta(xc, yc, zc, npt, el)
            +    return 20.0
            +end
            +# Set boundary source imported from atmos
            +function ocean_source_theta(θ, npt, el, xc, yc, zc, air_sea_flux_import)
            +    sval = 0.0
            +    if zc == 0.0
            +        # sval=air_sea_flux_import
            +    end
            +    return sval
            +end
            +# Set ocean diffusion coeffs
            +function ocean_calc_kappa_diff(_...)
            +    # return κᵒʰ,κᵒʰ,κᵒᶻ*FT(100.)
            +    return κᵒʰ, κᵒʰ, κᵒᶻ # m^2 s^-1
            +end
            +# Set penalty term tau (for debugging)
            +function ocean_get_penalty_tau(_...)
            +    return FT(0.15 * 0.0)
            +end
            +# Create ocean component
            +bl_propO = CplTestingBL.prop_defaults()
            +bl_propO = (bl_propO..., init_theta = ocean_init_theta)
            +bl_propO = (bl_propO..., source_theta = ocean_source_theta)
            +bl_propO = (bl_propO..., calc_kappa_diff = ocean_calc_kappa_diff)
            +bl_propO = (bl_propO..., get_penalty_tau = ocean_get_penalty_tau)
            +bl_propO = (bl_propO..., coupling_lambda = coupling_lambda)

            Run simulation

            simulation, cbvector = main(Float64);
            +nsteps = 10
            +println("Initialized. Running...")
            +run(simulation, nsteps, cbvector)

            This page was generated using Literate.jl.

            diff --git a/previews/PR19/images/cplsetup.png b/previews/PR19/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR19/index.html b/previews/PR19/index.html new file mode 100644 index 000000000..a9c28feb7 --- /dev/null +++ b/previews/PR19/index.html @@ -0,0 +1,2 @@ + +Home · CouplerMachine

            CouplerMachine.jl

            Coupling CliMA Models

            CouplerMachine.jl provides a means to couple climate model components from and within ClimateMachine.jl and Oceananigans.jl. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

            • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
            • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

            The CouplerMachine supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

            Coupler Scheme
            CouplerMachine allows for independent development of interchangeable component models.
            diff --git a/previews/PR19/search/index.html b/previews/PR19/search/index.html new file mode 100644 index 000000000..03a5c6973 --- /dev/null +++ b/previews/PR19/search/index.html @@ -0,0 +1,2 @@ + +Search · CouplerMachine

            Loading search...

              diff --git a/previews/PR19/search_index.js b/previews/PR19/search_index.js new file mode 100644 index 000000000..f313a4f7b --- /dev/null +++ b/previews/PR19/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"EditURL = \"https://github.com/CliMA/CouplerMachine/blob/master/experiments/ClimateMachine/DesignTests/simple_2testcomp.jl\"","category":"page"},{"location":"generated/simple_2testcomp/#Diffusion-Equation-in-a-Vertical-Column","page":"Vertical Column Heat Diffusion","title":"Diffusion Equation in a Vertical Column","text":"","category":"section"},{"location":"generated/simple_2testcomp/#Setup","page":"Vertical Column Heat Diffusion","title":"Setup","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"A vertical diffusive column split over two Cartesian components (atmos & ocean columns)\nBoundary conditions used to set diffusive flux in other components have different vertical discretizations and timesteps\nThe coupler maps fields between the two components","category":"page"},{"location":"generated/simple_2testcomp/#Equations","page":"Vertical Column Heat Diffusion","title":"Equations","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"The RHS evaluation follows:","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"fracpartial thetapartial t = - nabla cdot kappa(phi_init) nabla phi","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"where","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"theta is the tracer (e.g. potential temperature)\nkappa is the diffusivity tensor","category":"page"},{"location":"generated/simple_2testcomp/#Import-packages","page":"Vertical Column Heat Diffusion","title":"Import packages","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"using ClimateMachine\nusing MPI\nusing Statistics\n\n# To couple\nusing CouplerMachine\nusing Unitful, Dates\n\n# To create meshes & grids\nusing ClimateMachine.Ocean.Domains\nusing ClimateMachine.Grids\nimport ClimateMachine.DGMethods.NumericalFluxes: NumericalFluxSecondOrder\n\n# To setup some callbacks\nusing ClimateMachine.GenericCallbacks\n\n# To invoke timestepper\nusing ClimateMachine.ODESolvers\nusing ClimateMachine.ODESolvers: solve!\nusing ClimateMachine.MPIStateArrays: weightedsum\n\nClimateMachine.init()\nconst FT = Float64;\n\nif !(:CplTestingBL in names(Main))\n include(\"CplTestingBL.jl\") # allows re-run of script without restarting julia\nend\nusing .CplTestingBL","category":"page"},{"location":"generated/simple_2testcomp/#Set-simulation-parameters","page":"Vertical Column Heat Diffusion","title":"Set simulation parameters","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"couple_dt = 3600.0 # timestep at which coupled components sync\nnstepsA = 10 # atmos steps per coupled timestep\nnstepsO = 5 # ocean steps per coupled timestep\n\n# Haney like relaxation time scale and a length scale (Haney, 1971).\n# Air-sea exchange vigor is governed by length/time-scale.\nconst τ_airsea = FT(60 * 86400)\nconst L_airsea = FT(500)\nconst λ_airsea = FT(L_airsea / τ_airsea)\nfunction coupling_lambda()\n return (λ_airsea)\nend;\n\n# Background atmos and ocean diffusivities\nconst κᵃʰ = FT(1e4) * 0.0\nconst κᵃᶻ = FT(1e-1)\nconst κᵒʰ = FT(1e3) * 0.0\nconst κᵒᶻ = FT(1e-4)","category":"page"},{"location":"generated/simple_2testcomp/#Set-up-coupled-model","page":"Vertical Column Heat Diffusion","title":"Set up coupled model","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"Define component models and initialize the coupler","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"function main(::Type{FT}) where {FT}\n # Domain\n Np = 4\n ΩA = RectangularDomain(\n Ne = (10, 10, 5),\n Np = Np,\n x = (0, 1e6),\n y = (0, 1e6),\n z = (0, 1e5),\n periodicity = (true, true, false),\n )\n ΩO = RectangularDomain(\n Ne = (10, 10, 4),\n Np = Np,\n x = (0, 1e6),\n y = (0, 1e6),\n z = (-4e3, 0),\n periodicity = (true, true, false),\n )\n\n # Grid\n btags = ((0,0),(0,0),(1,2))\n gridA = DiscontinuousSpectralElementGrid(ΩA; boundary_tags = btags)\n gridO = DiscontinuousSpectralElementGrid(ΩO; boundary_tags = btags)\n\n # Numerics-specific options\n numerics = (NFsecondorder = CplTestingBL.PenaltyNumFluxDiffusive(),)\n\n # Callbacks (TODO)\n callbacks = ()\n\n # Collect spatial info, timestepping, balance law and DGmodel for the two components\n\n # 1. Atmos component\n mA = CplModel(;\n grid = gridA,\n equations = CplTestBL(\n bl_propA,\n (CoupledPrimaryBoundary(), ExteriorBoundary()),\n ),\n nsteps = nstepsA,\n dt = couple_dt / nstepsA,\n numerics...,\n )\n\n # 2. Ocean component\n mO = CplModel(;\n grid = gridO,\n equations = CplTestBL(\n bl_propO,\n (ExteriorBoundary(), CoupledSecondaryBoundary()),\n ),\n nsteps = nstepsO,\n dt = couple_dt / nstepsO,\n numerics...,\n )","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"Create the coupler object for holding import/export fields and performs mappings and instantiate the coupled timestepper:","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":" coupler = CplState()\n coupler_register!(coupler, :Ocean_SST, deepcopy(mO.state.θ[mO.boundary]), mO.grid, DateTime(0), u\"°C\")\n coupler_register!(coupler, :Atmos_MeanAirSeaθFlux, deepcopy(mA.state.F_accum[mA.boundary]), mA.grid, DateTime(0), u\"°C\")\n\n compA = (pre_step = preatmos, component_model = mA, post_step = postatmos)\n compO = (pre_step = preocean, component_model = mO, post_step = postocean)\n component_list = (atmosphere = compA, ocean = compO)\n cpl_solver = CplSolver(\n component_list = component_list,\n coupler = coupler,\n coupling_dt = couple_dt,\n t0 = 0.0,\n )\n\n return cpl_solver, callbacks\nend\n\nfunction run(cpl_solver, numberofsteps, cbvector)\n solve!(\n nothing,\n cpl_solver;\n numberofsteps = numberofsteps,\n callbacks = cbvector,\n )\nend","category":"page"},{"location":"generated/simple_2testcomp/#Define-pre_step-and-post_step-functions","page":"Vertical Column Heat Diffusion","title":"Define pre_step and post_step functions","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"Each component model must define pre_step and post_step functions. In the pre_step, a component imports necessary boundary state and flux data from the coupler. In the post_step, a component exports boundary data to the coupler to be later received by other components.","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"function get_components(csolver)\n mA = csolver.component_list.atmosphere.component_model\n mO = csolver.component_list.ocean.component_model\n return mA, mO\nend\n\nfunction preatmos(csolver)\n mA, mO = get_components(csolver)\n\n # Set boundary SST used in atmos to SST of ocean surface at start of coupling cycle.\n mA.discretization.state_auxiliary.θ_secondary[mA.boundary] .=\n coupler_get(csolver.coupler, :Ocean_SST, mA.grid, DateTime(0), u\"°C\")\n # Set atmos boundary flux accumulator to 0.\n mA.state.F_accum .= 0\n\n @info(\n \"preatmos\",\n time = csolver.t,\n total_θ_atmos = weightedsum(mA.state, 1),\n total_θ_ocean = weightedsum(mO.state, 1),\n total_θ = weightedsum(mA.state, 1) + weightedsum(mO.state, 1),\n atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n )\nend\n\nfunction postatmos(csolver)\n mA, mO = get_components(csolver)\n\n # Pass atmos exports to \"coupler\" namespace\n # 1. Save mean θ flux at the Atmos boundary during the coupling period\n coupler_put!(csolver.coupler, :Atmos_MeanAirSeaθFlux, mA.state.F_accum[mA.boundary] ./ csolver.dt,\n mA.grid, DateTime(0), u\"°C\")\n\n @info(\n \"postatmos\",\n time = time = csolver.t + csolver.dt,\n total_θ_atmos = weightedsum(mA.state, 1),\n total_θ_ocean = weightedsum(mO.state, 1),\n total_F_accum = mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,\n total_θ =\n weightedsum(mA.state, 1) +\n weightedsum(mO.state, 1) +\n mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,\n F_accum_max = maximum(mA.state.F_accum[mA.boundary]),\n F_avg_max = maximum(mA.state.F_accum[mA.boundary] ./ csolver.dt),\n atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n )\nend\n\nfunction preocean(csolver)\n mA, mO = get_components(csolver)\n\n # Set mean air-sea theta flux\n mO.discretization.state_auxiliary.F_prescribed[mO.boundary] .=\n coupler_get(csolver.coupler, :Atmos_MeanAirSeaθFlux, mO.grid, DateTime(0), u\"°C\")\n # Set ocean boundary flux accumulator to 0. (this isn't used)\n mO.state.F_accum .= 0\n\n @info(\n \"preocean\",\n time = csolver.t,\n F_prescribed_max =\n maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),\n F_prescribed_min =\n maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),\n )\nend\n\nfunction postocean(csolver)\n mA, mO = get_components(csolver)\n @info(\n \"postocean\",\n time = csolver.t + csolver.dt,\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),\n )\n\n # Pass ocean exports to \"coupler\" namespace\n # 1. Ocean SST (value of θ at z=0)\n coupler_put!(csolver.coupler, :Ocean_SST, mO.state.θ[mO.boundary], mO.grid, DateTime(0), u\"°C\")\nend","category":"page"},{"location":"generated/simple_2testcomp/#Specify-balance-law","page":"Vertical Column Heat Diffusion","title":"Specify balance law","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"# Set atmosphere initial state function\nfunction atmos_init_theta(xc, yc, zc, npt, el)\n return 30.0\nend\n# Set atmosphere shadow boundary flux function\nfunction atmos_theta_shadow_boundary_flux(θᵃ, θᵒ, npt, el, xc, yc, zc)\n if zc == 0.0\n tflux = (1.0 / τ_airsea) * (θᵃ - θᵒ)\n else\n tflux = 0.0\n end\n return tflux\nend\n# Set atmsophere diffusion coeffs\nfunction atmos_calc_kappa_diff(_...)\n return κᵃʰ, κᵃʰ, κᵃᶻ\nend\n# Set atmos source!\nfunction atmos_source_theta(θᵃ, npt, el, xc, yc, zc, θᵒ)\n tsource = 0.0\n if zc == 0.0\n # tsource = -(1. / τ_airsea)*( θᵃ-θᵒ )\n end\n return tsource\nend\n# Set penalty term tau (for debugging)\nfunction atmos_get_penalty_tau(_...)\n return FT(3.0 * 0.0)\nend\n# Create atmos component\nbl_propA = CplTestingBL.prop_defaults()\n\nbl_propA = (;bl_propA..., init_theta = atmos_init_theta,\n theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)\nbl_propA = (bl_propA..., init_theta = atmos_init_theta)\nbl_propA =\n (bl_propA..., theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)\nbl_propA = (bl_propA..., calc_kappa_diff = atmos_calc_kappa_diff)\nbl_propA = (bl_propA..., source_theta = atmos_source_theta)\nbl_propA = (bl_propA..., get_penalty_tau = atmos_get_penalty_tau)\nbl_propA = (bl_propA..., coupling_lambda = coupling_lambda)\n\n# Set initial temperature profile\nfunction ocean_init_theta(xc, yc, zc, npt, el)\n return 20.0\nend\n# Set boundary source imported from atmos\nfunction ocean_source_theta(θ, npt, el, xc, yc, zc, air_sea_flux_import)\n sval = 0.0\n if zc == 0.0\n # sval=air_sea_flux_import\n end\n return sval\nend\n# Set ocean diffusion coeffs\nfunction ocean_calc_kappa_diff(_...)\n # return κᵒʰ,κᵒʰ,κᵒᶻ*FT(100.)\n return κᵒʰ, κᵒʰ, κᵒᶻ # m^2 s^-1\nend\n# Set penalty term tau (for debugging)\nfunction ocean_get_penalty_tau(_...)\n return FT(0.15 * 0.0)\nend\n# Create ocean component\nbl_propO = CplTestingBL.prop_defaults()\nbl_propO = (bl_propO..., init_theta = ocean_init_theta)\nbl_propO = (bl_propO..., source_theta = ocean_source_theta)\nbl_propO = (bl_propO..., calc_kappa_diff = ocean_calc_kappa_diff)\nbl_propO = (bl_propO..., get_penalty_tau = ocean_get_penalty_tau)\nbl_propO = (bl_propO..., coupling_lambda = coupling_lambda)","category":"page"},{"location":"generated/simple_2testcomp/#Run-simulation","page":"Vertical Column Heat Diffusion","title":"Run simulation","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"simulation, cbvector = main(Float64);\nnsteps = 10\nprintln(\"Initialized. Running...\")\nrun(simulation, nsteps, cbvector)","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"","category":"page"},{"location":"generated/simple_2testcomp/","page":"Vertical Column Heat Diffusion","title":"Vertical Column Heat Diffusion","text":"This page was generated using Literate.jl.","category":"page"},{"location":"boundary_conditions_doc/#Boundary-Conditions-(BCs)","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"This section attempts to bridge mathematical considerations of BCs and their implementations in climate models.","category":"page"},{"location":"boundary_conditions_doc/#Types-of-boundary-conditions","page":"Boundary Conditions (BCs)","title":"Types of boundary conditions","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"Dirichlet θ = f\nNeumann partial θ partial n = f\nRobin c_1θ + c_2partial θ partial n = f\nCauchy θ = f_1 partial θ partial n = f_2\nMixed\na mix of the above, each applied at a different section of the boundary","category":"page"},{"location":"boundary_conditions_doc/#Well-posedness-and-general-context","page":"Boundary Conditions (BCs)","title":"Well-posedness and general context","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"Well-posedness, or the availability of a unique robust solution, is easier to prove in some problems than others. For example, using the heat-diffusion equation this section demonstrates that some combinations of the above boundary conditions do not produce a unique solution. The problem of imposing boundary conditions in climate models is more complex, so well-posedness is more difficult to prove analytically, as discussed below. \nExamples of imposing BCs: \nDiffusion equation in steady state\nThe prognostic heat equation rewritten in terms of potential temperature, θ, is:\nfracpartial θpartial t = - cdot (κ θ)\nfor simplicity, we assume a steady state (partial partial t = 0), a diffusivity of kappa = 1 m^2 s^-1 and that we're only in 1D (i.e. = partial partial x). Solving this requires two BCs in space (assuming we have no constraints in time), so we have: \nfracpartial^2 θpartial x^2 = 0\nupon integration in x we expect \nfracpartial θpartial x = c_1 and x = c_1x + c_2, where c_1 and c_2 are set by the boundary conditions. \nIf we have two Neumann boundary conditions (e.g. dTdx = 1 at both x_0 = 1 and x_N ), we can only obtain c_1 and the solution is not unique. We therefore need one of the boundaries to be constrained using a Dirichlet BC. \nAdvection-diffusion equation with a linear flux\nstepping up the ladder of complexity is the advection diffusion problem: fracpartial θpartial t = - cdot (vecu theta + κ θ) = - cdot (F_non-diffusive + F_diffusive)\nMiyaoka et al 17 have shown that by taking advantage of mass conservation, it is possible to derive a general BC for the advection-diffusion problem, as long as the flux is linear in theta (e.g. vecu(xyz)). Evidently, this is still insufficient for climate modelling purposes.\nNavier Stokes and climate models\nwell-posedness of the NS equations is still unknown (after all it is one of the Clay Mathematics Institute's Millennium Problems)\nin climate modelling it is often considered sufficient to use the general rule of thumb and use as many BCs as we have derivatives, without explicitly proving that the problem is analytically well posed. \nwe implicitly assume mass conservation and the divergence theorem like in the Miyaoka et al 17 study above\nin practice, for global atmospheric models there are different constraints on each of the two boundaries:\nlower boundary of the atmosphere\nImpenetrable: reflective BCs are imposed by setting w=0 and the tangential wind remains unchanged. This is the FreeSlip() BC for momentum, Impenetrable() for mass and Insulating() for energy/moisture/tracers which may be used for atmosphere-only idealized studies. \nPrescribed: it is common to prescribe a constant (or variable if coupled to another model) surface temperature. This allows calculation of a surface sensible and latent heat fluxes, which are then added to any other sources of heat at the surface (e.g. radiation fluxes, etc). Once all surface fluxes are summed up, they are then passed to the atmospheric model as fluxes that enter the prognostic equations at the boundaries. E.g. see the Prescribed() BC, and CoupledPrimary(), CoupledSecondary() BCs for more complex setups.\nupper boundary of the atmosphere\nImpenetrable: reflective BCs are imposed by setting w=0 and the tangential wind remains unchanged. This is the FreeSlip() BC for momentum, Impenetrable() for mass and Insulating() for energy/moisture/tracers which may be used for atmosphere-only idealized studies. \nOpen: it is undesirable to produce reflection in the upper levels, but open BCs are more difficult to implement\nSponge layer: an alternative to the above can be obtained by artificial (often linear or 2nd order) damping in the upper levels. The down side is that this sponge layer ofen takes up a substantial part of the model's depth. ","category":"page"},{"location":"boundary_conditions_doc/#Implementation-in-the-ClimateMachine.jl","page":"Boundary Conditions (BCs)","title":"Implementation in the ClimateMachine.jl","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"Boundaries in DG:\n __________- bc +\n | element | | | - = internal state\n | in | | | bc = boundary state \n | question | | | + = ghost state\n |__________| | |\n \\__ __/\n V\n same location in space","category":"page"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"BCs in ClimateMachine.jl are imposed separately for the different compute kernels as illustrated by the CMFlowChart.\nFor the AtmosModel, the BCs that need to be considered are:","category":"page"},{"location":"boundary_conditions_doc/#Mass","page":"Boundary Conditions (BCs)","title":"Mass","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"Impenetrable(): \nno normal component of mass flux, which means u at bc: u_bc = vecu^- - (hatn cdot u^-) hatn\nIn conjunction with the CentralNumericalFlux at the boundary, this can be imposed via the ghost state as:\n # use CentralNumericalFlux with this reflective ghost state ​\n function atmos_momentum_boundary_state!(_...)\n ​state⁺.ρu = state⁻.ρu - 2 * dot(state⁻.ρu, n) .* SVector(n) \n ​end\nPenetrable(): \nthis means no boundary condition (free surface)\n # use the transmissive boundary flux: \n function atmos_momentum_boundary_state!(_...)\n ​state⁺.ρu = state⁻.ρu\n ​end","category":"page"},{"location":"boundary_conditions_doc/#Momentum","page":"Boundary Conditions (BCs)","title":"Momentum","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"NoSlip(): \nthis means u vanishes are the boundary (i.e. Dirichlet BC), so that u_bc = 0\nIn conjunction with the CentralNumericalFlux at the boundary, this can be imposed via the ghost state as:\n function atmos_momentum_boundary_state!(nf::Union{NumericalFluxFirstOrder, NumericalFluxGradient}, _...)\n state⁺.ρu = -state⁻.ρu\n end\n \n # a stabilising penalty term can be used here:\n numerical_boundary_flux_first_order!(_...) = ... end\n\n atmos_momentum_normal_boundary_flux_second_order!(_...) = nothing # no contribution from nF_diffusive\nFreeSlip(): nabla_h cdotvecu = 0, hatn cdot u = 0\nno diffusive normal flux at the boundary and no drag on the tangential components\nu_bc\nis determined by the mass flux BC above","category":"page"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":" function atmos_momentum_boundary_state!(nf::NumericalFluxFirstOrder, _...)\n state⁺.ρu -= 2 * dot(state⁻.ρu, n) .* SVector(n) # reflective to impose no normal flux\n end\n function atmos_momentum_boundary_state!(nf::NumericalFluxGradient, _...)\n state⁺.ρu -= dot(state⁻.ρu, n) .* SVector(n) # non-reflective to capture the sign of the gradient\n end\n atmos_momentum_normal_boundary_flux_second_order!(_...) = nothing # no contribution from nF_diffusive","category":"page"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"DragLaw():\nuse momentum constraints on u_bc, just like FreeSlip(), but with a non-zero second-order normal flux (nF_diffusive) \n function atmos_momentum_boundary_state!(nf::Union{NumericalFluxFirstOrder, NumericalFluxGradient}, _...)\n atmos_momentum_boundary_state!(nf, Impenetrable(FreeSlip()), _...)\n end\n function atmos_momentum_normal_boundary_flux_second_order!(_...)\n fluxᵀn.ρu += C * state⁻.ρ * |u_h| * u_h # contribution from nF_diffusive\n end","category":"page"},{"location":"boundary_conditions_doc/#Energy-/-Moisture-/-Tracers","page":"Boundary Conditions (BCs)","title":"Energy / Moisture / Tracers","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"Insulating():\nno normal diffusive flux (nFdiffusive) across the boundary (homogeneous Neumann BC) imposed via the second order flux, with the first-order and gradient fluxes assuming u{bc}$ from the mass and momentum BCs for consistency\n atmos_energy_boundary_state!(_...) \n state⁺.ρe = state⁻.ρe\n end\n atmos_energy_normal_boundary_flux_second_order!( _...,) = nothing\nPrescribed(), CoupledPrimary(), CoupledSecondary()\nsame as Insulating(), but with a non-zero second-order normal flux (nF_diffusive)\n atmos_energy_boundary_state!(_...) \n state⁺.ρe = state⁻.ρe\n end\n function atmos_energy_normal_boundary_flux_second_order!(_...)\n fluxᵀn.energy.ρe -= bc_energy.fn(state⁻, aux⁻, t)\n end\nwhere bc_energy.fn can be a flux value or a relaxation function to a surface temperature (e.g. see the slab land/ocean, bulk formulation, or the M-O flux-based NishizawaEnergyFlux function). NB: Dirichlet BC is not normally applied in this context.","category":"page"},{"location":"boundary_conditions_doc/#BC-stability-in-DG-for-idealized-problems-(probably-delete-or-expand?)","page":"Boundary Conditions (BCs)","title":"BC stability in DG for idealized problems (probably delete or expand?)","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"boundary fluxes (numerical + physical) are implementable in DG via boundary numerical fluxes, between the interior point (x^-) and its exterior ghost equivalent (x^+). These need to be applied depending on the problem at hand. For example in the advective problem, the BCs will need to consider the flow direction, so that information is carried in the correct direction (i.e. downstream). \nAdvection problem\nImposed BCs\nA) Impose BCs via numerical fluxes\ne.g. central boundary flux (or another numerical flux, e.g. Rusanov):\nutheta_bc = fracutheta^- + utheta^+2 = fracutheta^- + f_02\nB) Impose the flux directly at the boundary: utheta_bc = f_0 which is implemented via the ghost point as theta^+ = theta^- + 2theta_0 rightarrow reflection principle\nFor an advective problem Lyapunov function analysis shows that A) is more dissipative (and stable) but B) is closer to the analytical conservation solution \nFree endpoints / open boundaries utheta_bc = utheta^- which is implemented as theta^+ = theta^- rightarrow transmissive / free boundary (endpoint is just what it is)\nDiffusion problem\ncall the diffusive flux sigma = kappapartial_x theta\nA) Neumann on theta\nis basically Dirichlet on sigma, so that the boundary is transmissive theta\nsigma_bc = fracsigma^- + sigma^+2 and sigma^+ = sigma^- + 2f_0\ntheta_bc = theta_0\nor sigma_bc = 0 are stable and conservative\nB) Dirichlet\ntransmissive on sigma_bc and explicit BCs on theta_bc are stable and conservative\nAdvection-diffusion problem\nbest choice for the numerical solution to mimic the analytical solution is utheta_bc = 0 and sigma_bc=sigma^-\nbest choice for sufficient dissipation (and thus a more stable solution) is utheta_bc = utheta^- 2 and theta_bc=0 and sigma_bc=sigma^-","category":"page"},{"location":"boundary_conditions_doc/#References:","page":"Boundary Conditions (BCs)","title":"References:","text":"","category":"section"},{"location":"boundary_conditions_doc/","page":"Boundary Conditions (BCs)","title":"Boundary Conditions (BCs)","text":"CliMA's numerics_old DesignDoc\nuseful Q&As \nTodd Lane's talk for climate modelling context","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"EditURL = \"https://github.com/CliMA/CouplerMachine/blob/master/experiments/ClimateMachine/AdvectionDiffusion/run_script_v2.jl\"","category":"page"},{"location":"generated/run_script_v2/#Advection-diffusion-on-a-Sphere","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"","category":"section"},{"location":"generated/run_script_v2/#Setup","page":"Advection-diffusion on a Sphere","title":"Setup","text":"","category":"section"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Passive advection of an anomaly using non-divergent horizontal flow on the sphere (currently 300km/s but switching to Williamson stream function)\nHomogeneous tracer concentration of the outer shell couples to an inhomogeneous concentration of the inner shell","category":"page"},{"location":"generated/run_script_v2/#Equations","page":"Advection-diffusion on a Sphere","title":"Equations","text":"","category":"section"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"The RHS evaluation follows:","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"fracpartial thetapartial t = - nabla cdot (vecu theta + kappa nabla theta) qquad","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"where","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"theta is the tracer (e.g. potential temperature)\nvecu(u00) is a constant zonal velocity\nkappa is the diffusivity tensor.","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Boundary Conditions","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"External boundary conditions (Neumann):","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"vecn cdot kappa nabla theta = 0 qquad textat z = 4textkm -4textkm","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"where vecn is the upward pointing unit normal vector at the boundary.","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Primary coupled boundary condition (forced by secondary domain):","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"vecn cdot kappa_a nabla theta =f_a= lambda (theta - theta_secondary) qquad textat atmos z = 0","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"where lambda is a constant but will be replaced by a roughness coefficient factor in more complex test cases. f_a and kappa_a are, respectively, the flux and diffusivity of the atmosphere component.","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Secondary coupled boundary condition (accumulated flux by primary domain or prescribed flux):","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"If accumulated,","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"vecn cdot kappa_onabla theta = f_o qquad textat ocean z = 0 text (or pseudo subsurface)\nand","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"f_o = f_accum = int_tau_0^tau f_a dt","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"where τ-τ_0 gives the coupling cycle length. f_o and kappa_o are, respectively, the flux and diffusivity of the atmosphere component, with f_accum being the accumulated flux.","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"ATMOS\n------------- θ @z=0 [lowest atmos level]\n A\n / \\ f = n⋅κ_a ∇θ = λ(θ−θ_secondary​)\n |\n------------- θ_secondary​ @z=0 [highest ocean level]\nOCEAN","category":"page"},{"location":"generated/run_script_v2/#Import-packages","page":"Advection-diffusion on a Sphere","title":"Import packages","text":"","category":"section"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"using ClimateMachine, MPI\nusing ClimateMachine.DGMethods.NumericalFluxes\nusing ClimateMachine.DGMethods\n\nusing ClimateMachine.ODESolvers\nusing ClimateMachine.ODESolvers: solve!\n\nusing ClimateMachine.Atmos: SphericalOrientation, latitude, longitude, AtmosFilterPerturbations\n\nusing CLIMAParameters\nusing CLIMAParameters.Planet: MSLP, R_d, day, grav, Omega, planet_radius\n\nusing ClimateMachine.Mesh.Filters\n\nusing ClimateMachine.BalanceLaws:\n BalanceLaw,\n AbstractStateType,\n Prognostic,\n Auxiliary,\n Gradient,\n GradientFlux,\n GradientLaplacian,\n Hyperdiffusive,\n UpwardIntegrals,\n DownwardIntegrals,\n vars_state,\n number_states\n\nusing CouplerMachine\n\nusing Unitful\nusing Dates: DateTime\nusing Statistics\nusing StaticArrays\n\nstruct EarthParameterSet <: AbstractEarthParameterSet end\nconst param_set = EarthParameterSet()\n\nClimateMachine.init()\nFT = Float64\n\n## Shared functions\ninclude(\"domains.jl\")\ninclude(\"abstractions.jl\")\ninclude(\"callbacks.jl\")\n\n# Main balance law and its components\ninclude(\"CplMainBL.jl\")","category":"page"},{"location":"generated/run_script_v2/#Set-simulation-parameters","page":"Advection-diffusion on a Sphere","title":"Set simulation parameters","text":"","category":"section"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"nstepsA = 10\nnstepsO = 5\n\n# Background atmos and ocean diffusivities\nconst κᵃʰ = FT(1e4) * 0.0\nconst κᵃᶻ = FT(1e-1)\nconst κᵒʰ = FT(1e3) * 0.0\nconst κᵒᶻ = FT(1e-4)\nconst τ_airsea = FT(60 * 86400)\nconst L_airsea = FT(500)\nconst λ_airsea = FT(L_airsea / τ_airsea)\ncoupling_lambda() = (λ_airsea)\nconst u_max = FT(1e-5) # max. advective velocity in radians","category":"page"},{"location":"generated/run_script_v2/#Set-up-coupled-model","page":"Advection-diffusion on a Sphere","title":"Set up coupled model","text":"","category":"section"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Define component models and initialize the coupler","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"function main(::Type{FT}) where {FT}\n\n # Domain - Spherical Shells\n # confusing name - better might be to use something like DeepSphericalShellDomain directly?\n ΩO = DeepSphericalShellDomain(radius = FT(planet_radius(param_set)) - FT(4e3), height = FT(4e3))\n ΩA = DeepSphericalShellDomain(radius = FT(planet_radius(param_set)) , height = FT(4e3))\n\n # Grid\n nelem = (;horizontal = 8, vertical = 4)\n polynomialorder = (;horizontal = 5, vertical = 5)\n overintegrationorder = (;horizontal = 1, vertical = 1)\n\n gridA = DiscontinuousSpectralElementGrid(ΩA, nelem, polynomialorder)\n gridO = DiscontinuousSpectralElementGrid(ΩO, nelem, polynomialorder)\n\n # Numerics-specific options\n numerics = (NFfirstorder = CentralNumericalFluxFirstOrder(), NFsecondorder = PenaltyNumFluxDiffusive(),\n overint_params = (overintegrationorder, polynomialorder))\n\n # Timestepping\n Δt_ = calculate_dt(gridA, wavespeed = u_max*(ΩA.radius), diffusivity = maximum([κᵃʰ, κᵃᶻ]) )\n\n t_time, end_time = ( 0 , 20Δt_ )\n\n # Collect spatial info, timestepping, balance law and DGmodel for the two components\n boundary_mask( xc, yc, zc ) = @. ( xc^2 + yc^2 + zc^2 )^0.5 ≈ planet_radius(param_set)","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"1. Atmos component","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":" # Prop atmos functions to override defaults\n atmos_structure(λ, ϕ, r) = FT(30)#30.0 + 10.0 * cos(ϕ) * sin(5λ)\n atmos_θⁱⁿⁱᵗ(npt, el, x, y, z) = atmos_structure( lon(x,y,z), lat(x,y,z), rad(x,y,z) ) # Set atmosphere initial state function\n ##atmos_θ_shadowflux(θᵃ, θᵒ, npt, el, xc, yc, zc) = FT(0.0)\n atmos_θ_shadowflux(θᵃ, θᵒ, npt, el, xc, yc, zc) = is_surface(xc,yc,zc) ? (1.0 / τ_airsea) * (θᵃ - θᵒ) : 0.0 # Set atmosphere shadow boundary flux function\n atmos_calc_kappa_diff(_...) = κᵃʰ, κᵃʰ, κᵃᶻ # Set atmos diffusion coeffs\n atmos_source_θ(θᵃ, npt, el, xc, yc, zc, θᵒ) = FT(0.0) # Set atmos source!\n atmos_get_penalty_tau(_...) = FT(3.0 * 0.0) # Set penalty term tau (for debugging)\n\n ## Set atmos advective velocity (constant in time) and convert to Cartesian\n uˡᵒⁿ(λ, ϕ, r) = u_max * r * cos(ϕ)\n atmos_uⁱⁿⁱᵗ(npt, el, x, y, z) = ( 0 * r̂(x,y,z)\n + 0 * ϕ̂(x,y,z)\n + uˡᵒⁿ(lon(x,y,z), lat(x,y,z), rad(x,y,z)) * λ̂(x,y,z) )\n\n # Collect atmos props\n bl_propA = prop_defaults()\n bl_propA = (;bl_propA...,\n init_theta = atmos_θⁱⁿⁱᵗ,\n theta_shadow_boundary_flux = atmos_θ_shadowflux,\n calc_kappa_diff = atmos_calc_kappa_diff,\n source_theta = atmos_source_θ,\n get_penalty_tau = atmos_get_penalty_tau,\n coupling_lambda = coupling_lambda,\n init_u = atmos_uⁱⁿⁱᵗ\n )\n # Setup atmos component model\n mA = CplModel(;\n grid = gridA,\n equations = CplMainBL(\n bl_propA,\n (CoupledPrimaryBoundary(), ExteriorBoundary()),\n param_set,\n ),\n boundary_z = boundary_mask,\n nsteps = nstepsA,\n dt = Δt_/ nstepsA,\n timestepper = LSRK54CarpenterKennedy,\n numerics...,\n )","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"2. Ocean component","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":" # Prop ocean functions to override defaults\n tropical_heating_1(λ, ϕ, r) = 30.0 + 10.0 * cos(ϕ) * sin(5λ)\n tropical_heating_2(λ, ϕ, r) = 30.0 + 10.0 * cos(ϕ) + 1 * sin(5λ) * cos(ϕ)\n tropical_heating(λ, ϕ, r) = tropical_heating_1(λ, ϕ, r)\n ocean_θⁱⁿⁱᵗ(npt, el, x, y, z) = tropical_heating( lon(x,y,z), lat(x,y,z), rad(x,y,z) ) # Set ocean initial state function\n ocean_calc_kappa_diff(_...) = κᵒʰ, κᵒʰ, κᵒᶻ # Set ocean diffusion coeffs\n ocean_source_θ(θᵃ, npt, el, xc, yc, zc, θᵒ) = FT(0.0) # Set ocean source!\n ocean_get_penalty_tau(_...) = FT(0.15 * 0.0) # Set penalty term tau (for debugging)\n ocean_uⁱⁿⁱᵗ(xc, yc, zc, npt, el) = SVector(FT(0.0), FT(0.0), FT(0.0)) # Set ocean advective velocity\n\n # Collect ocean props\n bl_propO = prop_defaults()\n bl_propO = (;bl_propO...,\n init_theta = ocean_θⁱⁿⁱᵗ,\n calc_kappa_diff = ocean_calc_kappa_diff,\n source_theta = ocean_source_θ,\n get_penalty_tau = ocean_get_penalty_tau,\n coupling_lambda = coupling_lambda,\n init_u = ocean_uⁱⁿⁱᵗ,\n )\n # Setup ocean component model\n mO = CplModel(;\n grid = gridO,\n equations = CplMainBL(\n bl_propO,\n (ExteriorBoundary(), CoupledSecondaryBoundary()),\n param_set,\n ),\n boundary_z = boundary_mask,\n nsteps = nstepsO,\n dt = Δt_ / nstepsO,\n timestepper = LSRK54CarpenterKennedy,\n numerics...,\n )","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Create the coupler object for holding import/export fields and performs mappings and instantiate the coupled timestepper:","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":" coupler = CplState()\n coupler_register!(coupler, :Ocean_SST, deepcopy(mO.state.θ[mO.boundary]), mO.grid, DateTime(0), u\"°C\")\n coupler_register!(coupler, :Atmos_MeanAirSeaθFlux, deepcopy(mA.state.F_accum[mA.boundary]), mA.grid, DateTime(0), u\"°C\")","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Instantiate a coupled timestepper that steps forward the components and implements mapings between components export bondary states and other components imports.","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":" compA = (pre_step = preatmos, component_model = mA, post_step = postatmos)\n compO = (pre_step = preocean, component_model = mO, post_step = postocean)\n component_list = (atmosphere = compA, ocean = compO)\n cpl_solver = CplSolver(\n component_list = component_list,\n coupler = coupler,\n coupling_dt = Δt_,\n t0 = 0.0,\n )","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"Creat callbacks and bundle the simulation:","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":" # For now applying callbacks only to atmos.\n callbacks = (\n ExponentialFiltering(),\n VTKOutput((\n iteration = string(5Δt_)*\"ssecs\" ,\n overdir =\"output\",\n overwrite = true,\n number_sample_points = 0\n )...,),\n )\n\n simulation = (;\n coupled_odesolver = cpl_solver,\n odesolver = cpl_solver.component_list.atmosphere.component_model.stepper,\n state = cpl_solver.component_list.atmosphere.component_model.state,\n dgmodel = cpl_solver.component_list.atmosphere.component_model.discretization,\n callbacks = callbacks,\n simtime = (t_time, end_time),\n name = \"Coupler_UnitTest_ctrl\",\n )\n\n return simulation\nend\n\n\nfunction run(cpl_solver, numberofsteps, cbvector)\n # Run the model\n solve!(\n nothing,\n cpl_solver;\n numberofsteps = numberofsteps,\n callbacks = cbvector,\n )\nend","category":"page"},{"location":"generated/run_script_v2/#Run-simulation","page":"Advection-diffusion on a Sphere","title":"Run simulation","text":"","category":"section"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"simulation = main(Float64);\nnsteps = Int(simulation.simtime[2] / simulation.coupled_odesolver.dt)\ncbvector = create_callbacks(simulation, simulation.odesolver)\nprintln(\"Initialized. Running...\")\n@time run(simulation.coupled_odesolver, nsteps, cbvector)","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"","category":"page"},{"location":"generated/run_script_v2/","page":"Advection-diffusion on a Sphere","title":"Advection-diffusion on a Sphere","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The CouplerMachine defines a type CplState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CplState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" CouplerMachine.CplState\n CouplerMachine.coupler_register!\n CouplerMachine.coupler_put!\n CouplerMachine.coupler_get","category":"page"},{"location":"couplerstate/#CouplerMachine.CplState","page":"Coupler State","title":"CouplerMachine.CplState","text":"CplState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#CouplerMachine.coupler_register!","page":"Coupler State","title":"CouplerMachine.coupler_register!","text":"Coupling.coupler_register!(\n coupler::CplState,\n fieldname::Symbol,\n fieldvalue,\n grid,\n datetime::DateTime,\n units::Unitful.Units = Unitful.NoUnits, \n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is registered to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\ngrid: grid the field is stored on.\ndatetime: time associated with the field state.\nunits: units associated with the field values. Dimensionless by default.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#CouplerMachine.coupler_put!","page":"Coupler State","title":"CouplerMachine.coupler_put!","text":"coupler_put!(coupler::CplState, fieldname::Symbol, fieldvalue, gridinfo, datetime::DateTime, units::Unitful.Units)\n\nUpdates coupler field fieldname with fieldvalue, the field's value at time datetime.\n\ngridinfo and units inform the coupler of the format of the inputted data allowing conversion to match the grid and units of the coupler field.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#CouplerMachine.coupler_get","page":"Coupler State","title":"CouplerMachine.coupler_get","text":"coupler_get(coupler::CplState, fieldname::Symbol, gridinfo, datetime::DateTime, units::Unitful.Units)\n\nRetrieve data array corresponding to fieldname.\n\nReturns data on the grid specified by gridinfo and in the units of units. Checks that the coupler data field is the state at time datetime.\n\n\n\n\n\n","category":"function"},{"location":"#CouplerMachine.jl","page":"Home","title":"CouplerMachine.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = CouplerMachine","category":"page"},{"location":"","page":"Home","title":"Home","text":"CouplerMachine.jl provides a means to couple climate model components from and within ClimateMachine.jl and Oceananigans.jl. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The CouplerMachine supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nCouplerMachine allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" CouplerMachine","category":"page"},{"location":"#CouplerMachine.CouplerMachine","page":"Home","title":"CouplerMachine.CouplerMachine","text":"CouplerMachine\n\nPrimitive coupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Timestepping","page":"Coupled Timestepping","title":"Coupled Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Timestepping","title":"Coupled Timestepping","text":"CouplerMachine currently uses a sequential timestepping framework in which one component steps forward before passing its updated state to another. An outer \"coupled\" timestep determines when component models synchronize and coordinate with the coupler. Within this coupled timestep, components take an integer number of substeps, and evolve independently from each other.","category":"page"},{"location":"timestepping/","page":"Coupled Timestepping","title":"Coupled Timestepping","text":"CplSolver extends the ODE solver API of ClimateMachine.ODESolvers.","category":"page"},{"location":"timestepping/","page":"Coupled Timestepping","title":"Coupled Timestepping","text":"CouplerMachine.CplSolver","category":"page"},{"location":"timestepping/#CouplerMachine.CplSolver","page":"Coupled Timestepping","title":"CouplerMachine.CplSolver","text":"CplSolver(; component_list, coupler::CplState, coupling_dt, t0)\n\nA time stepping like object for advancing a coupled system made up of a pre-defined set of named components specified in component_list. Each component is a balance law, discretization and timestepper collection. The coupler will step them forward by a nsteps substeps to advance the coupled system by a simulated time coupling_dt.\n\nComponents interact with the coupler during pre_step() and post_step() functions. During a pre_step(), a component may get fields from the coupler name space. A component may put fields into the coupler name space during the post_step() for later use by other components. The CplSolver abstraction controls\n\nthe outer time stepping sequencing of components\nthe execution of actions mapping exports from one or more components to imports of other components through an intermediary coupler name space.\n\n\n\n\n\n","category":"type"},{"location":"coupledmodel/#Coupled-Model-Components","page":"Coupled Model Components","title":"Coupled Model Components","text":"","category":"section"},{"location":"coupledmodel/","page":"Coupled Model Components","title":"Coupled Model Components","text":"CouplerMachine provides a wrapper for model components so that they may connect to the coupler. The CplModel struct packages a component model with the information needed for the CplSolver to evolve it.","category":"page"},{"location":"coupledmodel/","page":"Coupled Model Components","title":"Coupled Model Components","text":" CouplerMachine.CplModel","category":"page"},{"location":"coupledmodel/#CouplerMachine.CplModel","page":"Coupled Model Components","title":"CouplerMachine.CplModel","text":"CplModel(; \n grid,\n equations,\n nsteps::Int,\n boundary_z = 0.0,\n dt = 1.0,\n timestepper = LSRK54CarpenterKennedy,\n NFfirstorder = RusanovNumericalFlux(),\n NFsecondorder = CentralNumericalFluxSecondOrder(),\n NFgradient = CentralNumericalFluxGradient(),\n overint_params = nothing,\n callbacks = (),\n)\n\nBuilds an instance of a coupler test model. This is currently a toy model used for testing and designing coupling machinery. In a full-blown coupled experiment this model would be replaced by a full component model that is wrapped to format it for coupler compatibility.\n\ngrid the spectral element grid used by this model. \nequations the Balance Law used by this model.\nnsteps number of component steps to run during each coupling step.\nboundary_z height above or below the air-sea interface of the coupled boundary.\ndt component timestep to use on each component step.\ntimestepper the ODE solver used to advance the system.\nNFfirstorder numerical flux to use for first order terms.\nNFsecondorder numerical flux to use for second order terms.\nNFgradient numerical flux to use for gradient terms.\noverint_params overintegration parameters.\ncallbacks component-specific callbacks executed at inner time steps.\n\nEach returned model instance is independent and has its own grid, balance law, time stepper and other attributes. For now the code keeps some of these things the same for initial testing, including component timestepper and initial time (both of which need tweaking to use for real setups).\n\nA real model might have many more flags and/or may wrap the component creation very differently. Any component should allow itself to set a number of timesteps to execute with a certain timestep to synchronize with the coupling time scale.\n\n\n\n\n\n","category":"type"}] +} diff --git a/previews/PR19/siteinfo.js b/previews/PR19/siteinfo.js new file mode 100644 index 000000000..97d10c4e4 --- /dev/null +++ b/previews/PR19/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR19"; diff --git a/previews/PR19/timestepping/index.html b/previews/PR19/timestepping/index.html new file mode 100644 index 000000000..f58c2f118 --- /dev/null +++ b/previews/PR19/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Timestepping · CouplerMachine

              Coupled Timestepping

              CouplerMachine currently uses a sequential timestepping framework in which one component steps forward before passing its updated state to another. An outer "coupled" timestep determines when component models synchronize and coordinate with the coupler. Within this coupled timestep, components take an integer number of substeps, and evolve independently from each other.

              CplSolver extends the ODE solver API of ClimateMachine.ODESolvers.

              CouplerMachine.CplSolverType
              CplSolver(; component_list, coupler::CplState, coupling_dt, t0)

              A time stepping like object for advancing a coupled system made up of a pre-defined set of named components specified in component_list. Each component is a balance law, discretization and timestepper collection. The coupler will step them forward by a nsteps substeps to advance the coupled system by a simulated time coupling_dt.

              Components interact with the coupler during pre_step() and post_step() functions. During a pre_step(), a component may get fields from the coupler name space. A component may put fields into the coupler name space during the post_step() for later use by other components. The CplSolver abstraction controls

              1. the outer time stepping sequencing of components
              2. the execution of actions mapping exports from one or more components to imports of other components through an intermediary coupler name space.
              source
              diff --git a/previews/PR246/assets/documenter.js b/previews/PR246/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR246/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR246/assets/logo.svg b/previews/PR246/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR246/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR246/assets/search.js b/previews/PR246/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR246/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
            • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR246/assets/themes/documenter-dark.css b/previews/PR246/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR246/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
              that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR246/assets/themes/documenter-light.css b/previews/PR246/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR246/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
              that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR246/assets/themeswap.js b/previews/PR246/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR246/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR246/assets/warner.js b/previews/PR246/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR246/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
              Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR246/bcreader/index.html b/previews/PR246/bcreader/index.html new file mode 100644 index 000000000..ee3d291cc --- /dev/null +++ b/previews/PR246/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

              BCReader

              This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

              BCReader API

              ClimaCoupler.BCReader.BCFileInfoType
              BCFileInfo

              Stores information specific to each boundary condition from a file and each variable.

              Inputs:

              • bcfile_dir::b # directory of the BC file
              • comms_ctx::X # communication context used for MPI
              • hdoutfileroot::S # filename root for regridded data
              • varname::V # name of the variable
              • all_dates::D # vector of all dates contained in the original data file
              • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
              • scaling_function::O # function that scales, offsets or transforms the raw variable
              • land_mask::M # mask with 1 = land, 0 = ocean / sea-ice
              • segment_idx::Vector{Int} # index of the monthly data in the file
              • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
              • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
              • interpolate_daily::Bool # switch to trigger daily interpolation
              source
              ClimaCoupler.BCReader.bcfile_info_initFunction
              bcfile_info_init(
              +    FT,
              +    bcfile_dir,
              +    datafile_rll,
              +    varname,
              +    boundary_space,
              +    comms_ctx;
              +    interpolate_daily = false,
              +    segment_idx0 = nothing,
              +    scaling_function = no_scaling,
              +    land_mask = nothing,
              +    date0 = nothing,
              +    mono = true,
              +)

              Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

              Arguments

              • FT: [DataType] Float type.
              • bcfile_dir: [String] directory the BC file is stored in.
              • datafile_rll: [String] file containing data to regrid.
              • varname: [String] name of the variable to be regridded.
              • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
              • interpolate_daily: [Bool] switch to trigger daily interpolation.
              • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
              • scaling function: [Function] scales, offsets or transforms varname.
              • land_mask: [Fields.field] mask with 1 = land, 0 = ocean / sea-ice.
              • date0: [Dates.DateTime] start date of the file data.
              • mono: [Bool] flag for monotone remapping of datafile_rll.

              Returns

              • BCFileInfo
              source
              ClimaCoupler.BCReader.update_midmonth_data!Function
              update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

              Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

              Arguments

              • date: [Dates.DateTime] start date for data.
              • bcf_info: [BCFileInfo] containing boundary condition data.
              source
              ClimaCoupler.BCReader.next_date_in_fileFunction
              next_date_in_file(bcf_info)

              Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

              Arguments

              • bcf_info: [BCFileInfo] containing the date information.

              Returns

              • Dates.DateTime
              source
              ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
              interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

              Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

              Arguments

              • date: [Dates.DateTime] start date for data.
              • bcf_info: [BCFileInfo] contains fields to be interpolated.

              Returns

              • Fields.field
              source

              BCReader Internal Functions

              ClimaCoupler.BCReader.no_scalingFunction
              no_scaling(field, bcf_info)

              Remap the values of a field onto the space of the bcf_info's land_mask without scaling.

              Arguments

              • field: [Fields.Field] contains the values to be remapped.
              • bcf_info: [BCFileInfo] contains a land_mask to remap onto the space of.
              source
              ClimaCoupler.BCReader.interpolFunction
              interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

              Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

              Arguments

              • f1: [FT] first value to be interpolated (f(t1) = f1).
              • f2: [FT] second value to be interpolated.
              • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
              • Δt_t2t1: [FT] time between t1 and t2.

              Returns

              • FT
              source
              diff --git a/previews/PR246/conservation/index.html b/previews/PR246/conservation/index.html new file mode 100644 index 000000000..f5bcaef1d --- /dev/null +++ b/previews/PR246/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

              Conservation Checks

              If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

              Only energy and water are currently implemented.

              Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

              Coupler Object API

              ClimaCoupler.ConservationChecker.check_conservation!Function
              check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

              itertes over all specified conservation checks.

              source
                  check_conservation!(
              +    cc::EnergyConservationCheck,
              +    coupler_sim,
              +    get_slab_energy,
              +    get_land_energy,
              +    )

              computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

              TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

              source
              check_conservation!(
              +cc::WaterConservationCheck,
              +coupler_sim,
              +get_slab_energy,
              +get_land_energy,
              +)

              computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

              Note: in the future this should not use push!.

              source
              ClimaCoupler.ConservationChecker.plot_global_conservationFunction
              plot_global_conservation(
              +    cc::EnergyConservationCheck,
              +    coupler_sim::CoupledSimulation;
              +    figname1 = "total_energy.png",
              +    figname2 = "total_energy_log.png",
              +)

              Creates two plots of the globally integrated quantity (energy, $\rho e$):

              1. global quantity of each model component as a function of time,

              relative to the initial value;

              1. fractional change in the sum of all components over time on a log scale.
              source
              plot_global_conservation(
              +    cc::WaterConservationCheck,
              +    coupler_sim::CoupledSimulation;
              +    figname1 = "total_energy.png",
              +    figname2 = "total_energy_log.png",
              +)

              Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

              1. global quantity of each model component as a function of time,

              relative to the initial value;

              1. fractional change in the sum of all components over time on a log scale.
              source
              diff --git a/previews/PR246/couplerstate/index.html b/previews/PR246/couplerstate/index.html new file mode 100644 index 000000000..84d347949 --- /dev/null +++ b/previews/PR246/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

              Coupler State

              The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

              The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

              Coupler Object API

              ClimaCoupler.CouplerStateType
              CouplerState()

              Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

              A field is exported by one component and imported by one or more other components.

              source
              ClimaCoupler.coupler_add_field!Function
              coupler_add_field!(
              +        coupler::CouplerState,
              +        fieldname::Symbol,
              +        fieldvalue,
              +    )

              Add a field to the coupler that is accessible with key fieldname.

              Arguments

              • coupler: coupler object the field is added to.
              • fieldname: key to access the field in the coupler.
              • fieldvalue: data array of field values.
              source
              ClimaCoupler.coupler_getFunction
              coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

              Retrieve data array corresponding to fieldname.

              If a target_sim is passed, the field is remapped to that simulation's boundary space.

              source
              diff --git a/previews/PR246/diagnostics/index.html b/previews/PR246/diagnostics/index.html new file mode 100644 index 000000000..ef311e97c --- /dev/null +++ b/previews/PR246/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

              Diagnostics

              This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

              Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

              Diagnostics API

              Missing docstring.

              Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

              ClimaCoupler.Diagnostics.get_varFunction
              get_var(cs::CoupledSimulation, x)

              Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

              Example:

              getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

              source
              ClimaCoupler.Diagnostics.save_diagnosticsFunction
              save_diagnostics(cs::CoupledSimulation)
              +
              +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

              Saves all entries in dg in separate HDF5 files per variable in output_dir.

              source

              Diagnostics Internal Functions

              Missing docstring.

              Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

              ClimaCoupler.Diagnostics.operationFunction
              operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

              Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

              source
              operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

              Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

              source
              ClimaCoupler.Diagnostics.pre_saveFunction
              pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

              Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

              source
              pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

              Collects variables and performs all specified operations before saving the snapshot diagnostics.

              source
              diff --git a/previews/PR246/generated/amip/coupler_driver/index.html b/previews/PR246/generated/amip/coupler_driver/index.html new file mode 100644 index 000000000..a82e5b0fe --- /dev/null +++ b/previews/PR246/generated/amip/coupler_driver/index.html @@ -0,0 +1,387 @@ + +AMIP Driver · ClimaCoupler.jl

              AMIP Driver

              Overview

              AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

              • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
              • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

              For more information, see the PCMDI's specifications for AMIP I and AMIP II.

              This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

              Start Up

              Before starting Julia, ensure your environment is properly set up:

              module purge
              +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
              +
              +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
              +export JUlIA_MPI_BINARY="system"
              +export JULIA_HDF5_PATH=""

              Next instantiate/build all packages listed in Manifest.toml:

              julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
              +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

              The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

              julia --project --threads 8

              Initialization

              Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

              import SciMLBase: step!
              +using OrdinaryDiffEq
              +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
              +using LinearAlgebra
              +import Test: @test
              +using Dates
              +using UnPack
              +import MPI
              +
              +using ClimaCore.Utilities: half, PlusHalf
              +using ClimaCore: InputOutput
              +
              +include("cli_options.jl")
              +(s, parsed_args) = parse_commandline()
              +
              +if isinteractive()
              +end
              +
              +# read in some parsed command line arguments
              +mode_name = parsed_args["mode_name"]
              +run_name = parsed_args["run_name"]
              +energy_check = parsed_args["energy_check"]
              +const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
              +land_sim_name = "bucket"
              +t_end = FT(time_to_seconds(parsed_args["t_end"]))
              +tspan = (0, t_end)
              +Δt_cpl = FT(parsed_args["dt_cpl"])
              +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
              +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
              +mono_surface = parsed_args["mono_surface"]
              +
              +import ClimaCoupler
              +pkg_dir = pkgdir(ClimaCoupler)
              +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/moist_mpi_earth/output", joinpath(mode_name, run_name))
              +mkpath(COUPLER_OUTPUT_DIR)
              +
              +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
              +mkpath(REGRID_DIR)
              +
              +@info COUPLER_OUTPUT_DIR
              +@info parsed_args
              +
              +# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration
              +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
              +sst_data = joinpath(sst_dataset_path(), "sst.nc")
              +sic_data = joinpath(sic_dataset_path(), "sic.nc")
              +mask_data = joinpath(mask_dataset_path(), "seamask.nc")
              +
              +# import coupler unitilies
              +include("coupler_utils/flux_calculator.jl")
              +include("coupler_utils/conservation_checker.jl")
              +include("coupler_utils/regridder.jl")
              +include("coupler_utils/masker.jl")
              +include("coupler_utils/calendar_timer.jl")
              +include("coupler_utils/general_helper.jl")
              +include("coupler_utils/bcfile_reader.jl")
              +include("coupler_utils/variable_definer.jl")
              +include("coupler_utils/diagnostics_gatherer.jl")
              +include("coupler_utils/offline_postprocessor.jl")

              Component Model Initialization

              Here we set initial and boundary conditions for each component model.

              Atmosphere

              This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

              # init atmos model component
              +include("atmos/atmos_init.jl")
              +atmos_sim = atmos_init(FT, Y, integrator, params = params);

              We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

              # init a 2D bounary space at the surface
              +boundary_space = atmos_sim.domain.face_space.horizontal_space

              init land-sea mask

              land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, "LSMASK", boundary_space, mono = mono_surface)
              +
              +# init surface (slab) model components
              +include("slab/slab_utils.jl")
              +include("bucket/bucket_init.jl")
              +include("slab/slab_init.jl")
              +include("slab_ocean/slab_init.jl")
              +include("slab_ice/slab_init.jl")

              Land

              We use ClimaLSM.jl's bucket model.

              land_sim = bucket_init(
              +    FT,
              +    FT.(tspan),
              +    parsed_args["config"],
              +    parsed_args["albedo_from_file"],
              +    comms_ctx,
              +    REGRID_DIR;
              +    dt = FT(Δt_cpl),
              +    space = boundary_space,
              +    saveat = FT(saveat),
              +)

              Ocean and Sea Ice

              In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

              In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

              @info mode_name
              +if mode_name == "amip"
              +    @info "AMIP boundary conditions - do not expect energy conservation"
              +
              +    # ocean
              +    SST_info = bcfile_info_init(
              +        FT,
              +        comms_ctx,
              +        sst_data,
              +        "SST",
              +        boundary_space,
              +        interpolate_daily = true,
              +        scaling_function = clean_sst, ## convert to Kelvin
              +        land_mask = land_mask,
              +        date0 = date0,
              +        mono = mono_surface,
              +    )
              +
              +    update_midmonth_data!(date0, SST_info)
              +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
              +    ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))
              +    ocean_sim = (;
              +        integrator = (;
              +            u = (; T_sfc = SST_init),
              +            p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),
              +            SST_info = SST_info,
              +        )
              +    )
              +    # sea ice
              +    SIC_info = bcfile_info_init(
              +        FT,
              +        comms_ctx,
              +        sic_data,
              +        "SEAICE",
              +        boundary_space,
              +        interpolate_daily = true,
              +        scaling_function = clean_sic, ## convert to fractions
              +        land_mask = land_mask,
              +        date0 = date0,
              +        mono = mono_surface,
              +    )
              +    update_midmonth_data!(date0, SIC_info)
              +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
              +    ice_mask = get_ice_mask.(SIC_init, mono_surface)
              +    ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)
              +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
              +
              +elseif mode_name == "slabplanet"
              +    # ocean
              +    ocean_sim = ocean_init(
              +        FT;
              +        tspan = tspan,
              +        dt = Δt_cpl,
              +        space = boundary_space,
              +        saveat = saveat,
              +        ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)
              +    )
              +
              +    # sea ice
              +    ice_sim = (;
              +        integrator = (;
              +            u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),
              +            p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),
              +        )
              +    )
              +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
              +end

              Coupler Initialization

              The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

              # coupler exchange fields
              +coupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :F_A, :F_E, :F_R, :P_liq, :P_snow)
              +coupler_fields =
              +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
              +
              +# model simulations
              +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
              +
              +# dates
              +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])

              Online Diagnostics

              User can write custom diagnostics in the coupler_utils/variable_definer.jl.

              # 3d diagnostics
              +monthly_3d_diags_names = (:T, :u, :q_tot)
              +monthly_3d_diags = (;
              +    fields = NamedTuple{monthly_3d_diags_names}(
              +        ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),
              +    ),
              +    ct = [0],
              +)
              +# 2d diagnostics
              +monthly_2d_diags_names = (:precipitation, :toa, :T_sfc)
              +monthly_2d_diags = (;
              +    fields = NamedTuple{monthly_2d_diags_names}(
              +        ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),
              +    ),
              +    ct = [0],
              +)
              +
              +# coupler simulation
              +cs = CouplerSimulation{FT}(
              +    comms_ctx,
              +    tspan,
              +    dates,
              +    boundary_space,
              +    parsed_args,
              +    integrator.t,
              +    FT(Δt_cpl),
              +    (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
              +    coupler_fields,
              +    model_sims,
              +    mode_specifics,
              +    monthly_3d_diags,
              +    monthly_2d_diags,
              +);

              Initial States Exchange

              # share states between models
              +include("./push_pull.jl")
              +atmos_pull!(cs)
              +parsed_args["ode_algo"] == "ARS343" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing
              +atmos_push!(cs)
              +land_pull!(cs)
              +
              +# reinitialize (TODO: avoid with interfaces)
              +reinit!(atmos_sim.integrator)
              +reinit!(land_sim.integrator)
              +mode_name == "amip" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing
              +mode_name == "slabplanet" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing

              Initialize Conservation Checks

              # init conservation info collector
              +if !is_distributed && energy_check && mode_name == "slabplanet"
              +    conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])
              +    check_conservation(conservation_check, cs)
              +end

              Coupling Loop

              function solve_coupler!(cs, energy_check)
              +    @info "Starting coupling loop"
              +
              +    @unpack model_sims, Δt_cpl, tspan = cs
              +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
              +
              +    # step in time
              +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
              +
              +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
              +
              +        # print date on the first of month
              +        @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]
              +
              +        if cs.mode.name == "amip"
              +
              +            # monthly read of boundary condition data for SST and SIC
              +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(
              +                cs.mode.SST_info,
              +            )
              +            SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)
              +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(
              +                cs.mode.SIC_info,
              +            )
              +            SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
              +
              +            ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)
              +
              +            # accumulate diagnostics at each timestep
              +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)
              +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)
              +
              +            # save and reset monthly averages
              +            @calendar_callback :(
              +                map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),
              +                save_hdf5(
              +                    cs.comms_ctx,
              +                    cs.monthly_3d_diags.fields,
              +                    cs.dates.date[1],
              +                    COUPLER_OUTPUT_DIR,
              +                    name_tag = "3d_",
              +                ),
              +                map(x -> x .= FT(0), cs.monthly_3d_diags.fields),
              +                cs.monthly_3d_diags.ct .= FT(0),
              +            ) cs.dates.date[1] cs.dates.date1[1]
              +            @calendar_callback :(
              +                map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),
              +                save_hdf5(
              +                    cs.comms_ctx,
              +                    cs.monthly_2d_diags.fields,
              +                    cs.dates.date[1],
              +                    COUPLER_OUTPUT_DIR,
              +                    name_tag = "2d_",
              +                ),
              +                map(x -> x .= FT(0), cs.monthly_2d_diags.fields),
              +                cs.monthly_2d_diags.ct .= FT(0),
              +            ) cs.dates.date[1] cs.dates.date1[1]
              +
              +        end
              +
              +        # run component models sequentially for one coupling timestep (Δt_cpl)
              +        # 1. atmos
              +        ClimaComms.barrier(comms_ctx)
              +
              +        atmos_pull!(cs)
              +        step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error
              +        atmos_push!(cs)
              +
              +        # 2. land
              +        land_pull!(cs)
              +        step!(land_sim.integrator, t - land_sim.integrator.t, true)
              +
              +        # 3. ocean
              +        if cs.mode.name == "slabplanet"
              +            ocean_pull!(cs)
              +            step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)
              +        end
              +
              +        # 4. sea ice
              +        if cs.mode.name == "amip"
              +            ice_pull!(cs)
              +            step!(ice_sim.integrator, t - ice_sim.integrator.t, true)
              +        end
              +
              +        # compute global energy
              +        if !simulation.is_distributed && energy_check && cs.mode.name == "slabplanet"
              +            check_conservation(conservation_check, cs)
              +        end
              +
              +        # step to the next calendar month
              +        @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]
              +
              +    end
              +    @show walltime
              +
              +    return cs
              +end
              +
              +# run the coupled simulation
              +solve_coupler!(cs, energy_check);

              Postprocessing

              Currently all postprocessing is performed using the root process only.

              if ClimaComms.iamroot(comms_ctx)
              +    isdir(COUPLER_OUTPUT_DIR * "_artifacts") ? nothing : mkpath(COUPLER_OUTPUT_DIR * "_artifacts")
              +
              +    # energy check plots
              +    if !is_distributed && energy_check && cs.mode.name == "slabplanet"
              +        @info "Energy Check"
              +        plot_global_energy(
              +            conservation_check,
              +            cs,
              +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_bucket.png"),
              +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_log_bucket.png"),
              +        )
              +    end
              +
              +    # sample animations
              +    if !is_distributed && parsed_args["anim"]
              +        @info "Animations"
              +        include("coupler_utils/viz_explorer.jl")
              +        plot_anim(cs, COUPLER_OUTPUT_DIR * "_artifacts")
              +    end
              +
              +    # plotting AMIP results
              +    if cs.mode.name == "amip"
              +        @info "AMIP plots"
              +
              +        include("coupler_utils/plotter.jl")
              +
              +        # ClimaESM
              +        include("coupler_utils/amip_visualizer.jl")
              +        post_spec = (;
              +            T = (:regridded_3d, :zonal_mean),
              +            u = (:regridded_3d, :zonal_mean),
              +            q_tot = (:regridded_3d, :zonal_mean),
              +            toa = (:regridded_2d, :horizontal_2d),
              +            precipitation = (:regridded_2d, :horizontal_2d),
              +            T_sfc = (:regridded_2d, :horizontal_2d),
              +        )
              +
              +        plot_spec = (;
              +            T = (; clims = (190, 320), units = "K"),
              +            u = (; clims = (-50, 50), units = "m/s"),
              +            q_tot = (; clims = (0, 50), units = "g/kg"),
              +            toa = (; clims = (-250, 210), units = "W/m^2"),
              +            precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
              +            T_sfc = (clims = (225, 310), units = "K"),
              +        )
              +        amip_paperplots(
              +            post_spec,
              +            plot_spec,
              +            COUPLER_OUTPUT_DIR,
              +            files_root = ".monthly",
              +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
              +        )
              +
              +        # NCEP reanalysis
              +        @info "NCEP plots"
              +        include("coupler_utils/ncep_visualizer.jl")
              +        ncep_post_spec = (;
              +            T = (:zonal_mean,),
              +            u = (:zonal_mean,),
              +            q_tot = (:zonal_mean,),
              +            toa = (:horizontal_2d,),
              +            precipitation = (:horizontal_2d,),
              +            T_sfc = (:horizontal_2d,),
              +        )
              +        ncep_plot_spec = plot_spec
              +        ncep_paperplots(
              +            ncep_post_spec,
              +            ncep_plot_spec,
              +            COUPLER_OUTPUT_DIR,
              +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
              +            month_date = cs.dates.date[1],
              +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
              +    end
              +
              +    # clean up
              +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
              +end

              Temporary Unit Tests

              To be moved to test/

              if !is_distributed && cs.mode.name == "amip"
              +    @info "Unit Tests"
              +    include("coupler_utils/unit_tester.jl")
              +end

              This page was generated using Literate.jl.

              diff --git a/previews/PR246/generated/sea_breeze/atmos_rhs/index.html b/previews/PR246/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..66242925a --- /dev/null +++ b/previews/PR246/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

              Atmospheric Model

              Atmosphere Conservation Equations

              Density:

              \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

              Momentum (flux form):

              \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

              Potential temperature:

              \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

              Total Energy (possibly replace potential temperature equation with total energy conservation):

              \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

              where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

              Tracer transport:

              \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

              Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

              \[\rho\tau = -2\rho\nu\nabla u.\]

              Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

              \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

              with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

              Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

              Consider components of the viscous stress tensor in three dimensions:

              \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

              Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

              \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

              Which can be interpreted as, for horizontal-momentum:

              1. Horizontal divergence of vertical gradients of cell-centered variables $u$
              2. Vertical divergence of vertical gradients of cell-centered variables $u$
              3. Vertical divergence of horizontal gradients of cell-face variables $w$

              and for vertical-momentum, as:

              1. Horizontal divergence of vertical gradients of cell-centered variables $u$
              2. Horizontal divergence of horizontal gradients of cell-face variables $w$
              3. Vertical divergence of vertical gradients of cell-face variables $w$.

              Model Code

              push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
              +
              +using Test
              +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
              +
              +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
              +using ClimaCore.Geometry
              +using ClimaCore.Utilities: PlusHalf
              +
              +using Logging: global_logger
              +using TerminalLoggers: TerminalLogger
              +global_logger(TerminalLogger())
              +
              +using ClimaCoupler
              +
              +# set up function space
              +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
              +    FT = Float64
              +    vertdomain = Domains.IntervalDomain(
              +        Geometry.ZPoint{FT}(zlim[1]),
              +        Geometry.ZPoint{FT}(zlim[2]);
              +        boundary_tags = (:bottom, :top),
              +    )
              +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
              +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
              +
              +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
              +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
              +    horztopology = Topologies.IntervalTopology(horzmesh)
              +
              +    quad = Spaces.Quadratures.GLL{npoly + 1}()
              +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
              +
              +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
              +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
              +    return (hv_center_space, hv_face_space)
              +end
              +
              +function pressure(ρθ)
              +    if ρθ >= 0
              +        return MSLP * (R_d * ρθ / MSLP)^γ
              +    else
              +        return NaN
              +    end
              +end
              +
              +Φ(z) = grav * z
              +
              +abstract type BCtag end
              +struct ZeroFlux <: BCtag end
              +
              +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
              +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
              +
              +function init_sea_breeze_2d(x, z)
              +    θ₀ = atm_T_ini
              +    cp_d = C_p
              +    cv_d = C_v
              +    p₀ = MSLP
              +    g = grav
              +    γ = cp_d / cv_d
              +    z_c = 100.0
              +    θ_b = atm_T_ini
              +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
              +    θ = θ_b + θ_p # potential temperature
              +    π_exn = 1.0 - g * z / cp_d / θ # exner function
              +    T = π_exn * θ # temperature
              +    p = p₀ * π_exn^(cp_d / R_d) # pressure
              +    ρ = p / R_d / T # density
              +    ρθ = ρ * θ # potential temperature density
              +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
              +end
              +
              +function atm_rhs!(dY, Y, params, t)
              +    ρw = Y.ρw
              +    Yc = Y.Yc
              +    dYc = dY.Yc
              +    dρw = dY.ρw
              +
              +    center_coords = Fields.coordinate_field(axes(Yc))
              +
              +    # spectral horizontal operators
              +    hdiv = Operators.Divergence()
              +    hgrad = Operators.Gradient()
              +    hwdiv = Operators.WeakDivergence()
              +    hwgrad = Operators.WeakGradient()
              +
              +    # vertical FD operators with BC's
              +    vdivf2c = Operators.DivergenceF2C(
              +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
              +        top = Operators.SetValue(Geometry.WVector(0.0)),
              +    )
              +    vvdivc2f = Operators.DivergenceC2F(
              +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
              +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
              +    )
              +    uvdivf2c = Operators.DivergenceF2C(
              +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
              +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
              +    )
              +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
              +    Ic = Operators.InterpolateF2C()
              +    ∂ = Operators.DivergenceF2C(
              +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
              +        top = Operators.SetValue(Geometry.WVector(0.0)),
              +    )
              +    ∂f = Operators.GradientC2F()
              +    ∂c = Operators.GradientF2C()
              +    B = Operators.SetBoundaryOperator(
              +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
              +        top = Operators.SetValue(Geometry.WVector(0.0)),
              +    )
              +
              +    ∇_z_ρθ = Operators.DivergenceF2C(
              +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
              +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
              +    )
              +
              +    uₕ = @. Yc.ρuₕ / Yc.ρ
              +    w = @. ρw / If(Yc.ρ)
              +    wc = @. Ic(ρw) / Yc.ρ
              +    p = @. pressure(Yc.ρθ)
              +    θ = @. Yc.ρθ / Yc.ρ
              +    Yfρ = @. If(Yc.ρ)
              +
              +    ### HYPERVISCOSITY
              +    # 1) compute hyperviscosity coefficients
              +    @. dYc.ρθ = hwdiv(hgrad(θ))
              +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
              +    @. dρw = hwdiv(hgrad(w))
              +    Spaces.weighted_dss!(dYc)
              +    Spaces.weighted_dss!(dρw)
              +
              +    κ₄ = 0.0 # m^4/s
              +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
              +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
              +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
              +
              +    # density
              +    @. dYc.ρ = -∂(ρw)
              +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
              +
              +    # potential temperature
              +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
              +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
              +
              +    # horizontal momentum
              +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
              +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
              +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
              +
              +    # vertical momentum
              +    @. dρw +=
              +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
              +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
              +    @. dρw -= hdiv(uₕf ⊗ ρw)
              +
              +    # DIFFUSION
              +    κ₂ = 5.0 # m^2/s
              +    #  1a) horizontal div of horizontal grad of horiz momentun
              +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
              +    #  1b) vertical div of vertical grad of horiz momentun
              +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
              +
              +    #  1c) horizontal div of horizontal grad of vert momentum
              +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
              +    #  1d) vertical div of vertical grad of vert momentun
              +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
              +
              +    #  2a) horizontal div of horizontal grad of potential temperature
              +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
              +    #  2b) vertical div of vertial grad of potential temperature
              +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
              +
              +    Spaces.weighted_dss!(dYc)
              +    Spaces.weighted_dss!(dρw)
              +    return dY
              +end
              +
              +# init simulation
              +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
              +
              +    # construct domain spaces
              +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
              +    center_coords = Fields.coordinate_field(hv_center_space)
              +    face_coords = Fields.coordinate_field(hv_face_space)
              +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
              +
              +    # initialize prognostic variables
              +    Yc = map(center_coords) do coord
              +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
              +        sea_breeze
              +    end
              +
              +    ρw = map(face_coords) do coord
              +        Geometry.WVector(0.0)
              +    end
              +
              +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
              +
              +    # select boundary conditions
              +    if bc === nothing
              +        bc = (
              +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
              +            ρu = nothing, # for now BCs are hard coded, except for ρθ
              +        )
              +    end
              +
              +    return Y, bc, domain
              +end
              +
              +using OrdinaryDiffEq
              +function atm_run!(Y, bc, domain)
              +    dYdt = similar(Y)
              +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
              +    atm_rhs!(dYdt, Y, params, 0.0)
              +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
              +    Δt = 0.025
              +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
              +end

              Coupled Atmos Wrappers

              # Atmos Simulation - later to live in ClimaAtmos
              +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
              +    integrator::Any
              +end
              +
              +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
              +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
              +
              +    atm_integ = init(
              +        atm_prob,
              +        timestepper,
              +        dt = dt,
              +        saveat = saveat,
              +        progress = true,
              +        progress_message = (dt, u, params, t) -> t,
              +        callback = callbacks,
              +    )
              +
              +    return AtmosSimulation(atm_integ)
              +end
              +
              +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
              +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
              +end
              +
              +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
              +    # reset flux accumulator
              +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
              +
              +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
              +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
              +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
              +end

              Coupled Boundary Conditions

              The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

              To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

              struct CoupledFlux <: BCtag end
              +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
              +    # flux calculation
              +    Yc = Y.Yc
              +    uₕ = Yc.ρuₕ ./ Yc.ρ
              +    ρw = Y.ρw
              +    If2c = Operators.InterpolateF2C()
              +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
              +    w = If2c.(ρw) ./ Yc.ρ
              +    cuv = @. Geometry.UWVector(uₕ)
              +    windspeed = @. norm(cuv)
              +    windspeed_boundary = Fields.level(windspeed, 1)
              +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
              +    ρ_boundary = Fields.level(Yc.ρ, 1)
              +
              +    # build atmos face fields on surface boundary space to enable broadcasting
              +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
              +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
              +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
              +
              +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
              +    dθ = @. θ_boundary - p.T_sfc
              +    heat_flux = @. -λ * dθ
              +    @. dY.F_sfc += heat_flux # accumulation
              +
              +    return Operators.SetValue(Geometry.WVector.(heat_flux))
              +end

              This page was generated using Literate.jl.

              diff --git a/previews/PR246/generated/sea_breeze/land_rhs/index.html b/previews/PR246/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..18fc0cd2b --- /dev/null +++ b/previews/PR246/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

              Land Model

              Slab Land ODE

              For our land component, we solve a simple slab land ODE:

              \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

              • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
              • and $F_{integ}$ is the integrated surface fluxes in time.

              Model Code

              function lnd_rhs!(du, u, (parameters, F_accumulated), t)
              +    """
              +    Slab layer equation
              +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
              +        where
              +            F_accumulated = F_integrated / Δt_coupler
              +    """
              +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
              +    @unpack T_sfc = du
              +
              +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
              +end
              +
              +# set up domain
              +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
              +    FT = Float64
              +
              +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
              +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
              +    topology = Topologies.IntervalTopology(mesh)
              +
              +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
              +    quad = Spaces.Quadratures.GL{npoly + 1}()
              +    space = Spaces.SpectralElementSpace1D(topology, quad)
              +
              +    return space
              +end
              +
              +# init simulation
              +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
              +
              +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
              +    space = hspace_1D((xmin, xmax), npoly, helem)
              +    coords = Fields.coordinate_field(space)
              +    domain = space
              +
              +    # initial condition
              +    T_sfc = map(coords) do coord
              +        T_sfc = 273.0
              +    end
              +
              +    # prognostic variable
              +    Y = Fields.FieldVector(T_sfc = T_sfc)
              +
              +    return Y, domain
              +end

              Coupled Land Wrappers

              # Land Simulation - later to live in ClimaLSM
              +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
              +    integrator::Any
              +end
              +
              +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
              +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
              +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
              +    return LandSimulation(lnd_integ)
              +end
              +
              +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
              +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
              +end
              +
              +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
              +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
              +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
              +end

              This page was generated using Literate.jl.

              diff --git a/previews/PR246/generated/sea_breeze/ocean_rhs/index.html b/previews/PR246/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..619c97751 --- /dev/null +++ b/previews/PR246/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

              Ocean Model

              Slab Ocean ODE

              For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

              \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

              • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
              • and $F_{integ}$ is the integrated surface fluxes in time.

              Model Code

              function ocn_rhs!(du, u, (parameters, F_accumulated), t)
              +    """
              +    Slab layer equation
              +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
              +        where
              +            F_accumulated = F_integrated / Δt_coupler
              +    """
              +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
              +    @unpack T_sfc = du
              +
              +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
              +end
              +
              +# set up domain
              +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
              +    FT = Float64
              +
              +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
              +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
              +    topology = Topologies.IntervalTopology(mesh)
              +
              +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
              +    quad = Spaces.Quadratures.GL{npoly + 1}()
              +    space = Spaces.SpectralElementSpace1D(topology, quad)
              +
              +    return space
              +end
              +
              +# init simulation
              +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
              +
              +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
              +    space = hspace_1D((xmin, xmax), npoly, helem)
              +    coords = Fields.coordinate_field(space)
              +    domain = space
              +
              +    # initial condition
              +    T_sfc = map(coords) do coord
              +        T_sfc = 267.0
              +    end
              +
              +    # prognostic variable
              +    Y = Fields.FieldVector(T_sfc = T_sfc)
              +
              +    return Y, domain
              +end

              Coupled Ocean Wrappers

              # Ocean Simulation - Later to live in Oceananigans
              +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
              +    integrator::Any
              +end
              +
              +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
              +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
              +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
              +    return OceanSimulation(ocn_integ)
              +end
              +
              +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
              +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
              +end
              +
              +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
              +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
              +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
              +end

              This page was generated using Literate.jl.

              diff --git a/previews/PR246/generated/sea_breeze/run/index.html b/previews/PR246/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..2dbdebf7f --- /dev/null +++ b/previews/PR246/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

              Coupled Sea Breeze

              Overview

              This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

              In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

              Model Initialization

              Component Models

              Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

              In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

              include("atmos_rhs.jl")
              +include("ocean_rhs.jl")
              +include("land_rhs.jl")
              +
              +# model parameters
              +const atm_T_ini = FT(270.0)
              +const MSLP = FT(1e5)
              +const grav = FT(9.8)
              +const R_d = FT(287.058)
              +const γ = FT(1.4)
              +const C_p = FT(R_d * γ / (γ - 1))
              +const C_v = FT(R_d / (γ - 1))
              +const R_m = R_d
              +cpl_parameters = (
              +    # atmos parameters
              +    atm_μ = FT(0.0001), # diffusion coefficient
              +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
              +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
              +    MSLP = MSLP, # mean sea level pressure
              +    grav = grav, # gravitational constant
              +    R_d = R_d, # R dry (gas constant / mol mass dry air)
              +    γ = γ, # heat capacity ratio
              +    C_p = C_p, # heat capacity at constant pressure
              +    C_v = C_v, # heat capacity at constant volume
              +    R_m = R_m, # moist R, assumed to be dry
              +    # land slab parameters
              +    lnd_h = FT(0.5), # depth of slab layer [m]
              +    lnd_ρ = FT(1500), # density [kg m^-3]
              +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
              +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
              +    # ocean slab parameters
              +    ocn_h = FT(0.5), # depth of slab layer [m]
              +    ocn_ρ = FT(1025), # density [kg m^-3]
              +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
              +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
              +    # coupling parameters
              +    C_H = FT(0.0015),
              +)
              +
              +# DSS callback
              +function make_dss_func()
              +    function _dss!(x::Fields.Field)
              +        Spaces.weighted_dss!(x)
              +    end
              +    function _dss!(::Any)
              +        nothing
              +    end
              +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
              +    return dss_func
              +end
              +dss_func = make_dss_func()
              +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

              Initialization

              The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

              Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

              @info "Init Models and Maps"
              +
              +t_start, t_end = (0.0, 1.0)
              +Δt_coupled = 0.1
              +saveat = 1e2
              +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
              +
              +# Initialize Models
              +atm_Y_default, atm_bc, atm_domain = atm_init(
              +    xmin = -500,
              +    xmax = 500,
              +    zmin = 0,
              +    zmax = 1000,
              +    npoly = 4,
              +    helem = 20,
              +    velem = 20,
              +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
              +)
              +
              +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
              +
              +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

              Remapping

              Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

              atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
              +
              +maps = (
              +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
              +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
              +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
              +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
              +)
              +
              +# initialize coupling fields
              +atm_T_sfc =
              +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
              +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
              +atm_F_sfc = Fields.zeros(atm_boundary)
              +ocn_F_sfc = Fields.zeros(ocn_domain)
              +lnd_F_sfc = Fields.zeros(lnd_domain)

              Simulations

              Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

              atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
              +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
              +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
              +
              +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
              +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
              +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
              +
              +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
              +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
              +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

              Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

              struct AOLCoupledSimulation{
              +    A <: AtmosSimulation,
              +    O <: OceanSimulation,
              +    L <: LandSimulation,
              +    C <: ClimaCoupler.CouplerState,
              +} <: ClimaCoupler.AbstractCoupledSimulation
              +    # Atmosphere Simulation
              +    atmos::A
              +    # Ocean Simulation
              +    ocean::O
              +    # Land Simulation
              +    land::L
              +    # Coupler storage
              +    coupler::C
              +end

              step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

              function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
              +    Δt = t_stop - sim.integrator.t
              +    step!(sim.integrator, Δt, true)
              +end

              The Coupler

              The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

              After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

              Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

              Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

              \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

              where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

              coupler = CouplerState(Δt_coupled)
              +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
              +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
              +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
              +for (name, map) in pairs(maps)
              +    coupler_add_map!(coupler, name, map)
              +end
              +
              +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

              Coupled Time Integration

              Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

              Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

              Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

              \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

              where $F_{integ}$ has units of $J m^{-2}$.

              function cpl_run(simulation::AOLCoupledSimulation)
              +    @info "Run model"
              +    @unpack atmos, ocean, land, coupler = simulation
              +    Δt_coupled = coupler.Δt_coupled
              +    # coupler stepping
              +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
              +        # Atmos
              +        coupler_pull!(atmos, coupler)
              +        step!(atmos, t)
              +        coupler_push!(coupler, atmos)
              +
              +        # Ocean
              +        coupler_pull!(ocean, coupler)
              +        step!(ocean, t)
              +        coupler_push!(coupler, ocean)
              +
              +        # Land
              +        coupler_pull!(land, coupler)
              +        step!(land, t)
              +        coupler_push!(coupler, land)
              +    end
              +    @info "Simulation Complete"
              +end
              +
              +# Run simulation
              +cpl_run(sim)

              References


              This page was generated using Literate.jl.

              diff --git a/previews/PR246/images/canvas_coupler.png b/previews/PR246/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

              F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR246/images/cplsetup.png b/previews/PR246/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR246/index.html b/previews/PR246/index.html new file mode 100644 index 000000000..7ee1cb0b8 --- /dev/null +++ b/previews/PR246/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

              ClimaCoupler.jl

              Coupling CliMA Models

              ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

              • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
              • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

              The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

              Coupler Scheme
              ClimaCoupler.jl allows for independent development of interchangeable component models.
              diff --git a/previews/PR246/performance/index.html b/previews/PR246/performance/index.html new file mode 100644 index 000000000..3686c52bf --- /dev/null +++ b/previews/PR246/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

              Performance Analysis Tools

              ClimaCoupler.jl provides basic tools for analyzing performance:

              1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
              2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

              Flame Graph Interpretation

              • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
              • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

              canvas

              • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
              • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces.

              References

              diff --git a/previews/PR246/postprocessor/index.html b/previews/PR246/postprocessor/index.html new file mode 100644 index 000000000..68e200615 --- /dev/null +++ b/previews/PR246/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

              PostProcessor

              This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

              Diagnostics API

              ClimaCoupler.PostProcessor.postprocessFunction
              postprocess(
              +    name::Symbol,
              +    raw_data::Union{Fields.Field, Array},
              +    p_methods::Tuple;
              +    lev_slice = 1,
              +    datafile_latlon = nothing,
              +    nlat = 90,
              +    nlon = 180,
              +)

              Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

              Arguments:

              • name: [Symbol] variable name
              • raw_data: [Union{Fields.Field, Array}] variable data
              • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
              • lev_slice: [Int] level index along which the :horizontal_slice is applied
              • datafile_latlon: [String] name of the regrid file
              • nlat: [Int] number of latitudes of the regridded array
              • nlon: [Symbol] number of longitudes of the regridded array
              source
              Missing docstring.

              Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

              Missing docstring.

              Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

              ClimaCoupler.PostProcessor.DataPackageType
              DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

              A container for storing the tyoe, name, data and coordinates of a variable.

              source

              Diagnostics Internal Functions

              diff --git a/previews/PR246/regridder/index.html b/previews/PR246/regridder/index.html new file mode 100644 index 000000000..bbc43e135 --- /dev/null +++ b/previews/PR246/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

              Regridder

              This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

              Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

              Regridder API

              ClimaCoupler.Regridder.write_to_hdf5Function
              write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

              Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

              Arguments

              • REGRID_DIR: [String] directory to save output files in.
              • hd_outfile_root: [String] root of the output file name.
              • time: [Dates.DateTime] the timestamp of the data being written.
              • field: [Fields.Field] object to be written.
              • varname: [String] variable name of data.
              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
              source
              ClimaCoupler.Regridder.read_from_hdf5Function
              read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

              Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

              Arguments

              • REGRID_DIR: [String] directory to save output files in.
              • hd_outfile_root: [String] root of the output file name.
              • time: [Dates.DateTime] the timestamp of the data being written.
              • varname: [String] variable name of data.
              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

              Returns

              • Field or FieldVector
              source
              ClimaCoupler.Regridder.dummmy_remap!Function
              dummmy_remap!(target, source)

              Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

              Arguments

              • target: [Fields.Field] destination of remapping.
              • source: [Fields.Field] source of remapping.
              source
              ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
              remap_field_cgll_to_rll(
              +    name,
              +    field::Fields.Field,
              +    remap_tmpdir,
              +    datafile_rll;
              +    nlat = 90,
              +    nlon = 180
              +)

              Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

              Arguments

              • name: [Symbol] variable name.
              • field: [Fields.Field] data to be remapped.
              • remap_tmpdir: [String] directory used for remapping.
              • datafile_rll: [String] filename of remapped data output.
              source
              ClimaCoupler.Regridder.land_sea_maskFunction
              function land_sea_mask(
              +    FT,
              +    REGRID_DIR,
              +    comms_ctx::ClimaComms.AbstractCommsContext,
              +    infile,
              +    varname,
              +    boundary_space;
              +    outfile_root = "land_sea_cgll",
              +    mono = false,
              +    threshold = 0.7,
              +)

              Initialize a mask for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

              See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

              Arguments

              • FT: [DataType] Float type
              • REGRID_DIR: [String] directory to save output files in.
              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
              • infile: [String] filename containing input data.
              • varname: [Symbol] variable name.
              • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
              • outfile_root: [String] root for output file name.
              • mono: [Bool] flag for monotone remapping.
              • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

              Returns

              • Fields.Field
              source
              ClimaCoupler.Regridder.update_masks!Function
              update_masks!(cs::CoupledSimulation)

              Updates dynamically changing masks. Maintains the invariant that the sum of masks is 1 at all points.

              Arguments

              • cs: [CoupledSimulation] containing mask information.
              source
              ClimaCoupler.Regridder.combine_surfaces!Function
              combine_surfaces!(combined_field::Fields.Field, masks::NamedTuple, fields::NamedTuple)

              Sums Field objects in fields weighted by the respective masks, and updates these values in combined_field. NamedTuples fields and masks must have matching field names.

              Arguments

              • combined_field: [Fields.Field] output object containing weighted values.
              • masks: [NamedTuple] containing weights used on values in fields.
              • fields: [NamedTuple] containing values to be weighted by masks.
              source

              Regridder Internal Functions

              ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
              reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

              Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

              Arguments

              • field: [Fields.Field] object populated with the input array.
              • in_array: [Array] input used to fill field.
              • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
              source
              ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
              hdwrite_regridfile_rll_to_cgll(
              +    FT,
              +    REGRID_DIR,
              +    datafile_rll,
              +    varname,
              +    space;
              +    hd_outfile_root = "data_cgll",
              +    mono = false,
              +)

              Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

              Arguments

              • FT: [DataType] Float type.
              • REGRID_DIR: [String] directory to save output files in.
              • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
              • varname: [String] the name of the variable to be remapped.
              • space: [Spaces.AbstractSpace] the space to which we are mapping.
              • hd_outfile_root: [String] root of the output file name.
              • mono: [Bool] flag to specify monotone remapping.
              source
              ClimaCoupler.Regridder.write_datafile_ccFunction
              write_datafile_cc(datafile_cc, field, name)

              Write the data stored in field to an NCDataset file datafile_cc.

              Arguments

              • datafile_cc: [String] filename of output file.
              • field: [Fields.Field] to be written to file.
              • name: [Symbol] variable name.
              source
              ClimaCoupler.Regridder.binary_maskFunction
              binary_mask(var::FT; threshold = 0.5)

              Converts a number var to 1, if var is greater than a given threshold value, or 0 otherwise, keeping the same type.

              Arguments

              • var: [FT] value to be converted.
              • threshold: [Float] cutoff value for conversions.
              source
              diff --git a/previews/PR246/search/index.html b/previews/PR246/search/index.html new file mode 100644 index 000000000..73583afab --- /dev/null +++ b/previews/PR246/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

              Loading search...

                diff --git a/previews/PR246/search_index.js b/previews/PR246/search_index.js new file mode 100644 index 000000000..c3e2df1c0 --- /dev/null +++ b/previews/PR246/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/amip/coupler_driver/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nimport MPI\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput\n\ninclude(\"cli_options.jl\")\n(s, parsed_args) = parse_commandline()\n\nif isinteractive()\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nconst FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nland_sim_name = \"bucket\"\nt_end = FT(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (0, t_end)\nΔt_cpl = FT(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\n\nimport ClimaCoupler\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/moist_mpi_earth/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nmask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# import coupler unitilies\ninclude(\"coupler_utils/flux_calculator.jl\")\ninclude(\"coupler_utils/conservation_checker.jl\")\ninclude(\"coupler_utils/regridder.jl\")\ninclude(\"coupler_utils/masker.jl\")\ninclude(\"coupler_utils/calendar_timer.jl\")\ninclude(\"coupler_utils/general_helper.jl\")\ninclude(\"coupler_utils/bcfile_reader.jl\")\ninclude(\"coupler_utils/variable_definer.jl\")\ninclude(\"coupler_utils/diagnostics_gatherer.jl\")\ninclude(\"coupler_utils/offline_postprocessor.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"atmos/atmos_init.jl\")\natmos_sim = atmos_init(FT, Y, integrator, params = params);","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea mask","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"slab/slab_utils.jl\")\ninclude(\"bucket/bucket_init.jl\")\ninclude(\"slab/slab_init.jl\")\ninclude(\"slab_ocean/slab_init.jl\")\ninclude(\"slab_ice/slab_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n)","category":"page"},{"location":"generated/amip/coupler_driver/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n comms_ctx,\n sst_data,\n \"SST\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))\n ocean_sim = (;\n integrator = (;\n u = (; T_sfc = SST_init),\n p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),\n SST_info = SST_info,\n )\n )\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n comms_ctx,\n sic_data,\n \"SEAICE\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fractions\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_mask = get_ice_mask.(SIC_init, mono_surface)\n ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)\n )\n\n # sea ice\n ice_sim = (;\n integrator = (;\n u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),\n p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),\n )\n )\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :F_A, :F_E, :F_R, :P_liq, :P_snow)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])","category":"page"},{"location":"generated/amip/coupler_driver/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the coupler_utils/variable_definer.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# 3d diagnostics\nmonthly_3d_diags_names = (:T, :u, :q_tot)\nmonthly_3d_diags = (;\n fields = NamedTuple{monthly_3d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),\n ),\n ct = [0],\n)\n# 2d diagnostics\nmonthly_2d_diags_names = (:precipitation, :toa, :T_sfc)\nmonthly_2d_diags = (;\n fields = NamedTuple{monthly_2d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),\n ),\n ct = [0],\n)\n\n# coupler simulation\ncs = CouplerSimulation{FT}(\n comms_ctx,\n tspan,\n dates,\n boundary_space,\n parsed_args,\n integrator.t,\n FT(Δt_cpl),\n (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n coupler_fields,\n model_sims,\n mode_specifics,\n monthly_3d_diags,\n monthly_2d_diags,\n);","category":"page"},{"location":"generated/amip/coupler_driver/#Initial-States-Exchange","page":"AMIP Driver","title":"Initial States Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# share states between models\ninclude(\"./push_pull.jl\")\natmos_pull!(cs)\nparsed_args[\"ode_algo\"] == \"ARS343\" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing\natmos_push!(cs)\nland_pull!(cs)\n\n# reinitialize (TODO: avoid with interfaces)\nreinit!(atmos_sim.integrator)\nreinit!(land_sim.integrator)\nmode_name == \"amip\" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing\nmode_name == \"slabplanet\" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing","category":"page"},{"location":"generated/amip/coupler_driver/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nif !is_distributed && energy_check && mode_name == \"slabplanet\"\n conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])\n check_conservation(conservation_check, cs)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs, energy_check)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SST_info,\n )\n SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SIC_info,\n )\n SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n\n ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)\n\n # accumulate diagnostics at each timestep\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)\n\n # save and reset monthly averages\n @calendar_callback :(\n map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_3d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"3d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_3d_diags.fields),\n cs.monthly_3d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n @calendar_callback :(\n map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_2d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"2d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_2d_diags.fields),\n cs.monthly_2d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n\n end\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n # 1. atmos\n ClimaComms.barrier(comms_ctx)\n\n atmos_pull!(cs)\n step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error\n atmos_push!(cs)\n\n # 2. land\n land_pull!(cs)\n step!(land_sim.integrator, t - land_sim.integrator.t, true)\n\n # 3. ocean\n if cs.mode.name == \"slabplanet\"\n ocean_pull!(cs)\n step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)\n end\n\n # 4. sea ice\n if cs.mode.name == \"amip\"\n ice_pull!(cs)\n step!(ice_sim.integrator, t - ice_sim.integrator.t, true)\n end\n\n # compute global energy\n if !simulation.is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n check_conservation(conservation_check, cs)\n end\n\n # step to the next calendar month\n @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]\n\n end\n @show walltime\n\n return cs\nend\n\n# run the coupled simulation\nsolve_coupler!(cs, energy_check);","category":"page"},{"location":"generated/amip/coupler_driver/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n isdir(COUPLER_OUTPUT_DIR * \"_artifacts\") ? nothing : mkpath(COUPLER_OUTPUT_DIR * \"_artifacts\")\n\n # energy check plots\n if !is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n @info \"Energy Check\"\n plot_global_energy(\n conservation_check,\n cs,\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_bucket.png\"),\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"coupler_utils/viz_explorer.jl\")\n plot_anim(cs, COUPLER_OUTPUT_DIR * \"_artifacts\")\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n include(\"coupler_utils/plotter.jl\")\n\n # ClimaESM\n include(\"coupler_utils/amip_visualizer.jl\")\n post_spec = (;\n T = (:regridded_3d, :zonal_mean),\n u = (:regridded_3d, :zonal_mean),\n q_tot = (:regridded_3d, :zonal_mean),\n toa = (:regridded_2d, :horizontal_2d),\n precipitation = (:regridded_2d, :horizontal_2d),\n T_sfc = (:regridded_2d, :horizontal_2d),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n )\n amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"coupler_utils/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_2d,),\n precipitation = (:horizontal_2d,),\n T_sfc = (:horizontal_2d,),\n )\n ncep_plot_spec = plot_spec\n ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Temporary-Unit-Tests","page":"AMIP Driver","title":"Temporary Unit Tests","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"To be moved to test/","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if !is_distributed && cs.mode.name == \"amip\"\n @info \"Unit Tests\"\n include(\"coupler_utils/unit_tester.jl\")\nend","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance: ","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki. ","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function. \nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random. \nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. ","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_mask::M # mask with 1 = land, 0 = ocean / sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_mask = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_mask: [Fields.field] mask with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_mask without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_mask to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_sea_mask\nClimaCoupler.Regridder.update_masks!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_sea_mask","page":"Regridder","title":"ClimaCoupler.Regridder.land_sea_mask","text":"function land_sea_mask(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a mask for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_masks!","page":"Regridder","title":"ClimaCoupler.Regridder.update_masks!","text":"update_masks!(cs::CoupledSimulation)\n\nUpdates dynamically changing masks. Maintains the invariant that the sum of masks is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing mask information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, masks::NamedTuple, fields::NamedTuple)\n\nSums Field objects in fields weighted by the respective masks, and updates these values in combined_field. NamedTuples fields and masks must have matching field names.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nmasks: [NamedTuple] containing weights used on values in fields.\nfields: [NamedTuple] containing values to be weighted by masks.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR246/siteinfo.js b/previews/PR246/siteinfo.js new file mode 100644 index 000000000..dd80577a1 --- /dev/null +++ b/previews/PR246/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR246"; diff --git a/previews/PR246/testhelper/index.html b/previews/PR246/testhelper/index.html new file mode 100644 index 000000000..eca9a0f29 --- /dev/null +++ b/previews/PR246/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                TestHelper

                This module defines helper functions, objects, and constants to be used by various files in the test folder.

                TestHelper API

                ClimaCoupler.TestHelper.create_spaceFunction
                create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                Arguments

                • FT: [DataType] Float type
                • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                • R: [FT] radius of the sphere underlying space.
                • ne: [Integer] number of elements used in the space's mesh.
                • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                • nz: [Integer] number of vertical elements
                source
                ClimaCoupler.TestHelper.gen_ncdataFunction
                gen_ncdata(FT, path, varname, val)

                Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                Arguments

                • FT: [DataType] Float type.
                • path: [String] location to store output datafile.
                • varname: [Symbol] variable name.
                • val: [FT] value to store as varname at all indices.
                source
                diff --git a/previews/PR246/timemanager/index.html b/previews/PR246/timemanager/index.html new file mode 100644 index 000000000..fbd172cfa --- /dev/null +++ b/previews/PR246/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                TimeManager

                This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                TimeManager API

                ClimaCoupler.TimeManager.current_dateFunction
                current_date(cs::CoupledSimulation, t::Int)

                Return the model date at the current timestep.

                Arguments

                • cs: [CoupledSimulation] containing info about the simulation
                • t: [Real] number of seconds since simulation began
                source
                ClimaCoupler.TimeManager.trigger_callbackFunction
                trigger_callback(cs, ::Monthly)

                Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                Arguments

                • cs: [CoupledSimulation] containing info about the simulation
                source
                Missing docstring.

                Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                diff --git a/previews/PR246/timestepping/index.html b/previews/PR246/timestepping/index.html new file mode 100644 index 000000000..99200f87a --- /dev/null +++ b/previews/PR246/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                Coupled Simulations & Timestepping

                ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                • step!: advances the component model in time
                • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                ClimaCoupler.run!Function
                run!(::CoupledSimulation)

                A simple outer timestepping loop for coupled system runs.

                This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                source
                ClimaCoupler.step!Function
                step!(sim, dt)

                Advances a simulation sim by dt.

                Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                source
                ClimaCoupler.coupler_push!Function
                coupler_push!(coupler::CouplerState, model)

                Update coupler with fields retrieved from the coupler.

                coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                source
                ClimaCoupler.coupler_pull!Function
                coupler_pull!(model, coupler::CouplerState)

                Update model with fields retrieved from the coupler.

                coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                source
                diff --git a/previews/PR246/utilities/index.html b/previews/PR246/utilities/index.html new file mode 100644 index 000000000..8fd5cc6c3 --- /dev/null +++ b/previews/PR246/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                Utilities

                This module contains functions, objects, and constants used by various modules in the coupler.

                Utilities API

                Missing docstring.

                Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                ClimaCoupler.Utilities.swap_space!Function
                swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                Remap the values of a field onto a new space.

                Arguments

                • field_in: [Fields.Field] to be remapped to new space.
                • field_out: [Fields.Field] to remap field_in to.
                source
                diff --git a/previews/PR258/assets/documenter.js b/previews/PR258/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR258/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR258/assets/logo.svg b/previews/PR258/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR258/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR258/assets/search.js b/previews/PR258/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR258/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
              • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR258/assets/themes/documenter-dark.css b/previews/PR258/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR258/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR258/assets/themes/documenter-light.css b/previews/PR258/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR258/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
                that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR258/assets/themeswap.js b/previews/PR258/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR258/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR258/assets/warner.js b/previews/PR258/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR258/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR258/bcreader/index.html b/previews/PR258/bcreader/index.html new file mode 100644 index 000000000..f4903d048 --- /dev/null +++ b/previews/PR258/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                BCReader

                This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                BCReader API

                ClimaCoupler.BCReader.BCFileInfoType
                BCFileInfo

                Stores information specific to each boundary condition from a file and each variable.

                Inputs:

                • bcfile_dir::b # directory of the BC file
                • comms_ctx::X # communication context used for MPI
                • hdoutfileroot::S # filename root for regridded data
                • varname::V # name of the variable
                • all_dates::D # vector of all dates contained in the original data file
                • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                • scaling_function::O # function that scales, offsets or transforms the raw variable
                • land_mask::M # mask with 1 = land, 0 = ocean / sea-ice
                • segment_idx::Vector{Int} # index of the monthly data in the file
                • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                • interpolate_daily::Bool # switch to trigger daily interpolation
                source
                ClimaCoupler.BCReader.bcfile_info_initFunction
                bcfile_info_init(
                +    FT,
                +    bcfile_dir,
                +    datafile_rll,
                +    varname,
                +    boundary_space,
                +    comms_ctx;
                +    interpolate_daily = false,
                +    segment_idx0 = nothing,
                +    scaling_function = no_scaling,
                +    land_mask = nothing,
                +    date0 = nothing,
                +    mono = true,
                +)

                Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                Arguments

                • FT: [DataType] Float type.
                • bcfile_dir: [String] directory the BC file is stored in.
                • datafile_rll: [String] file containing data to regrid.
                • varname: [String] name of the variable to be regridded.
                • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                • interpolate_daily: [Bool] switch to trigger daily interpolation.
                • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                • scaling function: [Function] scales, offsets or transforms varname.
                • land_mask: [Fields.field] mask with 1 = land, 0 = ocean / sea-ice.
                • date0: [Dates.DateTime] start date of the file data.
                • mono: [Bool] flag for monotone remapping of datafile_rll.

                Returns

                • BCFileInfo
                source
                ClimaCoupler.BCReader.update_midmonth_data!Function
                update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                Arguments

                • date: [Dates.DateTime] start date for data.
                • bcf_info: [BCFileInfo] containing boundary condition data.
                source
                ClimaCoupler.BCReader.next_date_in_fileFunction
                next_date_in_file(bcf_info)

                Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                Arguments

                • bcf_info: [BCFileInfo] containing the date information.

                Returns

                • Dates.DateTime
                source
                ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                Arguments

                • date: [Dates.DateTime] start date for data.
                • bcf_info: [BCFileInfo] contains fields to be interpolated.

                Returns

                • Fields.field
                source

                BCReader Internal Functions

                ClimaCoupler.BCReader.no_scalingFunction
                no_scaling(field, bcf_info)

                Remap the values of a field onto the space of the bcf_info's land_mask without scaling.

                Arguments

                • field: [Fields.Field] contains the values to be remapped.
                • bcf_info: [BCFileInfo] contains a land_mask to remap onto the space of.
                source
                ClimaCoupler.BCReader.interpolFunction
                interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                Arguments

                • f1: [FT] first value to be interpolated (f(t1) = f1).
                • f2: [FT] second value to be interpolated.
                • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                • Δt_t2t1: [FT] time between t1 and t2.

                Returns

                • FT
                source
                diff --git a/previews/PR258/conservation/index.html b/previews/PR258/conservation/index.html new file mode 100644 index 000000000..afe9f90a1 --- /dev/null +++ b/previews/PR258/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                Conservation Checks

                If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                Only energy and water are currently implemented.

                Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                Coupler Object API

                ClimaCoupler.ConservationChecker.check_conservation!Function
                check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                itertes over all specified conservation checks.

                source
                    check_conservation!(
                +    cc::EnergyConservationCheck,
                +    coupler_sim,
                +    get_slab_energy,
                +    get_land_energy,
                +    )

                computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                source
                check_conservation!(
                +cc::WaterConservationCheck,
                +coupler_sim,
                +get_slab_energy,
                +get_land_energy,
                +)

                computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                Note: in the future this should not use push!.

                source
                ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                plot_global_conservation(
                +    cc::EnergyConservationCheck,
                +    coupler_sim::CoupledSimulation;
                +    figname1 = "total_energy.png",
                +    figname2 = "total_energy_log.png",
                +)

                Creates two plots of the globally integrated quantity (energy, $\rho e$):

                1. global quantity of each model component as a function of time,

                relative to the initial value;

                1. fractional change in the sum of all components over time on a log scale.
                source
                plot_global_conservation(
                +    cc::WaterConservationCheck,
                +    coupler_sim::CoupledSimulation;
                +    figname1 = "total_energy.png",
                +    figname2 = "total_energy_log.png",
                +)

                Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                1. global quantity of each model component as a function of time,

                relative to the initial value;

                1. fractional change in the sum of all components over time on a log scale.
                source
                diff --git a/previews/PR258/couplerstate/index.html b/previews/PR258/couplerstate/index.html new file mode 100644 index 000000000..47a3cf9c8 --- /dev/null +++ b/previews/PR258/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                Coupler State

                The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                Coupler Object API

                ClimaCoupler.CouplerStateType
                CouplerState()

                Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                A field is exported by one component and imported by one or more other components.

                source
                ClimaCoupler.coupler_add_field!Function
                coupler_add_field!(
                +        coupler::CouplerState,
                +        fieldname::Symbol,
                +        fieldvalue,
                +    )

                Add a field to the coupler that is accessible with key fieldname.

                Arguments

                • coupler: coupler object the field is added to.
                • fieldname: key to access the field in the coupler.
                • fieldvalue: data array of field values.
                source
                ClimaCoupler.coupler_getFunction
                coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                Retrieve data array corresponding to fieldname.

                If a target_sim is passed, the field is remapped to that simulation's boundary space.

                source
                diff --git a/previews/PR258/diagnostics/index.html b/previews/PR258/diagnostics/index.html new file mode 100644 index 000000000..5cf3e6976 --- /dev/null +++ b/previews/PR258/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                Diagnostics

                This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                Diagnostics API

                Missing docstring.

                Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                ClimaCoupler.Diagnostics.get_varFunction
                get_var(cs::CoupledSimulation, x)

                Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                Example:

                getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                source
                ClimaCoupler.Diagnostics.save_diagnosticsFunction
                save_diagnostics(cs::CoupledSimulation)
                +
                +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                Saves all entries in dg in separate HDF5 files per variable in output_dir.

                source

                Diagnostics Internal Functions

                Missing docstring.

                Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                ClimaCoupler.Diagnostics.operationFunction
                operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                source
                operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                source
                ClimaCoupler.Diagnostics.pre_saveFunction
                pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                source
                pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                Collects variables and performs all specified operations before saving the snapshot diagnostics.

                source
                diff --git a/previews/PR258/generated/amip/coupler_driver/index.html b/previews/PR258/generated/amip/coupler_driver/index.html new file mode 100644 index 000000000..f7742869e --- /dev/null +++ b/previews/PR258/generated/amip/coupler_driver/index.html @@ -0,0 +1,387 @@ + +AMIP Driver · ClimaCoupler.jl

                AMIP Driver

                Overview

                AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                Start Up

                Before starting Julia, ensure your environment is properly set up:

                module purge
                +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                +
                +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                +export JUlIA_MPI_BINARY="system"
                +export JULIA_HDF5_PATH=""

                Next instantiate/build all packages listed in Manifest.toml:

                julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                julia --project --threads 8

                Initialization

                Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                import SciMLBase: step!
                +using OrdinaryDiffEq
                +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                +using LinearAlgebra
                +import Test: @test
                +using Dates
                +using UnPack
                +import MPI
                +
                +using ClimaCore.Utilities: half, PlusHalf
                +using ClimaCore: InputOutput
                +
                +include("cli_options.jl")
                +(s, parsed_args) = parse_commandline()
                +
                +if isinteractive()
                +end
                +
                +# read in some parsed command line arguments
                +mode_name = parsed_args["mode_name"]
                +run_name = parsed_args["run_name"]
                +energy_check = parsed_args["energy_check"]
                +const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                +land_sim_name = "bucket"
                +t_end = FT(time_to_seconds(parsed_args["t_end"]))
                +tspan = (0, t_end)
                +Δt_cpl = FT(parsed_args["dt_cpl"])
                +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                +mono_surface = parsed_args["mono_surface"]
                +
                +import ClimaCoupler
                +pkg_dir = pkgdir(ClimaCoupler)
                +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/moist_mpi_earth/output", joinpath(mode_name, run_name))
                +mkpath(COUPLER_OUTPUT_DIR)
                +
                +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                +mkpath(REGRID_DIR)
                +
                +@info COUPLER_OUTPUT_DIR
                +@info parsed_args
                +
                +# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration
                +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                +mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                +
                +# import coupler unitilies
                +include("coupler_utils/flux_calculator.jl")
                +include("coupler_utils/conservation_checker.jl")
                +include("coupler_utils/regridder.jl")
                +include("coupler_utils/masker.jl")
                +include("coupler_utils/calendar_timer.jl")
                +include("coupler_utils/general_helper.jl")
                +include("coupler_utils/bcfile_reader.jl")
                +include("coupler_utils/variable_definer.jl")
                +include("coupler_utils/diagnostics_gatherer.jl")
                +include("coupler_utils/offline_postprocessor.jl")

                Component Model Initialization

                Here we set initial and boundary conditions for each component model.

                Atmosphere

                This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                # init atmos model component
                +include("atmos/atmos_init.jl")
                +atmos_sim = atmos_init(FT, Y, integrator, params = params);

                We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                # init a 2D bounary space at the surface
                +boundary_space = atmos_sim.domain.face_space.horizontal_space

                init land-sea mask

                land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, "LSMASK", boundary_space, mono = mono_surface)
                +
                +# init surface (slab) model components
                +include("slab/slab_utils.jl")
                +include("bucket/bucket_init.jl")
                +include("slab/slab_init.jl")
                +include("slab_ocean/slab_init.jl")
                +include("slab_ice/slab_init.jl")

                Land

                We use ClimaLSM.jl's bucket model.

                land_sim = bucket_init(
                +    FT,
                +    FT.(tspan),
                +    parsed_args["config"],
                +    parsed_args["albedo_from_file"],
                +    comms_ctx,
                +    REGRID_DIR;
                +    dt = FT(Δt_cpl),
                +    space = boundary_space,
                +    saveat = FT(saveat),
                +)

                Ocean and Sea Ice

                In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                @info mode_name
                +if mode_name == "amip"
                +    @info "AMIP boundary conditions - do not expect energy conservation"
                +
                +    # ocean
                +    SST_info = bcfile_info_init(
                +        FT,
                +        comms_ctx,
                +        sst_data,
                +        "SST",
                +        boundary_space,
                +        interpolate_daily = true,
                +        scaling_function = clean_sst, ## convert to Kelvin
                +        land_mask = land_mask,
                +        date0 = date0,
                +        mono = mono_surface,
                +    )
                +
                +    update_midmonth_data!(date0, SST_info)
                +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                +    ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))
                +    ocean_sim = (;
                +        integrator = (;
                +            u = (; T_sfc = SST_init),
                +            p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),
                +            SST_info = SST_info,
                +        )
                +    )
                +    # sea ice
                +    SIC_info = bcfile_info_init(
                +        FT,
                +        comms_ctx,
                +        sic_data,
                +        "SEAICE",
                +        boundary_space,
                +        interpolate_daily = true,
                +        scaling_function = clean_sic, ## convert to fractions
                +        land_mask = land_mask,
                +        date0 = date0,
                +        mono = mono_surface,
                +    )
                +    update_midmonth_data!(date0, SIC_info)
                +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                +    ice_mask = get_ice_mask.(SIC_init, mono_surface)
                +    ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)
                +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                +
                +elseif mode_name == "slabplanet"
                +    # ocean
                +    ocean_sim = ocean_init(
                +        FT;
                +        tspan = tspan,
                +        dt = Δt_cpl,
                +        space = boundary_space,
                +        saveat = saveat,
                +        ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)
                +    )
                +
                +    # sea ice
                +    ice_sim = (;
                +        integrator = (;
                +            u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),
                +            p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),
                +        )
                +    )
                +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                +end

                Coupler Initialization

                The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                # coupler exchange fields
                +coupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :F_A, :F_E, :F_R, :P_liq, :P_snow)
                +coupler_fields =
                +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                +
                +# model simulations
                +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                +
                +# dates
                +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])

                Online Diagnostics

                User can write custom diagnostics in the coupler_utils/variable_definer.jl.

                # 3d diagnostics
                +monthly_3d_diags_names = (:T, :u, :q_tot)
                +monthly_3d_diags = (;
                +    fields = NamedTuple{monthly_3d_diags_names}(
                +        ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),
                +    ),
                +    ct = [0],
                +)
                +# 2d diagnostics
                +monthly_2d_diags_names = (:precipitation, :toa, :T_sfc)
                +monthly_2d_diags = (;
                +    fields = NamedTuple{monthly_2d_diags_names}(
                +        ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),
                +    ),
                +    ct = [0],
                +)
                +
                +# coupler simulation
                +cs = CouplerSimulation{FT}(
                +    comms_ctx,
                +    tspan,
                +    dates,
                +    boundary_space,
                +    parsed_args,
                +    integrator.t,
                +    FT(Δt_cpl),
                +    (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                +    coupler_fields,
                +    model_sims,
                +    mode_specifics,
                +    monthly_3d_diags,
                +    monthly_2d_diags,
                +);

                Initial States Exchange

                # share states between models
                +include("./push_pull.jl")
                +atmos_pull!(cs)
                +parsed_args["ode_algo"] == "ARS343" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing
                +atmos_push!(cs)
                +land_pull!(cs)
                +
                +# reinitialize (TODO: avoid with interfaces)
                +reinit!(atmos_sim.integrator)
                +reinit!(land_sim.integrator)
                +mode_name == "amip" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing
                +mode_name == "slabplanet" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing

                Initialize Conservation Checks

                # init conservation info collector
                +if !is_distributed && energy_check && mode_name == "slabplanet"
                +    conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])
                +    check_conservation(conservation_check, cs)
                +end

                Coupling Loop

                function solve_coupler!(cs, energy_check)
                +    @info "Starting coupling loop"
                +
                +    @unpack model_sims, Δt_cpl, tspan = cs
                +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                +
                +    # step in time
                +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                +
                +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                +
                +        # print date on the first of month
                +        @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]
                +
                +        if cs.mode.name == "amip"
                +
                +            # monthly read of boundary condition data for SST and SIC
                +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(
                +                cs.mode.SST_info,
                +            )
                +            SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)
                +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(
                +                cs.mode.SIC_info,
                +            )
                +            SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                +
                +            ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)
                +
                +            # accumulate diagnostics at each timestep
                +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)
                +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)
                +
                +            # save and reset monthly averages
                +            @calendar_callback :(
                +                map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),
                +                save_hdf5(
                +                    cs.comms_ctx,
                +                    cs.monthly_3d_diags.fields,
                +                    cs.dates.date[1],
                +                    COUPLER_OUTPUT_DIR,
                +                    name_tag = "3d_",
                +                ),
                +                map(x -> x .= FT(0), cs.monthly_3d_diags.fields),
                +                cs.monthly_3d_diags.ct .= FT(0),
                +            ) cs.dates.date[1] cs.dates.date1[1]
                +            @calendar_callback :(
                +                map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),
                +                save_hdf5(
                +                    cs.comms_ctx,
                +                    cs.monthly_2d_diags.fields,
                +                    cs.dates.date[1],
                +                    COUPLER_OUTPUT_DIR,
                +                    name_tag = "2d_",
                +                ),
                +                map(x -> x .= FT(0), cs.monthly_2d_diags.fields),
                +                cs.monthly_2d_diags.ct .= FT(0),
                +            ) cs.dates.date[1] cs.dates.date1[1]
                +
                +        end
                +
                +        # run component models sequentially for one coupling timestep (Δt_cpl)
                +        # 1. atmos
                +        ClimaComms.barrier(comms_ctx)
                +
                +        atmos_pull!(cs)
                +        step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error
                +        atmos_push!(cs)
                +
                +        # 2. land
                +        land_pull!(cs)
                +        step!(land_sim.integrator, t - land_sim.integrator.t, true)
                +
                +        # 3. ocean
                +        if cs.mode.name == "slabplanet"
                +            ocean_pull!(cs)
                +            step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)
                +        end
                +
                +        # 4. sea ice
                +        if cs.mode.name == "amip"
                +            ice_pull!(cs)
                +            step!(ice_sim.integrator, t - ice_sim.integrator.t, true)
                +        end
                +
                +        # compute global energy
                +        if !simulation.is_distributed && energy_check && cs.mode.name == "slabplanet"
                +            check_conservation(conservation_check, cs)
                +        end
                +
                +        # step to the next calendar month
                +        @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]
                +
                +    end
                +    @show walltime
                +
                +    return cs
                +end
                +
                +# run the coupled simulation
                +solve_coupler!(cs, energy_check);

                Postprocessing

                Currently all postprocessing is performed using the root process only.

                if ClimaComms.iamroot(comms_ctx)
                +    isdir(COUPLER_OUTPUT_DIR * "_artifacts") ? nothing : mkpath(COUPLER_OUTPUT_DIR * "_artifacts")
                +
                +    # energy check plots
                +    if !is_distributed && energy_check && cs.mode.name == "slabplanet"
                +        @info "Energy Check"
                +        plot_global_energy(
                +            conservation_check,
                +            cs,
                +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_bucket.png"),
                +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_log_bucket.png"),
                +        )
                +    end
                +
                +    # sample animations
                +    if !is_distributed && parsed_args["anim"]
                +        @info "Animations"
                +        include("coupler_utils/viz_explorer.jl")
                +        plot_anim(cs, COUPLER_OUTPUT_DIR * "_artifacts")
                +    end
                +
                +    # plotting AMIP results
                +    if cs.mode.name == "amip"
                +        @info "AMIP plots"
                +
                +        include("coupler_utils/plotter.jl")
                +
                +        # ClimaESM
                +        include("coupler_utils/amip_visualizer.jl")
                +        post_spec = (;
                +            T = (:regridded_3d, :zonal_mean),
                +            u = (:regridded_3d, :zonal_mean),
                +            q_tot = (:regridded_3d, :zonal_mean),
                +            toa = (:regridded_2d, :horizontal_2d),
                +            precipitation = (:regridded_2d, :horizontal_2d),
                +            T_sfc = (:regridded_2d, :horizontal_2d),
                +        )
                +
                +        plot_spec = (;
                +            T = (; clims = (190, 320), units = "K"),
                +            u = (; clims = (-50, 50), units = "m/s"),
                +            q_tot = (; clims = (0, 50), units = "g/kg"),
                +            toa = (; clims = (-250, 210), units = "W/m^2"),
                +            precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                +            T_sfc = (clims = (225, 310), units = "K"),
                +        )
                +        amip_paperplots(
                +            post_spec,
                +            plot_spec,
                +            COUPLER_OUTPUT_DIR,
                +            files_root = ".monthly",
                +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                +        )
                +
                +        # NCEP reanalysis
                +        @info "NCEP plots"
                +        include("coupler_utils/ncep_visualizer.jl")
                +        ncep_post_spec = (;
                +            T = (:zonal_mean,),
                +            u = (:zonal_mean,),
                +            q_tot = (:zonal_mean,),
                +            toa = (:horizontal_2d,),
                +            precipitation = (:horizontal_2d,),
                +            T_sfc = (:horizontal_2d,),
                +        )
                +        ncep_plot_spec = plot_spec
                +        ncep_paperplots(
                +            ncep_post_spec,
                +            ncep_plot_spec,
                +            COUPLER_OUTPUT_DIR,
                +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                +            month_date = cs.dates.date[1],
                +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                +    end
                +
                +    # clean up
                +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                +end

                Temporary Unit Tests

                To be moved to test/

                if !is_distributed && cs.mode.name == "amip"
                +    @info "Unit Tests"
                +    include("coupler_utils/unit_tester.jl")
                +end

                This page was generated using Literate.jl.

                diff --git a/previews/PR258/generated/sea_breeze/atmos_rhs/index.html b/previews/PR258/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..5dbb13b74 --- /dev/null +++ b/previews/PR258/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                Atmospheric Model

                Atmosphere Conservation Equations

                Density:

                \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                Momentum (flux form):

                \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                Potential temperature:

                \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                Total Energy (possibly replace potential temperature equation with total energy conservation):

                \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                Tracer transport:

                \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                \[\rho\tau = -2\rho\nu\nabla u.\]

                Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                Consider components of the viscous stress tensor in three dimensions:

                \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                Which can be interpreted as, for horizontal-momentum:

                1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                2. Vertical divergence of vertical gradients of cell-centered variables $u$
                3. Vertical divergence of horizontal gradients of cell-face variables $w$

                and for vertical-momentum, as:

                1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                3. Vertical divergence of vertical gradients of cell-face variables $w$.

                Model Code

                push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                +
                +using Test
                +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                +
                +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                +using ClimaCore.Geometry
                +using ClimaCore.Utilities: PlusHalf
                +
                +using Logging: global_logger
                +using TerminalLoggers: TerminalLogger
                +global_logger(TerminalLogger())
                +
                +using ClimaCoupler
                +
                +# set up function space
                +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                +    FT = Float64
                +    vertdomain = Domains.IntervalDomain(
                +        Geometry.ZPoint{FT}(zlim[1]),
                +        Geometry.ZPoint{FT}(zlim[2]);
                +        boundary_tags = (:bottom, :top),
                +    )
                +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                +
                +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                +    horztopology = Topologies.IntervalTopology(horzmesh)
                +
                +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                +
                +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                +    return (hv_center_space, hv_face_space)
                +end
                +
                +function pressure(ρθ)
                +    if ρθ >= 0
                +        return MSLP * (R_d * ρθ / MSLP)^γ
                +    else
                +        return NaN
                +    end
                +end
                +
                +Φ(z) = grav * z
                +
                +abstract type BCtag end
                +struct ZeroFlux <: BCtag end
                +
                +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                +
                +function init_sea_breeze_2d(x, z)
                +    θ₀ = atm_T_ini
                +    cp_d = C_p
                +    cv_d = C_v
                +    p₀ = MSLP
                +    g = grav
                +    γ = cp_d / cv_d
                +    z_c = 100.0
                +    θ_b = atm_T_ini
                +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                +    θ = θ_b + θ_p # potential temperature
                +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                +    T = π_exn * θ # temperature
                +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                +    ρ = p / R_d / T # density
                +    ρθ = ρ * θ # potential temperature density
                +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                +end
                +
                +function atm_rhs!(dY, Y, params, t)
                +    ρw = Y.ρw
                +    Yc = Y.Yc
                +    dYc = dY.Yc
                +    dρw = dY.ρw
                +
                +    center_coords = Fields.coordinate_field(axes(Yc))
                +
                +    # spectral horizontal operators
                +    hdiv = Operators.Divergence()
                +    hgrad = Operators.Gradient()
                +    hwdiv = Operators.WeakDivergence()
                +    hwgrad = Operators.WeakGradient()
                +
                +    # vertical FD operators with BC's
                +    vdivf2c = Operators.DivergenceF2C(
                +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                +        top = Operators.SetValue(Geometry.WVector(0.0)),
                +    )
                +    vvdivc2f = Operators.DivergenceC2F(
                +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                +    )
                +    uvdivf2c = Operators.DivergenceF2C(
                +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                +    )
                +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                +    Ic = Operators.InterpolateF2C()
                +    ∂ = Operators.DivergenceF2C(
                +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                +        top = Operators.SetValue(Geometry.WVector(0.0)),
                +    )
                +    ∂f = Operators.GradientC2F()
                +    ∂c = Operators.GradientF2C()
                +    B = Operators.SetBoundaryOperator(
                +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                +        top = Operators.SetValue(Geometry.WVector(0.0)),
                +    )
                +
                +    ∇_z_ρθ = Operators.DivergenceF2C(
                +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                +    )
                +
                +    uₕ = @. Yc.ρuₕ / Yc.ρ
                +    w = @. ρw / If(Yc.ρ)
                +    wc = @. Ic(ρw) / Yc.ρ
                +    p = @. pressure(Yc.ρθ)
                +    θ = @. Yc.ρθ / Yc.ρ
                +    Yfρ = @. If(Yc.ρ)
                +
                +    ### HYPERVISCOSITY
                +    # 1) compute hyperviscosity coefficients
                +    @. dYc.ρθ = hwdiv(hgrad(θ))
                +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                +    @. dρw = hwdiv(hgrad(w))
                +    Spaces.weighted_dss!(dYc)
                +    Spaces.weighted_dss!(dρw)
                +
                +    κ₄ = 0.0 # m^4/s
                +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                +
                +    # density
                +    @. dYc.ρ = -∂(ρw)
                +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                +
                +    # potential temperature
                +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                +
                +    # horizontal momentum
                +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                +
                +    # vertical momentum
                +    @. dρw +=
                +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                +    @. dρw -= hdiv(uₕf ⊗ ρw)
                +
                +    # DIFFUSION
                +    κ₂ = 5.0 # m^2/s
                +    #  1a) horizontal div of horizontal grad of horiz momentun
                +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                +    #  1b) vertical div of vertical grad of horiz momentun
                +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                +
                +    #  1c) horizontal div of horizontal grad of vert momentum
                +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                +    #  1d) vertical div of vertical grad of vert momentun
                +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                +
                +    #  2a) horizontal div of horizontal grad of potential temperature
                +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                +    #  2b) vertical div of vertial grad of potential temperature
                +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                +
                +    Spaces.weighted_dss!(dYc)
                +    Spaces.weighted_dss!(dρw)
                +    return dY
                +end
                +
                +# init simulation
                +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                +
                +    # construct domain spaces
                +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                +    center_coords = Fields.coordinate_field(hv_center_space)
                +    face_coords = Fields.coordinate_field(hv_face_space)
                +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                +
                +    # initialize prognostic variables
                +    Yc = map(center_coords) do coord
                +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                +        sea_breeze
                +    end
                +
                +    ρw = map(face_coords) do coord
                +        Geometry.WVector(0.0)
                +    end
                +
                +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                +
                +    # select boundary conditions
                +    if bc === nothing
                +        bc = (
                +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                +        )
                +    end
                +
                +    return Y, bc, domain
                +end
                +
                +using OrdinaryDiffEq
                +function atm_run!(Y, bc, domain)
                +    dYdt = similar(Y)
                +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                +    atm_rhs!(dYdt, Y, params, 0.0)
                +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                +    Δt = 0.025
                +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                +end

                Coupled Atmos Wrappers

                # Atmos Simulation - later to live in ClimaAtmos
                +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                +    integrator::Any
                +end
                +
                +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                +
                +    atm_integ = init(
                +        atm_prob,
                +        timestepper,
                +        dt = dt,
                +        saveat = saveat,
                +        progress = true,
                +        progress_message = (dt, u, params, t) -> t,
                +        callback = callbacks,
                +    )
                +
                +    return AtmosSimulation(atm_integ)
                +end
                +
                +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                +end
                +
                +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                +    # reset flux accumulator
                +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                +
                +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                +end

                Coupled Boundary Conditions

                The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                struct CoupledFlux <: BCtag end
                +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                +    # flux calculation
                +    Yc = Y.Yc
                +    uₕ = Yc.ρuₕ ./ Yc.ρ
                +    ρw = Y.ρw
                +    If2c = Operators.InterpolateF2C()
                +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                +    w = If2c.(ρw) ./ Yc.ρ
                +    cuv = @. Geometry.UWVector(uₕ)
                +    windspeed = @. norm(cuv)
                +    windspeed_boundary = Fields.level(windspeed, 1)
                +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                +    ρ_boundary = Fields.level(Yc.ρ, 1)
                +
                +    # build atmos face fields on surface boundary space to enable broadcasting
                +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                +
                +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                +    dθ = @. θ_boundary - p.T_sfc
                +    heat_flux = @. -λ * dθ
                +    @. dY.F_sfc += heat_flux # accumulation
                +
                +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                +end

                This page was generated using Literate.jl.

                diff --git a/previews/PR258/generated/sea_breeze/land_rhs/index.html b/previews/PR258/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..2411132d0 --- /dev/null +++ b/previews/PR258/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                Land Model

                Slab Land ODE

                For our land component, we solve a simple slab land ODE:

                \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                • and $F_{integ}$ is the integrated surface fluxes in time.

                Model Code

                function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                +    """
                +    Slab layer equation
                +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                +        where
                +            F_accumulated = F_integrated / Δt_coupler
                +    """
                +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                +    @unpack T_sfc = du
                +
                +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                +end
                +
                +# set up domain
                +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                +    FT = Float64
                +
                +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                +    topology = Topologies.IntervalTopology(mesh)
                +
                +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                +    quad = Spaces.Quadratures.GL{npoly + 1}()
                +    space = Spaces.SpectralElementSpace1D(topology, quad)
                +
                +    return space
                +end
                +
                +# init simulation
                +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                +
                +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                +    space = hspace_1D((xmin, xmax), npoly, helem)
                +    coords = Fields.coordinate_field(space)
                +    domain = space
                +
                +    # initial condition
                +    T_sfc = map(coords) do coord
                +        T_sfc = 273.0
                +    end
                +
                +    # prognostic variable
                +    Y = Fields.FieldVector(T_sfc = T_sfc)
                +
                +    return Y, domain
                +end

                Coupled Land Wrappers

                # Land Simulation - later to live in ClimaLSM
                +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                +    integrator::Any
                +end
                +
                +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                +    return LandSimulation(lnd_integ)
                +end
                +
                +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                +end
                +
                +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                +end

                This page was generated using Literate.jl.

                diff --git a/previews/PR258/generated/sea_breeze/ocean_rhs/index.html b/previews/PR258/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..3c731e76f --- /dev/null +++ b/previews/PR258/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                Ocean Model

                Slab Ocean ODE

                For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                • and $F_{integ}$ is the integrated surface fluxes in time.

                Model Code

                function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                +    """
                +    Slab layer equation
                +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                +        where
                +            F_accumulated = F_integrated / Δt_coupler
                +    """
                +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                +    @unpack T_sfc = du
                +
                +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                +end
                +
                +# set up domain
                +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                +    FT = Float64
                +
                +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                +    topology = Topologies.IntervalTopology(mesh)
                +
                +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                +    quad = Spaces.Quadratures.GL{npoly + 1}()
                +    space = Spaces.SpectralElementSpace1D(topology, quad)
                +
                +    return space
                +end
                +
                +# init simulation
                +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                +
                +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                +    space = hspace_1D((xmin, xmax), npoly, helem)
                +    coords = Fields.coordinate_field(space)
                +    domain = space
                +
                +    # initial condition
                +    T_sfc = map(coords) do coord
                +        T_sfc = 267.0
                +    end
                +
                +    # prognostic variable
                +    Y = Fields.FieldVector(T_sfc = T_sfc)
                +
                +    return Y, domain
                +end

                Coupled Ocean Wrappers

                # Ocean Simulation - Later to live in Oceananigans
                +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                +    integrator::Any
                +end
                +
                +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                +    return OceanSimulation(ocn_integ)
                +end
                +
                +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                +end
                +
                +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                +end

                This page was generated using Literate.jl.

                diff --git a/previews/PR258/generated/sea_breeze/run/index.html b/previews/PR258/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..f33804c65 --- /dev/null +++ b/previews/PR258/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                Coupled Sea Breeze

                Overview

                This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                Model Initialization

                Component Models

                Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                include("atmos_rhs.jl")
                +include("ocean_rhs.jl")
                +include("land_rhs.jl")
                +
                +# model parameters
                +const atm_T_ini = FT(270.0)
                +const MSLP = FT(1e5)
                +const grav = FT(9.8)
                +const R_d = FT(287.058)
                +const γ = FT(1.4)
                +const C_p = FT(R_d * γ / (γ - 1))
                +const C_v = FT(R_d / (γ - 1))
                +const R_m = R_d
                +cpl_parameters = (
                +    # atmos parameters
                +    atm_μ = FT(0.0001), # diffusion coefficient
                +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                +    MSLP = MSLP, # mean sea level pressure
                +    grav = grav, # gravitational constant
                +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                +    γ = γ, # heat capacity ratio
                +    C_p = C_p, # heat capacity at constant pressure
                +    C_v = C_v, # heat capacity at constant volume
                +    R_m = R_m, # moist R, assumed to be dry
                +    # land slab parameters
                +    lnd_h = FT(0.5), # depth of slab layer [m]
                +    lnd_ρ = FT(1500), # density [kg m^-3]
                +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                +    # ocean slab parameters
                +    ocn_h = FT(0.5), # depth of slab layer [m]
                +    ocn_ρ = FT(1025), # density [kg m^-3]
                +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                +    # coupling parameters
                +    C_H = FT(0.0015),
                +)
                +
                +# DSS callback
                +function make_dss_func()
                +    function _dss!(x::Fields.Field)
                +        Spaces.weighted_dss!(x)
                +    end
                +    function _dss!(::Any)
                +        nothing
                +    end
                +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                +    return dss_func
                +end
                +dss_func = make_dss_func()
                +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                Initialization

                The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                @info "Init Models and Maps"
                +
                +t_start, t_end = (0.0, 1.0)
                +Δt_coupled = 0.1
                +saveat = 1e2
                +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                +
                +# Initialize Models
                +atm_Y_default, atm_bc, atm_domain = atm_init(
                +    xmin = -500,
                +    xmax = 500,
                +    zmin = 0,
                +    zmax = 1000,
                +    npoly = 4,
                +    helem = 20,
                +    velem = 20,
                +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                +)
                +
                +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                +
                +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                Remapping

                Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                +
                +maps = (
                +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                +)
                +
                +# initialize coupling fields
                +atm_T_sfc =
                +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                +atm_F_sfc = Fields.zeros(atm_boundary)
                +ocn_F_sfc = Fields.zeros(ocn_domain)
                +lnd_F_sfc = Fields.zeros(lnd_domain)

                Simulations

                Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                +
                +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                +
                +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                struct AOLCoupledSimulation{
                +    A <: AtmosSimulation,
                +    O <: OceanSimulation,
                +    L <: LandSimulation,
                +    C <: ClimaCoupler.CouplerState,
                +} <: ClimaCoupler.AbstractCoupledSimulation
                +    # Atmosphere Simulation
                +    atmos::A
                +    # Ocean Simulation
                +    ocean::O
                +    # Land Simulation
                +    land::L
                +    # Coupler storage
                +    coupler::C
                +end

                step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                +    Δt = t_stop - sim.integrator.t
                +    step!(sim.integrator, Δt, true)
                +end

                The Coupler

                The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                coupler = CouplerState(Δt_coupled)
                +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                +for (name, map) in pairs(maps)
                +    coupler_add_map!(coupler, name, map)
                +end
                +
                +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                Coupled Time Integration

                Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                where $F_{integ}$ has units of $J m^{-2}$.

                function cpl_run(simulation::AOLCoupledSimulation)
                +    @info "Run model"
                +    @unpack atmos, ocean, land, coupler = simulation
                +    Δt_coupled = coupler.Δt_coupled
                +    # coupler stepping
                +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                +        # Atmos
                +        coupler_pull!(atmos, coupler)
                +        step!(atmos, t)
                +        coupler_push!(coupler, atmos)
                +
                +        # Ocean
                +        coupler_pull!(ocean, coupler)
                +        step!(ocean, t)
                +        coupler_push!(coupler, ocean)
                +
                +        # Land
                +        coupler_pull!(land, coupler)
                +        step!(land, t)
                +        coupler_push!(coupler, land)
                +    end
                +    @info "Simulation Complete"
                +end
                +
                +# Run simulation
                +cpl_run(sim)

                References


                This page was generated using Literate.jl.

                diff --git a/previews/PR258/images/canvas_coupler.png b/previews/PR258/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR258/images/cplsetup.png b/previews/PR258/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR258/index.html b/previews/PR258/index.html new file mode 100644 index 000000000..bdf25977d --- /dev/null +++ b/previews/PR258/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                ClimaCoupler.jl

                Coupling CliMA Models

                ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                Coupler Scheme
                ClimaCoupler.jl allows for independent development of interchangeable component models.
                diff --git a/previews/PR258/performance/index.html b/previews/PR258/performance/index.html new file mode 100644 index 000000000..6f0c686ab --- /dev/null +++ b/previews/PR258/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                Performance Analysis Tools

                ClimaCoupler.jl provides basic tools for analyzing performance:

                1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                Flame Graph Interpretation

                • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                canvas

                • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces.

                References

                diff --git a/previews/PR258/postprocessor/index.html b/previews/PR258/postprocessor/index.html new file mode 100644 index 000000000..866299675 --- /dev/null +++ b/previews/PR258/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                PostProcessor

                This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                Diagnostics API

                ClimaCoupler.PostProcessor.postprocessFunction
                postprocess(
                +    name::Symbol,
                +    raw_data::Union{Fields.Field, Array},
                +    p_methods::Tuple;
                +    lev_slice = 1,
                +    datafile_latlon = nothing,
                +    nlat = 90,
                +    nlon = 180,
                +)

                Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                Arguments:

                • name: [Symbol] variable name
                • raw_data: [Union{Fields.Field, Array}] variable data
                • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                • lev_slice: [Int] level index along which the :horizontal_slice is applied
                • datafile_latlon: [String] name of the regrid file
                • nlat: [Int] number of latitudes of the regridded array
                • nlon: [Symbol] number of longitudes of the regridded array
                source
                Missing docstring.

                Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                Missing docstring.

                Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                ClimaCoupler.PostProcessor.DataPackageType
                DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                A container for storing the tyoe, name, data and coordinates of a variable.

                source

                Diagnostics Internal Functions

                diff --git a/previews/PR258/regridder/index.html b/previews/PR258/regridder/index.html new file mode 100644 index 000000000..ed6cacc5e --- /dev/null +++ b/previews/PR258/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                Regridder

                This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                Regridder API

                ClimaCoupler.Regridder.write_to_hdf5Function
                write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                Arguments

                • REGRID_DIR: [String] directory to save output files in.
                • hd_outfile_root: [String] root of the output file name.
                • time: [Dates.DateTime] the timestamp of the data being written.
                • field: [Fields.Field] object to be written.
                • varname: [String] variable name of data.
                • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                source
                ClimaCoupler.Regridder.read_from_hdf5Function
                read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                Arguments

                • REGRID_DIR: [String] directory to save output files in.
                • hd_outfile_root: [String] root of the output file name.
                • time: [Dates.DateTime] the timestamp of the data being written.
                • varname: [String] variable name of data.
                • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                Returns

                • Field or FieldVector
                source
                ClimaCoupler.Regridder.dummmy_remap!Function
                dummmy_remap!(target, source)

                Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                Arguments

                • target: [Fields.Field] destination of remapping.
                • source: [Fields.Field] source of remapping.
                source
                ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                remap_field_cgll_to_rll(
                +    name,
                +    field::Fields.Field,
                +    remap_tmpdir,
                +    datafile_rll;
                +    nlat = 90,
                +    nlon = 180
                +)

                Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                Arguments

                • name: [Symbol] variable name.
                • field: [Fields.Field] data to be remapped.
                • remap_tmpdir: [String] directory used for remapping.
                • datafile_rll: [String] filename of remapped data output.
                source
                ClimaCoupler.Regridder.land_sea_maskFunction
                function land_sea_mask(
                +    FT,
                +    REGRID_DIR,
                +    comms_ctx::ClimaComms.AbstractCommsContext,
                +    infile,
                +    varname,
                +    boundary_space;
                +    outfile_root = "land_sea_cgll",
                +    mono = false,
                +    threshold = 0.7,
                +)

                Initialize a mask for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                Arguments

                • FT: [DataType] Float type
                • REGRID_DIR: [String] directory to save output files in.
                • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                • infile: [String] filename containing input data.
                • varname: [Symbol] variable name.
                • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                • outfile_root: [String] root for output file name.
                • mono: [Bool] flag for monotone remapping.
                • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                Returns

                • Fields.Field
                source
                ClimaCoupler.Regridder.update_masks!Function
                update_masks!(cs::CoupledSimulation)

                Updates dynamically changing masks. Maintains the invariant that the sum of masks is 1 at all points.

                Arguments

                • cs: [CoupledSimulation] containing mask information.
                source
                ClimaCoupler.Regridder.combine_surfaces!Function
                combine_surfaces!(combined_field::Fields.Field, masks::NamedTuple, fields::NamedTuple)

                Sums Field objects in fields weighted by the respective masks, and updates these values in combined_field. NamedTuples fields and masks must have matching field names.

                Arguments

                • combined_field: [Fields.Field] output object containing weighted values.
                • masks: [NamedTuple] containing weights used on values in fields.
                • fields: [NamedTuple] containing values to be weighted by masks.
                source

                Regridder Internal Functions

                ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                Arguments

                • field: [Fields.Field] object populated with the input array.
                • in_array: [Array] input used to fill field.
                • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                source
                ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                hdwrite_regridfile_rll_to_cgll(
                +    FT,
                +    REGRID_DIR,
                +    datafile_rll,
                +    varname,
                +    space;
                +    hd_outfile_root = "data_cgll",
                +    mono = false,
                +)

                Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                Arguments

                • FT: [DataType] Float type.
                • REGRID_DIR: [String] directory to save output files in.
                • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                • varname: [String] the name of the variable to be remapped.
                • space: [Spaces.AbstractSpace] the space to which we are mapping.
                • hd_outfile_root: [String] root of the output file name.
                • mono: [Bool] flag to specify monotone remapping.
                source
                ClimaCoupler.Regridder.write_datafile_ccFunction
                write_datafile_cc(datafile_cc, field, name)

                Write the data stored in field to an NCDataset file datafile_cc.

                Arguments

                • datafile_cc: [String] filename of output file.
                • field: [Fields.Field] to be written to file.
                • name: [Symbol] variable name.
                source
                ClimaCoupler.Regridder.binary_maskFunction
                binary_mask(var::FT; threshold = 0.5)

                Converts a number var to 1, if var is greater than a given threshold value, or 0 otherwise, keeping the same type.

                Arguments

                • var: [FT] value to be converted.
                • threshold: [Float] cutoff value for conversions.
                source
                diff --git a/previews/PR258/search/index.html b/previews/PR258/search/index.html new file mode 100644 index 000000000..4fe7f5983 --- /dev/null +++ b/previews/PR258/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                Loading search...

                  diff --git a/previews/PR258/search_index.js b/previews/PR258/search_index.js new file mode 100644 index 000000000..c81476da5 --- /dev/null +++ b/previews/PR258/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field::Fields.Field, new_space)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield: [Fields.Field] to be remapped to new space.\nnew_space: [Spaces.Space] to remap field to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/amip/coupler_driver/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nimport MPI\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput\n\ninclude(\"cli_options.jl\")\n(s, parsed_args) = parse_commandline()\n\nif isinteractive()\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nconst FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nland_sim_name = \"bucket\"\nt_end = FT(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (0, t_end)\nΔt_cpl = FT(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\n\nimport ClimaCoupler\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/moist_mpi_earth/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nmask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# import coupler unitilies\ninclude(\"coupler_utils/flux_calculator.jl\")\ninclude(\"coupler_utils/conservation_checker.jl\")\ninclude(\"coupler_utils/regridder.jl\")\ninclude(\"coupler_utils/masker.jl\")\ninclude(\"coupler_utils/calendar_timer.jl\")\ninclude(\"coupler_utils/general_helper.jl\")\ninclude(\"coupler_utils/bcfile_reader.jl\")\ninclude(\"coupler_utils/variable_definer.jl\")\ninclude(\"coupler_utils/diagnostics_gatherer.jl\")\ninclude(\"coupler_utils/offline_postprocessor.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"atmos/atmos_init.jl\")\natmos_sim = atmos_init(FT, Y, integrator, params = params);","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea mask","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"slab/slab_utils.jl\")\ninclude(\"bucket/bucket_init.jl\")\ninclude(\"slab/slab_init.jl\")\ninclude(\"slab_ocean/slab_init.jl\")\ninclude(\"slab_ice/slab_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n)","category":"page"},{"location":"generated/amip/coupler_driver/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n comms_ctx,\n sst_data,\n \"SST\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))\n ocean_sim = (;\n integrator = (;\n u = (; T_sfc = SST_init),\n p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),\n SST_info = SST_info,\n )\n )\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n comms_ctx,\n sic_data,\n \"SEAICE\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fractions\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_mask = get_ice_mask.(SIC_init, mono_surface)\n ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)\n )\n\n # sea ice\n ice_sim = (;\n integrator = (;\n u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),\n p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),\n )\n )\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :F_A, :F_E, :F_R, :P_liq, :P_snow)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])","category":"page"},{"location":"generated/amip/coupler_driver/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the coupler_utils/variable_definer.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# 3d diagnostics\nmonthly_3d_diags_names = (:T, :u, :q_tot)\nmonthly_3d_diags = (;\n fields = NamedTuple{monthly_3d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),\n ),\n ct = [0],\n)\n# 2d diagnostics\nmonthly_2d_diags_names = (:precipitation, :toa, :T_sfc)\nmonthly_2d_diags = (;\n fields = NamedTuple{monthly_2d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),\n ),\n ct = [0],\n)\n\n# coupler simulation\ncs = CouplerSimulation{FT}(\n comms_ctx,\n tspan,\n dates,\n boundary_space,\n parsed_args,\n integrator.t,\n FT(Δt_cpl),\n (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n coupler_fields,\n model_sims,\n mode_specifics,\n monthly_3d_diags,\n monthly_2d_diags,\n);","category":"page"},{"location":"generated/amip/coupler_driver/#Initial-States-Exchange","page":"AMIP Driver","title":"Initial States Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# share states between models\ninclude(\"./push_pull.jl\")\natmos_pull!(cs)\nparsed_args[\"ode_algo\"] == \"ARS343\" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing\natmos_push!(cs)\nland_pull!(cs)\n\n# reinitialize (TODO: avoid with interfaces)\nreinit!(atmos_sim.integrator)\nreinit!(land_sim.integrator)\nmode_name == \"amip\" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing\nmode_name == \"slabplanet\" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing","category":"page"},{"location":"generated/amip/coupler_driver/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nif !is_distributed && energy_check && mode_name == \"slabplanet\"\n conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])\n check_conservation(conservation_check, cs)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs, energy_check)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SST_info,\n )\n SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SIC_info,\n )\n SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n\n ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)\n\n # accumulate diagnostics at each timestep\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)\n\n # save and reset monthly averages\n @calendar_callback :(\n map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_3d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"3d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_3d_diags.fields),\n cs.monthly_3d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n @calendar_callback :(\n map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_2d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"2d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_2d_diags.fields),\n cs.monthly_2d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n\n end\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n # 1. atmos\n ClimaComms.barrier(comms_ctx)\n\n atmos_pull!(cs)\n step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error\n atmos_push!(cs)\n\n # 2. land\n land_pull!(cs)\n step!(land_sim.integrator, t - land_sim.integrator.t, true)\n\n # 3. ocean\n if cs.mode.name == \"slabplanet\"\n ocean_pull!(cs)\n step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)\n end\n\n # 4. sea ice\n if cs.mode.name == \"amip\"\n ice_pull!(cs)\n step!(ice_sim.integrator, t - ice_sim.integrator.t, true)\n end\n\n # compute global energy\n if !simulation.is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n check_conservation(conservation_check, cs)\n end\n\n # step to the next calendar month\n @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]\n\n end\n @show walltime\n\n return cs\nend\n\n# run the coupled simulation\nsolve_coupler!(cs, energy_check);","category":"page"},{"location":"generated/amip/coupler_driver/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n isdir(COUPLER_OUTPUT_DIR * \"_artifacts\") ? nothing : mkpath(COUPLER_OUTPUT_DIR * \"_artifacts\")\n\n # energy check plots\n if !is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n @info \"Energy Check\"\n plot_global_energy(\n conservation_check,\n cs,\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_bucket.png\"),\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"coupler_utils/viz_explorer.jl\")\n plot_anim(cs, COUPLER_OUTPUT_DIR * \"_artifacts\")\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n include(\"coupler_utils/plotter.jl\")\n\n # ClimaESM\n include(\"coupler_utils/amip_visualizer.jl\")\n post_spec = (;\n T = (:regridded_3d, :zonal_mean),\n u = (:regridded_3d, :zonal_mean),\n q_tot = (:regridded_3d, :zonal_mean),\n toa = (:regridded_2d, :horizontal_2d),\n precipitation = (:regridded_2d, :horizontal_2d),\n T_sfc = (:regridded_2d, :horizontal_2d),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n )\n amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"coupler_utils/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_2d,),\n precipitation = (:horizontal_2d,),\n T_sfc = (:horizontal_2d,),\n )\n ncep_plot_spec = plot_spec\n ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Temporary-Unit-Tests","page":"AMIP Driver","title":"Temporary Unit Tests","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"To be moved to test/","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if !is_distributed && cs.mode.name == \"amip\"\n @info \"Unit Tests\"\n include(\"coupler_utils/unit_tester.jl\")\nend","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance: ","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki. ","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function. \nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random. \nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. ","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_mask::M # mask with 1 = land, 0 = ocean / sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_mask = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_mask: [Fields.field] mask with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_mask without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_mask to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_sea_mask\nClimaCoupler.Regridder.update_masks!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_sea_mask","page":"Regridder","title":"ClimaCoupler.Regridder.land_sea_mask","text":"function land_sea_mask(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a mask for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_masks!","page":"Regridder","title":"ClimaCoupler.Regridder.update_masks!","text":"update_masks!(cs::CoupledSimulation)\n\nUpdates dynamically changing masks. Maintains the invariant that the sum of masks is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing mask information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, masks::NamedTuple, fields::NamedTuple)\n\nSums Field objects in fields weighted by the respective masks, and updates these values in combined_field. NamedTuples fields and masks must have matching field names.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nmasks: [NamedTuple] containing weights used on values in fields.\nfields: [NamedTuple] containing values to be weighted by masks.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR258/siteinfo.js b/previews/PR258/siteinfo.js new file mode 100644 index 000000000..3600b6d96 --- /dev/null +++ b/previews/PR258/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR258"; diff --git a/previews/PR258/testhelper/index.html b/previews/PR258/testhelper/index.html new file mode 100644 index 000000000..841b7047a --- /dev/null +++ b/previews/PR258/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                  TestHelper

                  This module defines helper functions, objects, and constants to be used by various files in the test folder.

                  TestHelper API

                  ClimaCoupler.TestHelper.create_spaceFunction
                  create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                  +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                  Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                  Arguments

                  • FT: [DataType] Float type
                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                  • R: [FT] radius of the sphere underlying space.
                  • ne: [Integer] number of elements used in the space's mesh.
                  • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                  • nz: [Integer] number of vertical elements
                  source
                  ClimaCoupler.TestHelper.gen_ncdataFunction
                  gen_ncdata(FT, path, varname, val)

                  Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                  Arguments

                  • FT: [DataType] Float type.
                  • path: [String] location to store output datafile.
                  • varname: [Symbol] variable name.
                  • val: [FT] value to store as varname at all indices.
                  source
                  diff --git a/previews/PR258/timemanager/index.html b/previews/PR258/timemanager/index.html new file mode 100644 index 000000000..19199d756 --- /dev/null +++ b/previews/PR258/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                  TimeManager

                  This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                  TimeManager API

                  ClimaCoupler.TimeManager.current_dateFunction
                  current_date(cs::CoupledSimulation, t::Int)

                  Return the model date at the current timestep.

                  Arguments

                  • cs: [CoupledSimulation] containing info about the simulation
                  • t: [Real] number of seconds since simulation began
                  source
                  ClimaCoupler.TimeManager.trigger_callbackFunction
                  trigger_callback(cs, ::Monthly)

                  Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                  Arguments

                  • cs: [CoupledSimulation] containing info about the simulation
                  source
                  Missing docstring.

                  Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                  diff --git a/previews/PR258/timestepping/index.html b/previews/PR258/timestepping/index.html new file mode 100644 index 000000000..3e936e99e --- /dev/null +++ b/previews/PR258/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                  Coupled Simulations & Timestepping

                  ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                  Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                  • step!: advances the component model in time
                  • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                  • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                  ClimaCoupler.run!Function
                  run!(::CoupledSimulation)

                  A simple outer timestepping loop for coupled system runs.

                  This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                  source
                  ClimaCoupler.step!Function
                  step!(sim, dt)

                  Advances a simulation sim by dt.

                  Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                  source
                  ClimaCoupler.coupler_push!Function
                  coupler_push!(coupler::CouplerState, model)

                  Update coupler with fields retrieved from the coupler.

                  coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                  source
                  ClimaCoupler.coupler_pull!Function
                  coupler_pull!(model, coupler::CouplerState)

                  Update model with fields retrieved from the coupler.

                  coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                  source
                  diff --git a/previews/PR258/utilities/index.html b/previews/PR258/utilities/index.html new file mode 100644 index 000000000..8e2f0b627 --- /dev/null +++ b/previews/PR258/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                  Utilities

                  This module contains functions, objects, and constants used by various modules in the coupler.

                  Utilities API

                  Missing docstring.

                  Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                  ClimaCoupler.Utilities.swap_space!Function
                  swap_space!(field::Fields.Field, new_space)

                  Remap the values of a field onto a new space.

                  Arguments

                  • field: [Fields.Field] to be remapped to new space.
                  • new_space: [Spaces.Space] to remap field to.
                  source
                  diff --git a/previews/PR265/assets/documenter.js b/previews/PR265/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR265/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR265/assets/logo.svg b/previews/PR265/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR265/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR265/assets/search.js b/previews/PR265/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR265/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR265/assets/themes/documenter-dark.css b/previews/PR265/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR265/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                  that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR265/assets/themes/documenter-light.css b/previews/PR265/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR265/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
                  that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR265/assets/themeswap.js b/previews/PR265/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR265/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR265/assets/warner.js b/previews/PR265/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR265/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                  Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR265/bcreader/index.html b/previews/PR265/bcreader/index.html new file mode 100644 index 000000000..edcd5e85d --- /dev/null +++ b/previews/PR265/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                  BCReader

                  This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                  BCReader API

                  ClimaCoupler.BCReader.BCFileInfoType
                  BCFileInfo

                  Stores information specific to each boundary condition from a file and each variable.

                  Inputs:

                  • bcfile_dir::b # directory of the BC file
                  • comms_ctx::X # communication context used for MPI
                  • hdoutfileroot::S # filename root for regridded data
                  • varname::V # name of the variable
                  • all_dates::D # vector of all dates contained in the original data file
                  • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                  • scaling_function::O # function that scales, offsets or transforms the raw variable
                  • land_mask::M # mask with 1 = land, 0 = ocean / sea-ice
                  • segment_idx::Vector{Int} # index of the monthly data in the file
                  • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                  • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                  • interpolate_daily::Bool # switch to trigger daily interpolation
                  source
                  ClimaCoupler.BCReader.bcfile_info_initFunction
                  bcfile_info_init(
                  +    FT,
                  +    bcfile_dir,
                  +    datafile_rll,
                  +    varname,
                  +    boundary_space,
                  +    comms_ctx;
                  +    interpolate_daily = false,
                  +    segment_idx0 = nothing,
                  +    scaling_function = no_scaling,
                  +    land_mask = nothing,
                  +    date0 = nothing,
                  +    mono = true,
                  +)

                  Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                  Arguments

                  • FT: [DataType] Float type.
                  • bcfile_dir: [String] directory the BC file is stored in.
                  • datafile_rll: [String] file containing data to regrid.
                  • varname: [String] name of the variable to be regridded.
                  • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                  • interpolate_daily: [Bool] switch to trigger daily interpolation.
                  • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                  • scaling function: [Function] scales, offsets or transforms varname.
                  • land_mask: [Fields.field] mask with 1 = land, 0 = ocean / sea-ice.
                  • date0: [Dates.DateTime] start date of the file data.
                  • mono: [Bool] flag for monotone remapping of datafile_rll.

                  Returns

                  • BCFileInfo
                  source
                  ClimaCoupler.BCReader.update_midmonth_data!Function
                  update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                  Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                  Arguments

                  • date: [Dates.DateTime] start date for data.
                  • bcf_info: [BCFileInfo] containing boundary condition data.
                  source
                  ClimaCoupler.BCReader.next_date_in_fileFunction
                  next_date_in_file(bcf_info)

                  Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                  Arguments

                  • bcf_info: [BCFileInfo] containing the date information.

                  Returns

                  • Dates.DateTime
                  source
                  ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                  interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                  Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                  Arguments

                  • date: [Dates.DateTime] start date for data.
                  • bcf_info: [BCFileInfo] contains fields to be interpolated.

                  Returns

                  • Fields.field
                  source

                  BCReader Internal Functions

                  ClimaCoupler.BCReader.no_scalingFunction
                  no_scaling(field, bcf_info)

                  Remap the values of a field onto the space of the bcf_info's land_mask without scaling.

                  Arguments

                  • field: [Fields.Field] contains the values to be remapped.
                  • bcf_info: [BCFileInfo] contains a land_mask to remap onto the space of.
                  source
                  ClimaCoupler.BCReader.interpolFunction
                  interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                  Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                  Arguments

                  • f1: [FT] first value to be interpolated (f(t1) = f1).
                  • f2: [FT] second value to be interpolated.
                  • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                  • Δt_t2t1: [FT] time between t1 and t2.

                  Returns

                  • FT
                  source
                  diff --git a/previews/PR265/conservation/index.html b/previews/PR265/conservation/index.html new file mode 100644 index 000000000..0c1b921d0 --- /dev/null +++ b/previews/PR265/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                  Conservation Checks

                  If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                  Only energy and water are currently implemented.

                  Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                  Coupler Object API

                  ClimaCoupler.ConservationChecker.check_conservation!Function
                  check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                  itertes over all specified conservation checks.

                  source
                      check_conservation!(
                  +    cc::EnergyConservationCheck,
                  +    coupler_sim,
                  +    get_slab_energy,
                  +    get_land_energy,
                  +    )

                  computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                  TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                  source
                  check_conservation!(
                  +cc::WaterConservationCheck,
                  +coupler_sim,
                  +get_slab_energy,
                  +get_land_energy,
                  +)

                  computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                  Note: in the future this should not use push!.

                  source
                  ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                  plot_global_conservation(
                  +    cc::EnergyConservationCheck,
                  +    coupler_sim::CoupledSimulation;
                  +    figname1 = "total_energy.png",
                  +    figname2 = "total_energy_log.png",
                  +)

                  Creates two plots of the globally integrated quantity (energy, $\rho e$):

                  1. global quantity of each model component as a function of time,

                  relative to the initial value;

                  1. fractional change in the sum of all components over time on a log scale.
                  source
                  plot_global_conservation(
                  +    cc::WaterConservationCheck,
                  +    coupler_sim::CoupledSimulation;
                  +    figname1 = "total_energy.png",
                  +    figname2 = "total_energy_log.png",
                  +)

                  Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                  1. global quantity of each model component as a function of time,

                  relative to the initial value;

                  1. fractional change in the sum of all components over time on a log scale.
                  source
                  diff --git a/previews/PR265/couplerstate/index.html b/previews/PR265/couplerstate/index.html new file mode 100644 index 000000000..0c3835407 --- /dev/null +++ b/previews/PR265/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                  Coupler State

                  The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                  The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                  Coupler Object API

                  ClimaCoupler.CouplerStateType
                  CouplerState()

                  Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                  A field is exported by one component and imported by one or more other components.

                  source
                  ClimaCoupler.coupler_add_field!Function
                  coupler_add_field!(
                  +        coupler::CouplerState,
                  +        fieldname::Symbol,
                  +        fieldvalue,
                  +    )

                  Add a field to the coupler that is accessible with key fieldname.

                  Arguments

                  • coupler: coupler object the field is added to.
                  • fieldname: key to access the field in the coupler.
                  • fieldvalue: data array of field values.
                  source
                  ClimaCoupler.coupler_getFunction
                  coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                  Retrieve data array corresponding to fieldname.

                  If a target_sim is passed, the field is remapped to that simulation's boundary space.

                  source
                  diff --git a/previews/PR265/diagnostics/index.html b/previews/PR265/diagnostics/index.html new file mode 100644 index 000000000..3549ed3fa --- /dev/null +++ b/previews/PR265/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                  Diagnostics

                  This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                  Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                  Diagnostics API

                  Missing docstring.

                  Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                  ClimaCoupler.Diagnostics.get_varFunction
                  get_var(cs::CoupledSimulation, x)

                  Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                  Example:

                  getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                  source
                  ClimaCoupler.Diagnostics.save_diagnosticsFunction
                  save_diagnostics(cs::CoupledSimulation)
                  +
                  +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                  Saves all entries in dg in separate HDF5 files per variable in output_dir.

                  source

                  Diagnostics Internal Functions

                  Missing docstring.

                  Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                  ClimaCoupler.Diagnostics.operationFunction
                  operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                  Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                  source
                  operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                  Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                  source
                  ClimaCoupler.Diagnostics.pre_saveFunction
                  pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                  Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                  source
                  pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                  Collects variables and performs all specified operations before saving the snapshot diagnostics.

                  source
                  diff --git a/previews/PR265/generated/amip/coupler_driver/index.html b/previews/PR265/generated/amip/coupler_driver/index.html new file mode 100644 index 000000000..8f27dc24d --- /dev/null +++ b/previews/PR265/generated/amip/coupler_driver/index.html @@ -0,0 +1,387 @@ + +AMIP Driver · ClimaCoupler.jl

                  AMIP Driver

                  Overview

                  AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                  • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                  • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                  For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                  This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                  Start Up

                  Before starting Julia, ensure your environment is properly set up:

                  module purge
                  +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                  +
                  +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                  +export JUlIA_MPI_BINARY="system"
                  +export JULIA_HDF5_PATH=""

                  Next instantiate/build all packages listed in Manifest.toml:

                  julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                  +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                  The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                  julia --project --threads 8

                  Initialization

                  Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                  import SciMLBase: step!
                  +using OrdinaryDiffEq
                  +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                  +using LinearAlgebra
                  +import Test: @test
                  +using Dates
                  +using UnPack
                  +import MPI
                  +
                  +using ClimaCore.Utilities: half, PlusHalf
                  +using ClimaCore: InputOutput
                  +
                  +include("cli_options.jl")
                  +(s, parsed_args) = parse_commandline()
                  +
                  +if isinteractive()
                  +end
                  +
                  +# read in some parsed command line arguments
                  +mode_name = parsed_args["mode_name"]
                  +run_name = parsed_args["run_name"]
                  +energy_check = parsed_args["energy_check"]
                  +const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                  +land_sim_name = "bucket"
                  +t_end = FT(time_to_seconds(parsed_args["t_end"]))
                  +tspan = (0, t_end)
                  +Δt_cpl = FT(parsed_args["dt_cpl"])
                  +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                  +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                  +mono_surface = parsed_args["mono_surface"]
                  +
                  +import ClimaCoupler
                  +pkg_dir = pkgdir(ClimaCoupler)
                  +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/moist_mpi_earth/output", joinpath(mode_name, run_name))
                  +mkpath(COUPLER_OUTPUT_DIR)
                  +
                  +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                  +mkpath(REGRID_DIR)
                  +
                  +@info COUPLER_OUTPUT_DIR
                  +@info parsed_args
                  +
                  +# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration
                  +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                  +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                  +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                  +mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                  +
                  +# import coupler unitilies
                  +include("coupler_utils/flux_calculator.jl")
                  +include("coupler_utils/conservation_checker.jl")
                  +include("coupler_utils/regridder.jl")
                  +include("coupler_utils/masker.jl")
                  +include("coupler_utils/calendar_timer.jl")
                  +include("coupler_utils/general_helper.jl")
                  +include("coupler_utils/bcfile_reader.jl")
                  +include("coupler_utils/variable_definer.jl")
                  +include("coupler_utils/diagnostics_gatherer.jl")
                  +include("coupler_utils/offline_postprocessor.jl")

                  Component Model Initialization

                  Here we set initial and boundary conditions for each component model.

                  Atmosphere

                  This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                  # init atmos model component
                  +include("atmos/atmos_init.jl")
                  +atmos_sim = atmos_init(FT, Y, integrator, params = params);

                  We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                  # init a 2D bounary space at the surface
                  +boundary_space = atmos_sim.domain.face_space.horizontal_space

                  init land-sea mask

                  land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, "LSMASK", boundary_space, mono = mono_surface)
                  +
                  +# init surface (slab) model components
                  +include("slab/slab_utils.jl")
                  +include("bucket/bucket_init.jl")
                  +include("slab/slab_init.jl")
                  +include("slab_ocean/slab_init.jl")
                  +include("slab_ice/slab_init.jl")

                  Land

                  We use ClimaLSM.jl's bucket model.

                  land_sim = bucket_init(
                  +    FT,
                  +    FT.(tspan),
                  +    parsed_args["config"],
                  +    parsed_args["albedo_from_file"],
                  +    comms_ctx,
                  +    REGRID_DIR;
                  +    dt = FT(Δt_cpl),
                  +    space = boundary_space,
                  +    saveat = FT(saveat),
                  +)

                  Ocean and Sea Ice

                  In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                  In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                  @info mode_name
                  +if mode_name == "amip"
                  +    @info "AMIP boundary conditions - do not expect energy conservation"
                  +
                  +    # ocean
                  +    SST_info = bcfile_info_init(
                  +        FT,
                  +        comms_ctx,
                  +        sst_data,
                  +        "SST",
                  +        boundary_space,
                  +        interpolate_daily = true,
                  +        scaling_function = clean_sst, ## convert to Kelvin
                  +        land_mask = land_mask,
                  +        date0 = date0,
                  +        mono = mono_surface,
                  +    )
                  +
                  +    update_midmonth_data!(date0, SST_info)
                  +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                  +    ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))
                  +    ocean_sim = (;
                  +        integrator = (;
                  +            u = (; T_sfc = SST_init),
                  +            p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),
                  +            SST_info = SST_info,
                  +        )
                  +    )
                  +    # sea ice
                  +    SIC_info = bcfile_info_init(
                  +        FT,
                  +        comms_ctx,
                  +        sic_data,
                  +        "SEAICE",
                  +        boundary_space,
                  +        interpolate_daily = true,
                  +        scaling_function = clean_sic, ## convert to fractions
                  +        land_mask = land_mask,
                  +        date0 = date0,
                  +        mono = mono_surface,
                  +    )
                  +    update_midmonth_data!(date0, SIC_info)
                  +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                  +    ice_mask = get_ice_mask.(SIC_init, mono_surface)
                  +    ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)
                  +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                  +
                  +elseif mode_name == "slabplanet"
                  +    # ocean
                  +    ocean_sim = ocean_init(
                  +        FT;
                  +        tspan = tspan,
                  +        dt = Δt_cpl,
                  +        space = boundary_space,
                  +        saveat = saveat,
                  +        ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)
                  +    )
                  +
                  +    # sea ice
                  +    ice_sim = (;
                  +        integrator = (;
                  +            u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),
                  +            p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),
                  +        )
                  +    )
                  +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                  +end

                  Coupler Initialization

                  The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                  # coupler exchange fields
                  +coupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :F_A, :F_E, :F_R, :P_liq, :P_snow)
                  +coupler_fields =
                  +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                  +
                  +# model simulations
                  +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                  +
                  +# dates
                  +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])

                  Online Diagnostics

                  User can write custom diagnostics in the coupler_utils/variable_definer.jl.

                  # 3d diagnostics
                  +monthly_3d_diags_names = (:T, :u, :q_tot)
                  +monthly_3d_diags = (;
                  +    fields = NamedTuple{monthly_3d_diags_names}(
                  +        ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),
                  +    ),
                  +    ct = [0],
                  +)
                  +# 2d diagnostics
                  +monthly_2d_diags_names = (:precipitation, :toa, :T_sfc)
                  +monthly_2d_diags = (;
                  +    fields = NamedTuple{monthly_2d_diags_names}(
                  +        ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),
                  +    ),
                  +    ct = [0],
                  +)
                  +
                  +# coupler simulation
                  +cs = CouplerSimulation{FT}(
                  +    comms_ctx,
                  +    tspan,
                  +    dates,
                  +    boundary_space,
                  +    parsed_args,
                  +    integrator.t,
                  +    FT(Δt_cpl),
                  +    (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                  +    coupler_fields,
                  +    model_sims,
                  +    mode_specifics,
                  +    monthly_3d_diags,
                  +    monthly_2d_diags,
                  +);

                  Initial States Exchange

                  # share states between models
                  +include("./push_pull.jl")
                  +atmos_pull!(cs)
                  +parsed_args["ode_algo"] == "ARS343" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing
                  +atmos_push!(cs)
                  +land_pull!(cs)
                  +
                  +# reinitialize (TODO: avoid with interfaces)
                  +reinit!(atmos_sim.integrator)
                  +reinit!(land_sim.integrator)
                  +mode_name == "amip" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing
                  +mode_name == "slabplanet" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing

                  Initialize Conservation Checks

                  # init conservation info collector
                  +if !is_distributed && energy_check && mode_name == "slabplanet"
                  +    conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])
                  +    check_conservation(conservation_check, cs)
                  +end

                  Coupling Loop

                  function solve_coupler!(cs, energy_check)
                  +    @info "Starting coupling loop"
                  +
                  +    @unpack model_sims, Δt_cpl, tspan = cs
                  +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                  +
                  +    # step in time
                  +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                  +
                  +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                  +
                  +        # print date on the first of month
                  +        @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]
                  +
                  +        if cs.mode.name == "amip"
                  +
                  +            # monthly read of boundary condition data for SST and SIC
                  +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(
                  +                cs.mode.SST_info,
                  +            )
                  +            SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)
                  +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(
                  +                cs.mode.SIC_info,
                  +            )
                  +            SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                  +
                  +            ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)
                  +
                  +            # accumulate diagnostics at each timestep
                  +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)
                  +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)
                  +
                  +            # save and reset monthly averages
                  +            @calendar_callback :(
                  +                map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),
                  +                save_hdf5(
                  +                    cs.comms_ctx,
                  +                    cs.monthly_3d_diags.fields,
                  +                    cs.dates.date[1],
                  +                    COUPLER_OUTPUT_DIR,
                  +                    name_tag = "3d_",
                  +                ),
                  +                map(x -> x .= FT(0), cs.monthly_3d_diags.fields),
                  +                cs.monthly_3d_diags.ct .= FT(0),
                  +            ) cs.dates.date[1] cs.dates.date1[1]
                  +            @calendar_callback :(
                  +                map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),
                  +                save_hdf5(
                  +                    cs.comms_ctx,
                  +                    cs.monthly_2d_diags.fields,
                  +                    cs.dates.date[1],
                  +                    COUPLER_OUTPUT_DIR,
                  +                    name_tag = "2d_",
                  +                ),
                  +                map(x -> x .= FT(0), cs.monthly_2d_diags.fields),
                  +                cs.monthly_2d_diags.ct .= FT(0),
                  +            ) cs.dates.date[1] cs.dates.date1[1]
                  +
                  +        end
                  +
                  +        # run component models sequentially for one coupling timestep (Δt_cpl)
                  +        # 1. atmos
                  +        ClimaComms.barrier(comms_ctx)
                  +
                  +        atmos_pull!(cs)
                  +        step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error
                  +        atmos_push!(cs)
                  +
                  +        # 2. land
                  +        land_pull!(cs)
                  +        step!(land_sim.integrator, t - land_sim.integrator.t, true)
                  +
                  +        # 3. ocean
                  +        if cs.mode.name == "slabplanet"
                  +            ocean_pull!(cs)
                  +            step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)
                  +        end
                  +
                  +        # 4. sea ice
                  +        if cs.mode.name == "amip"
                  +            ice_pull!(cs)
                  +            step!(ice_sim.integrator, t - ice_sim.integrator.t, true)
                  +        end
                  +
                  +        # compute global energy
                  +        if !simulation.is_distributed && energy_check && cs.mode.name == "slabplanet"
                  +            check_conservation(conservation_check, cs)
                  +        end
                  +
                  +        # step to the next calendar month
                  +        @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]
                  +
                  +    end
                  +    @show walltime
                  +
                  +    return cs
                  +end
                  +
                  +# run the coupled simulation
                  +solve_coupler!(cs, energy_check);

                  Postprocessing

                  Currently all postprocessing is performed using the root process only.

                  if ClimaComms.iamroot(comms_ctx)
                  +    isdir(COUPLER_OUTPUT_DIR * "_artifacts") ? nothing : mkpath(COUPLER_OUTPUT_DIR * "_artifacts")
                  +
                  +    # energy check plots
                  +    if !is_distributed && energy_check && cs.mode.name == "slabplanet"
                  +        @info "Energy Check"
                  +        plot_global_energy(
                  +            conservation_check,
                  +            cs,
                  +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_bucket.png"),
                  +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_log_bucket.png"),
                  +        )
                  +    end
                  +
                  +    # sample animations
                  +    if !is_distributed && parsed_args["anim"]
                  +        @info "Animations"
                  +        include("coupler_utils/viz_explorer.jl")
                  +        plot_anim(cs, COUPLER_OUTPUT_DIR * "_artifacts")
                  +    end
                  +
                  +    # plotting AMIP results
                  +    if cs.mode.name == "amip"
                  +        @info "AMIP plots"
                  +
                  +        include("coupler_utils/plotter.jl")
                  +
                  +        # ClimaESM
                  +        include("coupler_utils/amip_visualizer.jl")
                  +        post_spec = (;
                  +            T = (:regridded_3d, :zonal_mean),
                  +            u = (:regridded_3d, :zonal_mean),
                  +            q_tot = (:regridded_3d, :zonal_mean),
                  +            toa = (:regridded_2d, :horizontal_2d),
                  +            precipitation = (:regridded_2d, :horizontal_2d),
                  +            T_sfc = (:regridded_2d, :horizontal_2d),
                  +        )
                  +
                  +        plot_spec = (;
                  +            T = (; clims = (190, 320), units = "K"),
                  +            u = (; clims = (-50, 50), units = "m/s"),
                  +            q_tot = (; clims = (0, 50), units = "g/kg"),
                  +            toa = (; clims = (-250, 210), units = "W/m^2"),
                  +            precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                  +            T_sfc = (clims = (225, 310), units = "K"),
                  +        )
                  +        amip_paperplots(
                  +            post_spec,
                  +            plot_spec,
                  +            COUPLER_OUTPUT_DIR,
                  +            files_root = ".monthly",
                  +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                  +        )
                  +
                  +        # NCEP reanalysis
                  +        @info "NCEP plots"
                  +        include("coupler_utils/ncep_visualizer.jl")
                  +        ncep_post_spec = (;
                  +            T = (:zonal_mean,),
                  +            u = (:zonal_mean,),
                  +            q_tot = (:zonal_mean,),
                  +            toa = (:horizontal_2d,),
                  +            precipitation = (:horizontal_2d,),
                  +            T_sfc = (:horizontal_2d,),
                  +        )
                  +        ncep_plot_spec = plot_spec
                  +        ncep_paperplots(
                  +            ncep_post_spec,
                  +            ncep_plot_spec,
                  +            COUPLER_OUTPUT_DIR,
                  +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                  +            month_date = cs.dates.date[1],
                  +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                  +    end
                  +
                  +    # clean up
                  +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                  +end

                  Temporary Unit Tests

                  To be moved to test/

                  if !is_distributed && cs.mode.name == "amip"
                  +    @info "Unit Tests"
                  +    include("coupler_utils/unit_tester.jl")
                  +end

                  This page was generated using Literate.jl.

                  diff --git a/previews/PR265/generated/sea_breeze/atmos_rhs/index.html b/previews/PR265/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..9667baf9d --- /dev/null +++ b/previews/PR265/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                  Atmospheric Model

                  Atmosphere Conservation Equations

                  Density:

                  \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                  Momentum (flux form):

                  \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                  Potential temperature:

                  \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                  Total Energy (possibly replace potential temperature equation with total energy conservation):

                  \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                  where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                  Tracer transport:

                  \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                  Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                  \[\rho\tau = -2\rho\nu\nabla u.\]

                  Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                  \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                  with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                  Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                  Consider components of the viscous stress tensor in three dimensions:

                  \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                  Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                  \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                  Which can be interpreted as, for horizontal-momentum:

                  1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                  2. Vertical divergence of vertical gradients of cell-centered variables $u$
                  3. Vertical divergence of horizontal gradients of cell-face variables $w$

                  and for vertical-momentum, as:

                  1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                  2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                  3. Vertical divergence of vertical gradients of cell-face variables $w$.

                  Model Code

                  push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                  +
                  +using Test
                  +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                  +
                  +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                  +using ClimaCore.Geometry
                  +using ClimaCore.Utilities: PlusHalf
                  +
                  +using Logging: global_logger
                  +using TerminalLoggers: TerminalLogger
                  +global_logger(TerminalLogger())
                  +
                  +using ClimaCoupler
                  +
                  +# set up function space
                  +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                  +    FT = Float64
                  +    vertdomain = Domains.IntervalDomain(
                  +        Geometry.ZPoint{FT}(zlim[1]),
                  +        Geometry.ZPoint{FT}(zlim[2]);
                  +        boundary_tags = (:bottom, :top),
                  +    )
                  +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                  +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                  +
                  +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                  +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                  +    horztopology = Topologies.IntervalTopology(horzmesh)
                  +
                  +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                  +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                  +
                  +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                  +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                  +    return (hv_center_space, hv_face_space)
                  +end
                  +
                  +function pressure(ρθ)
                  +    if ρθ >= 0
                  +        return MSLP * (R_d * ρθ / MSLP)^γ
                  +    else
                  +        return NaN
                  +    end
                  +end
                  +
                  +Φ(z) = grav * z
                  +
                  +abstract type BCtag end
                  +struct ZeroFlux <: BCtag end
                  +
                  +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                  +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                  +
                  +function init_sea_breeze_2d(x, z)
                  +    θ₀ = atm_T_ini
                  +    cp_d = C_p
                  +    cv_d = C_v
                  +    p₀ = MSLP
                  +    g = grav
                  +    γ = cp_d / cv_d
                  +    z_c = 100.0
                  +    θ_b = atm_T_ini
                  +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                  +    θ = θ_b + θ_p # potential temperature
                  +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                  +    T = π_exn * θ # temperature
                  +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                  +    ρ = p / R_d / T # density
                  +    ρθ = ρ * θ # potential temperature density
                  +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                  +end
                  +
                  +function atm_rhs!(dY, Y, params, t)
                  +    ρw = Y.ρw
                  +    Yc = Y.Yc
                  +    dYc = dY.Yc
                  +    dρw = dY.ρw
                  +
                  +    center_coords = Fields.coordinate_field(axes(Yc))
                  +
                  +    # spectral horizontal operators
                  +    hdiv = Operators.Divergence()
                  +    hgrad = Operators.Gradient()
                  +    hwdiv = Operators.WeakDivergence()
                  +    hwgrad = Operators.WeakGradient()
                  +
                  +    # vertical FD operators with BC's
                  +    vdivf2c = Operators.DivergenceF2C(
                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                  +    )
                  +    vvdivc2f = Operators.DivergenceC2F(
                  +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                  +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                  +    )
                  +    uvdivf2c = Operators.DivergenceF2C(
                  +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                  +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                  +    )
                  +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                  +    Ic = Operators.InterpolateF2C()
                  +    ∂ = Operators.DivergenceF2C(
                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                  +    )
                  +    ∂f = Operators.GradientC2F()
                  +    ∂c = Operators.GradientF2C()
                  +    B = Operators.SetBoundaryOperator(
                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                  +    )
                  +
                  +    ∇_z_ρθ = Operators.DivergenceF2C(
                  +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                  +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                  +    )
                  +
                  +    uₕ = @. Yc.ρuₕ / Yc.ρ
                  +    w = @. ρw / If(Yc.ρ)
                  +    wc = @. Ic(ρw) / Yc.ρ
                  +    p = @. pressure(Yc.ρθ)
                  +    θ = @. Yc.ρθ / Yc.ρ
                  +    Yfρ = @. If(Yc.ρ)
                  +
                  +    ### HYPERVISCOSITY
                  +    # 1) compute hyperviscosity coefficients
                  +    @. dYc.ρθ = hwdiv(hgrad(θ))
                  +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                  +    @. dρw = hwdiv(hgrad(w))
                  +    Spaces.weighted_dss!(dYc)
                  +    Spaces.weighted_dss!(dρw)
                  +
                  +    κ₄ = 0.0 # m^4/s
                  +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                  +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                  +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                  +
                  +    # density
                  +    @. dYc.ρ = -∂(ρw)
                  +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                  +
                  +    # potential temperature
                  +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                  +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                  +
                  +    # horizontal momentum
                  +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                  +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                  +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                  +
                  +    # vertical momentum
                  +    @. dρw +=
                  +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                  +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                  +    @. dρw -= hdiv(uₕf ⊗ ρw)
                  +
                  +    # DIFFUSION
                  +    κ₂ = 5.0 # m^2/s
                  +    #  1a) horizontal div of horizontal grad of horiz momentun
                  +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                  +    #  1b) vertical div of vertical grad of horiz momentun
                  +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                  +
                  +    #  1c) horizontal div of horizontal grad of vert momentum
                  +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                  +    #  1d) vertical div of vertical grad of vert momentun
                  +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                  +
                  +    #  2a) horizontal div of horizontal grad of potential temperature
                  +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                  +    #  2b) vertical div of vertial grad of potential temperature
                  +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                  +
                  +    Spaces.weighted_dss!(dYc)
                  +    Spaces.weighted_dss!(dρw)
                  +    return dY
                  +end
                  +
                  +# init simulation
                  +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                  +
                  +    # construct domain spaces
                  +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                  +    center_coords = Fields.coordinate_field(hv_center_space)
                  +    face_coords = Fields.coordinate_field(hv_face_space)
                  +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                  +
                  +    # initialize prognostic variables
                  +    Yc = map(center_coords) do coord
                  +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                  +        sea_breeze
                  +    end
                  +
                  +    ρw = map(face_coords) do coord
                  +        Geometry.WVector(0.0)
                  +    end
                  +
                  +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                  +
                  +    # select boundary conditions
                  +    if bc === nothing
                  +        bc = (
                  +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                  +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                  +        )
                  +    end
                  +
                  +    return Y, bc, domain
                  +end
                  +
                  +using OrdinaryDiffEq
                  +function atm_run!(Y, bc, domain)
                  +    dYdt = similar(Y)
                  +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                  +    atm_rhs!(dYdt, Y, params, 0.0)
                  +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                  +    Δt = 0.025
                  +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                  +end

                  Coupled Atmos Wrappers

                  # Atmos Simulation - later to live in ClimaAtmos
                  +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                  +    integrator::Any
                  +end
                  +
                  +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                  +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                  +
                  +    atm_integ = init(
                  +        atm_prob,
                  +        timestepper,
                  +        dt = dt,
                  +        saveat = saveat,
                  +        progress = true,
                  +        progress_message = (dt, u, params, t) -> t,
                  +        callback = callbacks,
                  +    )
                  +
                  +    return AtmosSimulation(atm_integ)
                  +end
                  +
                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                  +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                  +end
                  +
                  +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                  +    # reset flux accumulator
                  +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                  +
                  +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                  +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                  +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                  +end

                  Coupled Boundary Conditions

                  The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                  To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                  struct CoupledFlux <: BCtag end
                  +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                  +    # flux calculation
                  +    Yc = Y.Yc
                  +    uₕ = Yc.ρuₕ ./ Yc.ρ
                  +    ρw = Y.ρw
                  +    If2c = Operators.InterpolateF2C()
                  +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                  +    w = If2c.(ρw) ./ Yc.ρ
                  +    cuv = @. Geometry.UWVector(uₕ)
                  +    windspeed = @. norm(cuv)
                  +    windspeed_boundary = Fields.level(windspeed, 1)
                  +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                  +    ρ_boundary = Fields.level(Yc.ρ, 1)
                  +
                  +    # build atmos face fields on surface boundary space to enable broadcasting
                  +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                  +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                  +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                  +
                  +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                  +    dθ = @. θ_boundary - p.T_sfc
                  +    heat_flux = @. -λ * dθ
                  +    @. dY.F_sfc += heat_flux # accumulation
                  +
                  +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                  +end

                  This page was generated using Literate.jl.

                  diff --git a/previews/PR265/generated/sea_breeze/land_rhs/index.html b/previews/PR265/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..335e14b22 --- /dev/null +++ b/previews/PR265/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                  Land Model

                  Slab Land ODE

                  For our land component, we solve a simple slab land ODE:

                  \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                  • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                  • and $F_{integ}$ is the integrated surface fluxes in time.

                  Model Code

                  function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                  +    """
                  +    Slab layer equation
                  +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                  +        where
                  +            F_accumulated = F_integrated / Δt_coupler
                  +    """
                  +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                  +    @unpack T_sfc = du
                  +
                  +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                  +end
                  +
                  +# set up domain
                  +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                  +    FT = Float64
                  +
                  +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                  +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                  +    topology = Topologies.IntervalTopology(mesh)
                  +
                  +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                  +    quad = Spaces.Quadratures.GL{npoly + 1}()
                  +    space = Spaces.SpectralElementSpace1D(topology, quad)
                  +
                  +    return space
                  +end
                  +
                  +# init simulation
                  +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                  +
                  +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                  +    space = hspace_1D((xmin, xmax), npoly, helem)
                  +    coords = Fields.coordinate_field(space)
                  +    domain = space
                  +
                  +    # initial condition
                  +    T_sfc = map(coords) do coord
                  +        T_sfc = 273.0
                  +    end
                  +
                  +    # prognostic variable
                  +    Y = Fields.FieldVector(T_sfc = T_sfc)
                  +
                  +    return Y, domain
                  +end

                  Coupled Land Wrappers

                  # Land Simulation - later to live in ClimaLSM
                  +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                  +    integrator::Any
                  +end
                  +
                  +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                  +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                  +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                  +    return LandSimulation(lnd_integ)
                  +end
                  +
                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                  +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                  +end
                  +
                  +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                  +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                  +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                  +end

                  This page was generated using Literate.jl.

                  diff --git a/previews/PR265/generated/sea_breeze/ocean_rhs/index.html b/previews/PR265/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..90ad12a3a --- /dev/null +++ b/previews/PR265/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                  Ocean Model

                  Slab Ocean ODE

                  For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                  \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                  • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                  • and $F_{integ}$ is the integrated surface fluxes in time.

                  Model Code

                  function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                  +    """
                  +    Slab layer equation
                  +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                  +        where
                  +            F_accumulated = F_integrated / Δt_coupler
                  +    """
                  +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                  +    @unpack T_sfc = du
                  +
                  +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                  +end
                  +
                  +# set up domain
                  +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                  +    FT = Float64
                  +
                  +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                  +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                  +    topology = Topologies.IntervalTopology(mesh)
                  +
                  +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                  +    quad = Spaces.Quadratures.GL{npoly + 1}()
                  +    space = Spaces.SpectralElementSpace1D(topology, quad)
                  +
                  +    return space
                  +end
                  +
                  +# init simulation
                  +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                  +
                  +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                  +    space = hspace_1D((xmin, xmax), npoly, helem)
                  +    coords = Fields.coordinate_field(space)
                  +    domain = space
                  +
                  +    # initial condition
                  +    T_sfc = map(coords) do coord
                  +        T_sfc = 267.0
                  +    end
                  +
                  +    # prognostic variable
                  +    Y = Fields.FieldVector(T_sfc = T_sfc)
                  +
                  +    return Y, domain
                  +end

                  Coupled Ocean Wrappers

                  # Ocean Simulation - Later to live in Oceananigans
                  +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                  +    integrator::Any
                  +end
                  +
                  +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                  +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                  +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                  +    return OceanSimulation(ocn_integ)
                  +end
                  +
                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                  +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                  +end
                  +
                  +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                  +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                  +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                  +end

                  This page was generated using Literate.jl.

                  diff --git a/previews/PR265/generated/sea_breeze/run/index.html b/previews/PR265/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..e9d44e060 --- /dev/null +++ b/previews/PR265/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                  Coupled Sea Breeze

                  Overview

                  This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                  In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                  Model Initialization

                  Component Models

                  Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                  In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                  include("atmos_rhs.jl")
                  +include("ocean_rhs.jl")
                  +include("land_rhs.jl")
                  +
                  +# model parameters
                  +const atm_T_ini = FT(270.0)
                  +const MSLP = FT(1e5)
                  +const grav = FT(9.8)
                  +const R_d = FT(287.058)
                  +const γ = FT(1.4)
                  +const C_p = FT(R_d * γ / (γ - 1))
                  +const C_v = FT(R_d / (γ - 1))
                  +const R_m = R_d
                  +cpl_parameters = (
                  +    # atmos parameters
                  +    atm_μ = FT(0.0001), # diffusion coefficient
                  +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                  +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                  +    MSLP = MSLP, # mean sea level pressure
                  +    grav = grav, # gravitational constant
                  +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                  +    γ = γ, # heat capacity ratio
                  +    C_p = C_p, # heat capacity at constant pressure
                  +    C_v = C_v, # heat capacity at constant volume
                  +    R_m = R_m, # moist R, assumed to be dry
                  +    # land slab parameters
                  +    lnd_h = FT(0.5), # depth of slab layer [m]
                  +    lnd_ρ = FT(1500), # density [kg m^-3]
                  +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                  +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                  +    # ocean slab parameters
                  +    ocn_h = FT(0.5), # depth of slab layer [m]
                  +    ocn_ρ = FT(1025), # density [kg m^-3]
                  +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                  +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                  +    # coupling parameters
                  +    C_H = FT(0.0015),
                  +)
                  +
                  +# DSS callback
                  +function make_dss_func()
                  +    function _dss!(x::Fields.Field)
                  +        Spaces.weighted_dss!(x)
                  +    end
                  +    function _dss!(::Any)
                  +        nothing
                  +    end
                  +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                  +    return dss_func
                  +end
                  +dss_func = make_dss_func()
                  +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                  Initialization

                  The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                  Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                  @info "Init Models and Maps"
                  +
                  +t_start, t_end = (0.0, 1.0)
                  +Δt_coupled = 0.1
                  +saveat = 1e2
                  +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                  +
                  +# Initialize Models
                  +atm_Y_default, atm_bc, atm_domain = atm_init(
                  +    xmin = -500,
                  +    xmax = 500,
                  +    zmin = 0,
                  +    zmax = 1000,
                  +    npoly = 4,
                  +    helem = 20,
                  +    velem = 20,
                  +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                  +)
                  +
                  +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                  +
                  +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                  Remapping

                  Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                  atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                  +
                  +maps = (
                  +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                  +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                  +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                  +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                  +)
                  +
                  +# initialize coupling fields
                  +atm_T_sfc =
                  +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                  +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                  +atm_F_sfc = Fields.zeros(atm_boundary)
                  +ocn_F_sfc = Fields.zeros(ocn_domain)
                  +lnd_F_sfc = Fields.zeros(lnd_domain)

                  Simulations

                  Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                  atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                  +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                  +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                  +
                  +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                  +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                  +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                  +
                  +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                  +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                  +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                  Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                  struct AOLCoupledSimulation{
                  +    A <: AtmosSimulation,
                  +    O <: OceanSimulation,
                  +    L <: LandSimulation,
                  +    C <: ClimaCoupler.CouplerState,
                  +} <: ClimaCoupler.AbstractCoupledSimulation
                  +    # Atmosphere Simulation
                  +    atmos::A
                  +    # Ocean Simulation
                  +    ocean::O
                  +    # Land Simulation
                  +    land::L
                  +    # Coupler storage
                  +    coupler::C
                  +end

                  step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                  function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                  +    Δt = t_stop - sim.integrator.t
                  +    step!(sim.integrator, Δt, true)
                  +end

                  The Coupler

                  The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                  After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                  Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                  Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                  \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                  where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                  coupler = CouplerState(Δt_coupled)
                  +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                  +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                  +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                  +for (name, map) in pairs(maps)
                  +    coupler_add_map!(coupler, name, map)
                  +end
                  +
                  +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                  Coupled Time Integration

                  Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                  Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                  Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                  \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                  where $F_{integ}$ has units of $J m^{-2}$.

                  function cpl_run(simulation::AOLCoupledSimulation)
                  +    @info "Run model"
                  +    @unpack atmos, ocean, land, coupler = simulation
                  +    Δt_coupled = coupler.Δt_coupled
                  +    # coupler stepping
                  +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                  +        # Atmos
                  +        coupler_pull!(atmos, coupler)
                  +        step!(atmos, t)
                  +        coupler_push!(coupler, atmos)
                  +
                  +        # Ocean
                  +        coupler_pull!(ocean, coupler)
                  +        step!(ocean, t)
                  +        coupler_push!(coupler, ocean)
                  +
                  +        # Land
                  +        coupler_pull!(land, coupler)
                  +        step!(land, t)
                  +        coupler_push!(coupler, land)
                  +    end
                  +    @info "Simulation Complete"
                  +end
                  +
                  +# Run simulation
                  +cpl_run(sim)

                  References


                  This page was generated using Literate.jl.

                  diff --git a/previews/PR265/images/canvas_coupler.png b/previews/PR265/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                  F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR265/images/cplsetup.png b/previews/PR265/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 zcmdqJgLfs)vM3yD!ikd!Cbo@9GV#Q=ZQHhO+qP}n6Wi9?`JHpmz29B${R7|5+AEE! z?ylZ{fPlRHfq-5BMczk1Kn`?3KquNjKpe?HKjr@e{cfA?f*_iwTQ1k!%h(9+Y;(f;4i44h5=A821S|3dqR zu77pM_0<@Ml&y&YV8CC)`bE$6PY3^>vi}|)*Hf5lY!e`5ZRntx+*(SC9De{lI|kl#Xfg*YHQf2 zusSc36Qn>PS6#>X?M>9bvGLw^XlNwzTR%3uJ*DOG(Jh7bQiJ``OY5NB?jlC#yqp)s z$D5ZIA0H7B3JRa+9mQQB&9Tta`=q2`j!#TH7nPKhq_2D@Or+QQ>L7fC zm6df&3q+q5bfe1QQ}SMa>4?}@lPvg`nAq4a1l_ybuNfHqS`qtt6s{;x)?mSyO7il< zQ8zcX@`{SS$#|lb9`wI-mt_;pk2A6`*gA}dH93yzUd5nA&l(#WHQ=$au|G8E9IvAY z5HYwwd|eQ5IcH??yOHq8Q!wmQR4{pt(&2U0A08g6>*{tPGmr@h3oB>?s&mlMR%8?u zh(R_zo2n6<T+wWj{lCd9#oJn;}a{YrNwd zNIg$RR#ud+FNkNf4;nq3E?TXW?0smiCRk}%nT)bBnO98iIrOY`b8Bnw#6$$%Zw{r) z)ZiJWC_v|_TA+MBfr$9zw5+V?06F~@N5lmX-R%6?9i}q*K|mIA(eje88JhJ+agAhL zTwG5tGgzS=cE=TI*&;0f+AGw#1g%uPd3ALOXf)f0EAo#ax5mc8@D>*rRe3w`Ye>O{ zdFg0rqs$~l+hZmvt_3<>?s<>d|gLJUI_i!S{ECZgbZGEYvW-Ym_I6RJrR z0aUUgiZwMl`d3&@4g2lwZTs?as!1de4x7Z}1>6S2Cli3%Mk?RWoFU}xIqvne1G#QH zM*TaZbdGZ4c28s=GbYC8?#>=}h6W!Wh>wqNovh{%?QbbBuPcC9>JDZkloDW{^R*^I zA|kN6KI+g90^ZI8a&q#w?4;J4$;Zs_C-2+uW?_sKJW-($Y1rm_@$CQkWig6l2 zE!AM408<=hQW*{4Z5u76ovj@PgdIRQhwfc{*Py#-FzEwhZX+lO} zL4nO6b#JBV{>?G*jIYb-er=d2G6+h#;F(*Pkq;t%9&;@lx*&cw_17FyQxYG^bAX_@ zgvl3BQ&a!BRI@MUh8n)9oEu9g0|B<+18h4B6>`3!StL3ZmIF~?|A3m=oP|<&Q3FXn zHCWjGsT@V>^h{*ROhs-lpgWJ3UIX#1ET9|)bSZB~0swW6m1)_kqEJwI%*4PY1slY=|RvPnaI_~L4y;Tca7rAaBd4*33gp@>@U5grIYOmK~623u8nnN^)L zvdlg}L%kFP0nwjt6xmrnx#ONJx71~@_rCwg7e4wVBj6{7S^kcTOQV7Xu2ahAo%}do zBBwCda-@Kt{Ts}Guj04$eZ^^OAljP^8%|XvhfnVf2~`&3_azCKz6ZUO*udXsZep%3 z@h_Owj(F=K=*lB7tm*VgbwS8M-F^m>wVseq*2?5BG z{YC`rMIb$zj*6}jO?yPS%+d$wZe$>Z5kwTCfSB{Ckq>-BZiNc7G&0p#V`*_pJobar1Eap58k zfL(2b1f6EcAir-G3m0OcD$dWlOZtDC8&cRps(qtsC;1-fnAjnUesbuGj9wcpBMr{O znx=VbauX=-AnBtfFyjG6#)dG^=wxp{|2`6mc|!En(uje=Mt*GV==CL@l+I&{`uGpL zP!~DE7yWgC5T72paI6dB;|{BonbebLWNtBN;B)Ap(ard^wS2IQY(avry%7@-&4CGC z(D0=H?o$47%OC{*I2fx!xV=-}jDmx^9a`RtwTHGOVp~c>LsMK)vHz+_)TGbT$>4%7|IF)$gF#X}i`Pty<=4irEYBM?&i2TTLTPXc@ld-Y!^Zg?N5`uCA{3uBfQUH?cCa5V+o7sCK;K z*IW-8=6_LT}n ztrpoLeSs#v*1q9&(%uny3#z-;tG+HY+C=c+{4#HH3hYMX%P!EKh{+iG65&k&tOwJ!6!ABQG6D6>-4ws>hn+h1IgqRH3o&3TQUO* z!1=qVc^Zb@8Uzq(txbiXsWQN8UY?(ab!^U^K&+Bcz5N(o(XMI<#3b{ehp}NYGIPbF zIuHv@%a6Dy=BhKr1qI+LDk@ixk4a1&g3w#NBSs*wuo5r%0OtKPy7DAc%x=6QV}P#` z@GvmVvgnuC_!4d#Dr3MC`3ac$=h}%|msOnKc%+P|GTC#ryv~8)riBd{<@8`5odzo7 zRy^is$Eg9jN_mV{r+y2>i5Zj8F5XRSXxJi_Pf@943 zpd=BB_rpqoJlP2vy)}b6vS1Tpbn9sP{ANJNR^NaX)~nZ#C#kv!J2nuZjgZAw^L!k4 ztcC(~do$nx^HzMiE7E*1yKBKTL}R_QH6jbIJF_3Xpxks`s$k{R9N&YB-Eb2RNT76d zXZsl-Zpj!ej z;eWmflQmy~ud1FX2-F-Y#(ixg(YpmUM;k%zO*J>P>tj@|(TT zE$UQ~g0Uw8c~f*Y`@i2>f@BbJk>ffaW0;v&77tY83*QFwE%*1(nrabvyNBDRH`PPy z`KNL#?{Wd^=%4};;1n!_QZBIdgy&*Z zd2~yClZgoQD0<(UV(qUJF?m)V*NqXb10t8DjHkKlZc%4q5*?cm6xot> zlZB9y;^zm2`Sxw+^px{SQhvF%q!K8h6hj?7#;!#$#i-?N2ySr=a z6HO$`3x@D?&)6}Ahf~W3R^`NCa`7MbjM$;nN_7st_qupPCPa{NC^CQX2up|gacgxo z@E%h3dUuj&JQFbxn(!?UB}yG@yk6F;s7d~4Xc4B?& zkhgt2%Uqv32z6?tEv)vfnO)_U%<5fUVa-BMPmhh0)9#x=0~`f}EC)#ZLBiXEXdFRH zZ#xf+3NIS^)=2j9{s{$&?gFbV`#80Qi+$tjtg{0g^`Hy^fD}q3aS2C<16w4$bt7eE zIdpX%Vs-KmfqC|bA0h?Q2%S&~6bTC$KX8Z~;@pybeC|9?C~o0(F;sPS zx!kSeu>X|l^lhIpLT8RwP|;oxqL6;VCYG9$afddV3h}y1)u#eaKkTSt)aALaVZ#^d z_0)@qVil14)`afvP;ma>&NZLPfyw56>$)`5= zP%f-plh(2gEScHjHIr))I!5xNj0DK9P(9+7R09RLb*HxK_LyhOA#aRqmZTZ+mqLHy zcrkUDfteYkiHV8g($ZKEcHcl?0^U<0Q@dKNXw~E4h4Y>p2eV8TLOn4wO$YLEs`3^r zjeg;z)wx+lZeN$j@UXoq5(cxIrV*#LHB38Fgu|6qA}MNbq2e~D-%*~dEdBHhNN1&xo6gk@NL_%KwQgL@%x3~vz z>^^Es&uL@FiaKQu_dc%0S#R{y_4~V;Mq}+GaHpzdS{eORCzmKe3AM(I>!pB=geWN; zcd4{&Ix4euK(I_4wGi~tb__s+EaVTimxW2vlQ+UXfDSKIsLMlaro}x9 zG$Q;;5HxVZQ2-x;*z_^Z`MQHp#H=4Zep(&?ac_A3ZWw{Epvqd^gHInSy0sQ*0AE-# zyB6$WRlr|53s25~`|J?cL#1!++sp$0SSFR46yJ| z2Gnw9$Oa!vsgt6URmhL?31B1)qZ35fLU1-~9=V5U;upi!BZjRd1k~iP@+nS>Gg`<+ zBn&Fg)Hf(VtFj^^#Hm!27YvN8DD(o&t8yAz3bWAuHd1_FEbXTmI*ps($Opc&`Irsmok%AgWTai&mQAf!pSM@MK9azoWOQd6-9v>##9 zrvB!x5$+yo&8U-R1P7<~3drrk98{3+xnVT5w<29uaE|r*tL~~MB8e}-&AEDKj}e2C zTu188J~r;EXjGd04I4L(AmWtC4+DC36caV5JOMPV0*y8uaK6Dwr*$8$=cT7IGt0yu zm>ETp+$4bO-CN5s+06f@PH&Rm)woh$3_Gv`OfyVfsgp9xgl)GnI~yxzKQJ(R#iN9| zt-4PC{I{s6=oX;;r3lIVeWaLLs3>V!Z5!&QwkD~S>hM{OWs``>X#$Ly+NXeY@NP?M zQpY@>Rw(dTvA;g2S8NrsSO1m%SY(SoBhI)A3v8Ig$Ni?FJRfPdi%`iab=B6P3}T_v zt-%q>cj*ed1xd|dGpCa>tnH5=KoctHWxtx7UG}^vI^Csrut&Vzb;NXrbe$$3n8xv! z^E9atGNM!;WPUU^Awy4UR=p=LDFyFE3e@?I!tXAJZ$F=ouYOE)TEo+d)N+Lub59 zpn@8$&PD#tl}+6eBI+umxqLL|cV&`>zoD)XNEXJ%P`cXy1sf}m4|bgqq`x^MBSXj1 za?=i+Su^2Jr6sdu3W9;TX&=v_&LN+0dbQh}zV&Z(lr>T>OnWLD<c6ScU3v0h>x1{SLqe}>r^z&yGka+c`kEkF+tuTmv%0QWf{A%y z4QaZMmSHooc-351&>y+sG?$cwnDM{8zq?iBRbu0`v^HILSUNi!L^L{By%bBg*N$TMZZLu}msUpp6B7Fpnq#OmV6XX3*NWhg(xB88PBKg~R z`M-+d<8nnneZs?Got>S#`vq=O9zx?3`yy=}7*T6~p^yGKz^TEQXjmBz`%I>{j*(Sb znex-#92Kfh`UtkET8j(E#@KaiY&t7QY+lC$q1Vx5OHd9jT`l}5Ej{a$&M1Rj<#V7y zO<xxoPa6cE|=>#u1t1RQLE;oqy~a35PY!fm9& z{NuFO`F}6=j$`DE7g$c2Oo(p%cKDS~EN{9S7zlxahSs~Zq*U?_Us%`cZ?&_>2u$P< zI_m=zAa`%*xlP^BGTe3LevJMmw8kQ zrWSsN4A?QDiL;WiZn0#kg5I&wPft(X!^0wZ{?e5fiqvBZ6*S$!K63a;g(qK@P$(Q_ z_;S2Y2Y?T}HA%m|GmibEZe?Lj%J1t&wV@|NxUY=%qWEk^E<2GJbz3CNbT2O_w-N8} z?~~_o&I}voqw;)V)#+nTk1aS?0D(@J@H5I7(aiUVZK()<%Wmg{AWjFVg)T4veW zIMyoQ7}HpGz^I|tVegU3X0q^W4P02U0URzpvxcaOyJZvT^hUZE>lt@zC-UG|H#8O% zF~WB& zTA`5u5_8`~7H0#`lE?uP46M5SvG1jjO6m-^xfJ$XN2bbgz7UZEy^D~Qz>LuzClXJQUO0mX zlC5;q4dZ-tmp^;g0mcNaimDVOCuMlVtb2CwPf20QG=M2_t4u&5(Aqc6>k*s$pIa(A zvU_U!p3fpvIItk#p6F?hu)F@$~F` zBlfLCz9oS@s%~lu^78`)+_B4JmB#;`n;i=*D=Rb1RLU%SRqFs~Oz_?o>Az=Y<@+$6 zu+x38vBIF@L$_&?n+VA6WrKdhMdPu?wb4%~pMi!hU_hzract8_(v>#SdLVkoFxUTjS z4yeOYgeanCWC^jhzL}b zq$4m<%-k5P%25`_KyOH`1t{QMp>v-%E8pX&YWf>+$JO*$6ba1Kg2nDnjHW-`co0+3 zr!g)&M)5?SFh$#G@(iJs_7p^yeC0#|-0zlZAZSyeff)_Y_^yZ&@; zgT?n59z&5h!{g%u+S>Rc5t5MS5@EBfAa}F;ZbvAFiN8jiBdha(*fKLS@zZ=S_K#-r z+V@!!JqT!Xp?Vaa(v_m9)Q1aZdgX6!i>-k~6e z`NIu(zQM%Ae9L~fS!E>6Yo2@nKS}+$e=_;&83IJ_5{aB=0nAmx1?xu6vB&Cf8Xe2r zI7>)sAxE*!JobXFG|`_t88bD`C?(wOeIkq|ro?<<3S*BGY_*tVmBn2T8yQZ-Y;T76 zlQ{PltG08N@E`24moY(sfu{N(@nvf&dnbyN4~h@K)^`{o>2sgJm@uKUs9!hLe`ijc zvL1;TAHn&9(qxDf3j|kA512jujyEtDv>0(Y&j^ksM;~uP;4L#vySm3qO76!28O5UxeZWUNxD0)(Rn@Ou zKLNaTK=|>R*}?shTdJcg7C%7~%!87~l9`%z84i1enz$FlDiEab`*yG~_Qx8ufro~G zU>K+K;vF*Tr~unWg&#^f{8omlZ_Tmhu_6a``a`E`?*uJzQdU{w8#XPQYlOj1`7J&- zwK^1$Su!{PRUn^%ekJR?7UKR+w9NemC4`8$+kxLqh=(al5;#hHe}(*1eZQ6XkF1{Ra2R6@;DG!NMGtpKdE^5HNc-9&YK1ZN4 zs%sFIs{yr_B)_Aq4w0%nIt(87hJ>?Mz9?O?8jzUXNDAg$c|nm_#(9*PX&GjQCDh$L z?N1!2;ywO^r)`J~C1>_N9~lZ|mVqlUI`Mw7S_gG!!)G5XT*UcT{sc;1ercCXZ*{<6 zA(?dsPp?m7Ayq^CXjo-Qx2Jq}ddo z)xYl@N@Atc>K5|-2|r(UP@=MhTyg|sSU`?j4A|UR;4UK3l)0!8X&%sKNtC6Fn4zM- zeHXmR^~R6P%-iXX)aetjCLyQQ=C?qqrTtip>F!te`Yr^0Fp)Vr#j3g8;zv68B=(HC z;I?Y4^*WuxG(XS0U3km~b?Y$gCJqJ!ct`{BK~aChns9Kj*4tqp8B#_$CXh~a!cs6u zxx)D@-E22M=Dz*qNRQVhxvzWNKu@Jq6|6xu;3Z{y&*4FijUIbTpLTAh#W*Tfo`8b> z2hyaJhRdf{Y^(aJxRYvjRUQK?L?ldBS}tZy z^*BqRBsLpm1NOU5W1=gHmZo2+Zypujh`nI|&0ika?|%|l%uGu8URv)x`9*i)U6$P|UK*D1? zqfyyQhQEoGS>Ki;!lF~y691%Z#iRncM;+l}E(j@MmMfS78(2dVRE3gHAj)NX1p^`J zh|n3wQ%?%pWU%^k>vH4{oH!nOq2L?IX$LZPCaa(ptg`G!JDB6vQ@5@PZ)+$3r{#I|PPf@|`P^OhBEfN!D%4)Fc)T{q=J-^9 zE{;tS@M@rd$xI3-Tl=GK?|$Bhds&CqMs`#ku^ zs}fcB$Hv-I!`3HPNN{n?+uI>tS8w5#A|W9+_)ZLcGQ+#-c*hP28++T$>%@e_)7?93 zjoT0j3hJI+Nyf#N>yqEi2PNg`)kPXD;l;R3d?L!Nr%*(SH>wj4tQof256*T3Ew2}v za0zj1?6!y9QmGj0pYX^eQbWCImVM13t4Y0d#ARTRl0~|*@tg;dj{!M3nw?6cS->^~ z9$?KVnQz}HY#*$dTO0JM??M)lVamp2rQ>a&KH|1!R*uYEhuWvAd8xd9O!VKd6Q*3N zTtXOadEFyvdOeeW6k9#rqV(qJwsJl6^Ij@5glV}Q#$DR<#j0Hcd^Wbl8^i=3i1nR` zJl8zK1+5tSGFUaj@*p4Wt9;#XU9l)XuhF_Z`^IHN+MOL{U0ji#TqhLYK5ieKcdp%> zHBRbkYWOzsN^V#$I3l9y&ZQ5TnVT32GkSYd7q=%{bgmrgVx|Ps0gvmzJ})<8R8x0B z)z$ZV5Ec-DgR8ualXJ;#E|lR^A|9SWl9LKm{b?_QXm5=?;B!M@k0Z?{1##bLuE0sd zZn~qZ%g}hp^qb#Qg;W`88RxFf(LeW>2E(&_6;2!VW@;mY4j4|uV7DACpEV|%LsY6> zcM&Tynu432A8rw(qqF?RLeTfaUjw>6A=@H}eTcj$gb~gSC|WCB%!Q+}!W+`yw+}c! zdQYP%K9_UKwBVm4Lf*;ADh5~2jkK*y{1cjnU1X_-VlRrWS?Kt@CcZ=U}|F6Y@dOkM*ySEEbhj!inh~8+n+OLtR7MNK05isdN9nqU@mBkS zEeTq(TA)c*f4t(azRti2Hsd2HOR6+Yig<(!3`%I{T>Z4F@GKlX@z#seG3a9}6_(2m z1{*PvLZXia^Y;_MGwvhLu1D=I(8UN{vF^vlfU=E8`EMyXUg;oOBQrC~8@syg{W<0r zRY}FbcD&NHXU=CIIeJFMAx7E`nkwPfdHLWG9>*<)XNMJ07Zq}I^Ya>)cdYW)>#?$Y zbCr(CtY4nMZ)HesEBL6c8e$TMYq6YG=B7HU{$s`_CWE(>LOq+RU>(ux1kk<^5#AB6 z0vCGeZWkW&3j5uJ#_+J=mF-6et$H)o(ooB6L3y=oNCwAV-SpZ!*)P$ign;`HsxiF9 z3&}x$W1avzdq@Z^nXszY>r)!>WVE<^brsA>*g4bEDk6sB(sJ**Fzlp4gv+ggGH|e< z-o;A7bW-{i*3DO6NcWg~zO0`*F;5BiugHwNd9`~7ZFEjM65qrLW>k-hzw$yo2gnQp7&vR=BD2w;>B z^A6vVdlq*{r^6CzTIx6g<;O5wYYsi)19&YAVBMX0g9e%ihGPdB$B$0aKHU(?y53>$ z?;VP($_7fOHiuR(c@8&Vqki;IPk{PXorPI#JTZ0&Q(U@PwPfP8tfbs@*vWdtEj+ym zvi8y9W5{R0pM3T{GqzK2kV5b{y!<#@c@9e7b965Yxm@P%{xYtu)>LuFty0=~Q0 zD~Liw84lDE-x9F(?QnW6+TmJ>vLyN%3#T@lI=@u2>z%EaAh(6W{bHUBP>L#L z#j|H#O4xie#SSf- zjz?*7x}?8Zj`f=o1A`l=Q84%;mCNp`uLc2w9uX{-IA}0y-ma)xVhKqmun@ggRR*SYOla>Hw4C-nP zme@uwjt`MfZ$lF5vZT9=wZDr#ileF)&3$TWpo4Yd#FBr?1zm2|V6uzrdTrOBKVjS% z4dI>cAKK5#xjQh_#{JGoU(=_~l2Z;mw8SLFXhJ~~oX&Ox6R+q{X&v>-tI2^^Nm{H! ze-~<)%f1AaRaKJBl8eRs^IG~%u!#6_Jr)bC>y1lsJS-q(WV-QD6hu<0V|*(WG^PLS z>|}HI1=(+E6*T43|(%MO98s+M+$+lvpc8#WAbC%?tDiE|JwNQs@G3@r$INSgKm9f+h) z*aBxYjL@9P!8_nZpl59ZTBe7aQ5AKYyj34cS~iB~K}!H=46MS@&pgC-ME+F(sr{$|*lIitzU!1n6o2p%*x^ody zw-xFUFBVpLTf$x-G?$6t@;-0n8-d5)*-Uq39f+*)V>aZ(#ibTP`q69Btw!4uL@=GpYXC4RL+$TTL(BGZr<3(w`hf}qjhL^T=e`EcnEgbHe z6IF1aMx$~I#S4lWaA+aDryVqGtab_$n%Q5FC2i1pv5$3WYHZwj1f`OE81}|}^nVo; zl*d2;QD}fup2B$ahhjBU*j%9Xl*S1a0s+Pm>>f>7@vd&4doF2{R{Ts*n0eRk>NR_o$?4*H5bL&k%S(LG$5`(hhnJ5d1Gjy3ayVzTKty zMTg_EE?S5{66=RdZvsQF>)tJ%y}Tb= zuQ-E)LfTUwamg*)IW&Z{$(*QKo_7pJ?e>1K<_4PVcN;T3iCu{C2}(0cn(7)qqFt^L z4h~FviQiYg;ThV{U>P*+XCbWDVPtt+eNRnIr9VjJWQ!|G+cO|^8&R&;=2-l^Yiy4o zAUz*ezCoB>q@sP?y^pk`1jMgF@ z{1e`02YvVWcj;gzv>K#KU+kcj8+WO}sI%CvNpwUym-M_ZB>X&38q zTwPJ5PID3_kG{;(%W2rA0RKh=JI<-+Q*GA?f2WqL<{0tCKBF%Z_6ft@hX5o9u!msx z@O);;^ydgc4RH?B;iy#@$MunUaijhYEEwdAclks~x!NabQlW%+_|D<(Ptq_VV-Aia zQoK&^#|;<4P1kei=Y1tjcW*7Xb1S8MN7;s?c*X7h<4Eq$v?R?i037PlL~8J7=RK8` zSeMD#2N$ec8|6rTrt=OC*K=ch;$4MyKdX4f=SYuUX^Pa3tkDLOF}|{ zPX|E~&JR_1!vVAHZ@NFYaxo+x9$3Go6_YjGRSQa@SViKJGV|XX3~(8SI+% z6;0Av!3@VHt3<}=WSaK8pN&wCw=oi4nprC_&UX$f9&|7?4t2O}fm5Z?U^Fqyk29^QW$yH_fCmcoqVX&7RAKMO7AdB*{pLw79M3ibRK4O<4>OPDs#`Sl3=A9 z?si?z8xD)~y{YsX?fn!FB>s8SZG4Pulx_H}yX{4}3?_oPOa1y>vvW^%-R0E%`DY!+ zr^POA;%HNuKZRbkUrw0(;xA3h8+_U>%VqG`{*oz#PpgXdG5WmT>qW?|KISXc^~WPK z=Ucoe{Odcbr~9BLXPjJ`=7f|k;4l9_{JPRGUAT&n%Y_gJKPa#iK+fXx`iDt@_ z4tXY&a*K0k)2aG+0hGPN?um_WhZuyc^z;K)P>J^WbXvcd3=rCmUqVC-M}+l>8M(pj zzpTf!$8?{B1~`CugA=vYrEZxc`hKz1A+ad%;ez)X#Nlck_4ayA_{t}&Xo#iwk+;j2 zxFz2s>Yzc$DB0%ig8WX$A$|>OL4hx5PmVZk0?;Mew{hCOuM}+W*L*o7eOhWOd-}Mm^cbSIkfj>y(*_Hz7kZt#PLjQP@?&+f%$;Ue z36C>);ZfX-63+7YhJr|-PwNEcC?p9HzW3=o?&!h~ugS)I@Flg(DDHnfZ8>rrbLF8*7E%LiKSZ!Atu&W{sG z?7J*Y)%|`_?ZIAer~J#+N&b@o813OUTes75%0sca>YP?cRX68{cvt8lllKW8l0T(J zO5F|1(Mg2<(B|jW9#Xy_Lm6WMGpZ$G|2!byBe4+Tw}=@XW_KmPWpBZG->NrWRM+yb|=ljCyVlAv;l1vV;1@rlScR?%ree>OSH7p=XWyw|@UF?~B<%F^!28l>{m zOG~$zYB!{6e18D=f-)9H^pIY50=c#nSC;fGW&~m0PX3jB{p|Q8FfWHpq?cuBJd1nl z6q94k?r7jwplzesm#Ro=m$RjmmYwltk6R#x9_)|ovoh=2|IUgTFB5{v4ZMO`qOq7N zza#(SN5=IFXO@kF+gY>d^6Md5X0rZPC3W-pMUZlD9FgXwxor*Bc5? z5f5n;&fZ~shq?ZlGvF#iXZ(p=-IO$IRAY@rcVGiy?3D7>KQ??C_feU|LJDucV7yXL z3lO)&iwC95Ce%&+mv*@2jv3%|WjG>k{#wl4thSf9py^P$G`P35@%{n%=>k#J`G&vt zQRdUo0Dfj(QB}ITe{8$J%)oWJiBA7ugx7@=^vFQaj)5Z=Dgui!CyZJDY&ir+WkC6W{?9WxCH-gI(XpGrJlTrDhv@fTsIDr` zXPpLb?YCJswX>62367E`+)X&G{=8Dyl{8AKL%D=s5nDgO$~Ojc3Tk|dknh7fQws1{ zl!`M-DP!t6VY4A)zOdhKI4k<7gV{q zRTyp(IV34C|K;$yf5CtZ2<)33#Y*}+~zyp+|teY(9D-o8#nqC)D_GAS2U zOZfmVN#)#w>JUW*$)+Irn#Dw8W^A@}jb>_U8u(?imc{Bn9x)P8)!r%0btRTu$pb z+%c|4Ta_8bIS=bUtoJPDrL6a=XUMY3=o%Xb7bnk*Yv+Yrn#9edmc1^}n9dLmS@+7t zAvc$%cmCk4M@OH^+F2qL?(b#A561MeKTELE> zr}vtfxcUY)xER56o7dS{Y3ERoju$b;>%mVrHB@04p1=S+6T-_IglG+|0ZjM}VUL({ z%Rnqh8*5fRy?rQ$$%3$s>v9<$N7jhKvbEkqKB zwIUV>Joid36trLVX1XA1XfW2usk&ryH}!lULGJZJDz)wLd#HjD>8+FtZD__GisH7i zI|;7l4>&PYfik&p7#Xpz(630K78SRl&hEZqMO0GzF6vH7U|`b3AAwX;DNhytoAOHm ziiW6T)RjG?r@J;oaCr*{xGeF+_&k3Y*v2NsgMyL}+}}W|R_h8sMugL0mwS8jcrEp~ zQBT4i2JP%>m3e@zAEhflNu|zPPPr~p@FKOVDlbgAX9z2y0UFZ@-}co`-_t>w)t5uS zdb=~kl)wS1C*fKVYGvA}rcd~-**0P`3X3Jq;K=BO7UsJHDrv$@9@fjU3j;QN4z4P| zy&pa{u)_nC&gMkCQ))vaG>K0LX;mcmGQwu;<>p4Ggq2iMj$@Z3sk#D^)~3w1r`e#4 z;1@VZs$h0a4HBNm9TKkdHt=NoZp-eK(k$FoPBp#oY z)*ce_^Be~fDSZI997H6dO_qfB?lX==e`!2U@yG{WKs+J?BcqH`kvl(|!5lTI8wzny`IOkct6u>|Dv>` zz$uuJ{n>(C^2V$k`}4_V`^F`;B#I*^z#<4kub2WCNpN4FV1)65OHU@X6A6V(ICOth z4qx!3bw++^+7}rby!rlR+0vi{)W4~J!L*CofGt zkx5*?$Hh9kfRKAy3--?A_p%uFlKMo*Tokz+4EVLDxd5!Uj_&DQb_ZGsjdI@!ZT4L5qu;jY^c z{c#~6IZ4t@aH3tJ_3-Ti8?KbI{myYzu${r08Ly$ZLJHnn;}pi{GKglVb%mY~!MGgR zU^vwl5pcZjMT1WGyWkOmN%@L-BXVAqGm1n;2qn+`B-N z?jjTD`x1aQ0&75QWoOg-G(UpPpvMr7ll8=sUKIBt>29KfmFa}8Pf!J~C&as;%T(`>>Y_+G@RGm3`YTNHpietzn_Lg~} zcASq$#iKl-iwC9(_B{E&8UkIi#Apm-bJ)|*-5hhUzQee#KB24~vM}NXvg>iaO}qK} zU_1h5Z*7kH>Gid*2f+O;i=*q#W-`Eq$6XYV=$d}~!+w$$0T^AconX!{Q~_rxr0OiW)*+|bZ5fGs8B8G-Q` zNd3C!px~mbZw^d3gpbDH5JeG$DZizf$Fk+df-ckZ`viBM;&Ga+D<9^X{8_n$AQ3a+ zPC933Twbw$+t&IYteLh;>wR|B7ON$G3hsQ)!XG zGU>4d_-<5^WHA{0;h}cxI!CkNS^MZDDz*x1>iI)ySO54G5dssKf>uJdXA~`d_%$zl1URywABKb{hKO%kIuV? zL(Z+ghr|V_N*Zzt;E<0o;(0ZgkssfZx2o*-G%B<=*#()&$}D-km4t2K6{ur7@7BgY zemdf`g{v6`s5eY)AVb_mi42;)8fWv0l?)Cvq_ldIs$oK`T zeeQcoz=?K;>QmMAk;-@xM=C|Y#3XMiYH7mGG?5ED#&&>o3uY_%j(xy_OUF=y#n6w` z2dZOX;8S-P=iDlJ5>0f8w`6fX%Zk}#u#ZAVSYJ-FG(r{;8kdJ7m*C_dR(RPzZ6HYU zf2exPu(+CFTR0&k5C|4Xa0u@1Zb1h3;O_1)Xz<|f?(XjHgS*Y3L-61Z-@NCZ`#sP7 zH$P@~*WT4qy=v9!sEKaA7575HB3Wa7pXZi}04;IW^aV9)UFvNOU6=H>1J}I@#pM;B zD6*{OKZ2zj#3>O{(B;hs+v=F39d#i@0>O-EbbG#^2)CUnn<~!njrzV1rVk9T68Q~x zh)*W4=N?8Y|2>3t-gQTG*8ODXeK|%|TBYW@h4`?w^Yce;5#r#`&~}_8(KaX@=Z>Le zqd$$?vNmMA)igGhZLzKET&IYFnT4Ib7bkf>qq2vIve2=BLjetY)!}lQrH*hr8#8|H zV&pdP`7!&2%JET$RESt0T-??K*bak$9_|)}><>VKd?n}=8h;O_Og&14-lQcQnmN^5 zO%Dl@JJ#`!eb>ig+C6XV7I|7F3;3P2&A)Q^G6JExkd*-LW(Xn1RL{ z>vaE~Ho?0MXD38{0lsEtQBl!sDEyT)Eru#MGmtw1yyoU+8ze~q zGNdER$L|jViIJka*_fUC#5TC2^xnPRKKs-%a}AK)K?XCjxP350$n1U!U!!n)(^otH zYQ2jNc5pteP1o<-;rXf1io073369df-L=vADj`upS>ldO%Ij0-_C?&-l``F`ru2nx zb7{0}FYRtDNc6saeL#nN6zB4T=+R{tm2$0-8zM;dQ@63`(!OLg!8R>Dc1pE9cv;t- zFs1)6)beDd?jE+baDUKmbE5c)$p`KX<$pixFD#6V(dw`bH)@rMb600PBFxm*h;nn% zFx|hlrp3W#RzkcZk6V5VCj91)m{P}FJ z|Hg7RUyNMCM#d3eSjNufev;So{M_~2aS~Gy$nbi<|DhXO-W7(Z|4aFe0TQrXe?;4# z>yX7?&)JNwg!K8MvM~o$$&j<@taGd|CW7TJ!vNs>S8~c>_}&RM@-dvFBVz6ZB$YtU z4bGAZ$5G*@qJNPv&!S1h5N#T(Ano3twm>cm3Jc+}bOLVs0Y%`H9;=wFun3qMhs5tM z0%P_WdY*ta${gFv&EnCZBWhESWE-!&kat0Hg)z6_CtOIJjHZ?+qqoln`rqk#A-9Qf zsc&PKnYUd9WPxq#8Vc~r`X+nHW2i?X>k~~SR#t5iOd@IYhJcyt>D0}&-e6)=Od3mQ zmXczyn)X+R_2=xgp!&X<{nzkutJ?iu@lNjp9E~qZ5lWhxV`62>-uvC-#D33xMHe^6 zeDR+)Jddj~!&Fw(U}f~}k-bGSDSPjKjV3uA&K1Fsf^-g&Hxd(}uS=_K}3uV6Nrz za@sa5`D&KNU-DnM0XzQwA0Y0_P*?QEV+1&%*L$**W;8-xcp)JnU?O{XSZ>&yMnWLS z_zhMB$(Ly4Qys=5Why(Kr>7K;np5XD&kYEvsm*t!_56_=b~^p_DqE0KgPi2>eU86Q zd#rM=PA6XNefp2<-8q3+yKm((>VJ2Kqjt-kc}rR+{azoa{>0784E@0%3&Qpnl?s8znr~%iSIu%6C2KRYq#RS;uTtx%T$7hFOj(uhF9$l+ z{FXl!y4 z#biN3uxgJ^{)_i~u^j*E=hL^iAkuJQVQmbJE>DivhiN~f)3v5t^OuK%90V4-@Tecb zMux=UJ9`jAE4vY+oOKz0@~T2Z95#3xyK)I8YN%G09gROul`6Cx%V&btG8bl1l>(F;aproR+ z%IfM*;<)4mjcv{cx67)hch=$4u$s_cvOd04^KQ81KHj>xwcV7&z!di%4r`${(nm|C zdLl~k@$TYsWX%L)y^(byAZaD%EggRV-}I=|>0U7X2A2@ru*BR2Qek2qCYAgiqv@Wn z+xFLwjuR)4ppI$}yd=TJA1(VpuMHo9a62BmGb?50xyOrNGE&iraxe09dUbe!xM z8d!qNPJvbCUc7xAPE!j1yGRy1M(&naW6R3`n$W*U&uRXvFXlUSb?HwS#E7yX!|E26mBPB3 zq?H74pXO8-PJ@2em7yT1wDkA+2|oEOMyjhgfjVj{Q4yy04Xtc)_tNA`ni3Z*=_Y)- zZ?-5lSlQsCo7XPjetwJ5Nf0@y}0|jXhPiOes*eK5E(L&r6X&>op@SZQ>tdWGV}ZMSY_ixQ&E)VWd1z zpDi6mS=q_0V-k8&geT!lh4Da)h(bjI?&6@nS)%sfRxx#xyXLC{v)ge zDL1yVKJ}=)SnQe!J(fgRBt*~9YZc;iM`*sFAoRj+zF|BpMKzEZsV*+q)}C3mOM9h& zxXdE{?zl+aOPkGVLd6gk#HHYschU1ebQH?W5~Cs+6Fj| z@HkaH#)iy>BXM;&0A7)UgEWICy1InaxZ(Az%qU6nvwH3rxeNr-M52*=f`Zu{ymJp? zXaevsot&!d*0w02aHh8}$l3}Run>dJ(q>rofMz}Q$U9r2@{VGt6FGG}Gjg#w@~an1 zpm(;zr4gsjsVpNcskg3xvTK3W5*hFuyoRVIxtj;h0&3hi?qjx)N0*t0+GaNChfsr+pN| z^h(t#gLp!uPT9_kd!6ZTN@|(UKjiw_EpoB%ib@NrgNq4=*_oi2wsy&0P$(_r`^-&!A*P{$GeJS0jqh3&%oyDOyfS0d^}AX8 z#s5V3-{C`o<+DqjVs5gbtY_t@K!4#mvu~ z>pQ*p@tkD6Po>rtqDGz=ub!cgkau1r0E(2CmzOr)1aimtewxpNDhdKaMGoOJZUZP> zr6xKwZfoGRfb>j)h5duPXh7JFxVQy9gNTah$MkaR8D;&@rD2Ii7QR2X&FX?5l~eF= z@cUwi(zsY#eup)EleIZDIQk3kY=&;JeT0PUj-~+w))BjnJ@c1hy*@vC13xkI=I}UE zwvhH57H6pPR%7u}9r6j-p+ug}Z9z$z=@8l}C5Drkn_MJp55+ZjD!8~~O!^DrlOBpH zX+Z?otcuS+eL{Nk*eq*Vh(jpoAO3VFCMSQN>it!vH59c!p5Do?(avl(@w_{k>hq4Ucxj2bxiNr6CdhD*9V29Tm>wL5F(I_E9kB*p z8je?O%x!8*6JN6uW{Y5h=x7H@Kvf{Ul~0GI#@p7`5lDtZ0e@HS5&DyH5!XV3`Z*Qv zvKcN-U|~6vN2br*U&U%$r?ajpp)8h5 zguHh`1<{|A_OnHek++B*e)EPT#E{@ZUoPwqH0hmx)g3VC;|(cT)I5zalxS3+)!9sl zyya8snt>t<9eAaj@B};?GsCPK)I4=X-b+tqi66GHQFpjtn9=)3M1@j0%Q^1C_D9w| z74f`C`@!A{Tof18{r&vBd^pr?42MYEk0q&bwFWL0)_E^BMr$zah0r0!LhC4x53?w7!>xh12!*7W;!QnMU#| zBu!L+?PYzxt|i${PA-Jtk?8teM7;6wtx;0Y>eGGS)O5_pz}khs{OKBq>qwM!N#>@^ zVkN4nEOMd8_hBcg?_?C1qUI>^GgE*09dfnUt`FmKX(p;T{D^M^>`-F=)TIW>l3gwL zye7RdQM2a2B*56Q&wt9u;cWz((arr_I1CY9TRqa;|e| z|C7IXn)dh38q@3I!S@Q#SxfpIl~Wg`nYy#IS={f)z5hium)JhO7m(z8xd&*i7tk@< za*0*Sz>?8c!F0Mi7k};UvN>;mH zFCOUq$+kv(Iq`b4tS=&>>PbsMLE$9hR4(I&IoN97b+eRRZvD~(iw+DPF86I>Px z!Z{rm{0aH&wX7)Wk>*x>NA>wp1uT@2C&CDir?lvxbzl}&L6kAtahZv^y}#H6jw>1M zP~sUeZXPHlB!!)1@x^wya}lI19PsiJL`Pa$8`GG|b~0~&m0tZGa&VpYuiFi^(tF|Q zvd(A-iP1Ho$>UD+4Xu#0#KLl~g<*X?`3PCp{So0Qt67M;6a;fRNX+DS^+7!Kj~2V^$meUP+* zr=>9q$el>eXiPGoElYq!|#dwC|-E9QtsC{wFl&K41uN|-sy*_rMU zXD1JTc}g`*p+t!v$4!uVytOWTy=1c?AVlZ1f4@;6=`g@%>*F$J5zYR|E>5X*a!Pb= zjiXdnK7dB0Dx<+%VKI1aJbu}~t4rXl^Gg1~!PMs1|Ms^&aQ_>DfM?>!G}T=V%m^ZR z`Sz@)e=zuOgDvp(c0D!E=xu^2Ei& z#M<^|i~Ldj@_axrXZCMy5}FkLl=Ys@7RdDx)Gtn^M0Ryex*UWj_kQ4UawdgBsA<|_ z@-%^z`ECxHsLj9cf{jP|*xX!*Rgb_`uq7?lXNUVFt;ln$KErT~9-5@NRH->{3Q2DU zNXf~5rRwTbj{T;b;GR61#M7Plm~XE0og})@c1=3BZT{8wz&x`#$rFi5N85=ArV;d? zpc0Lo44p+8HFr$=8m-45f8KXbj;T%|h{t=qGkL@dwMp$ZEyac29}g62D_+m6ufBKO z!JU|Y3};0Q#mD|c;VkLeyrt}f9BV(ohQk9g3V=fOuVhwjD>U8u-W`_T)Vso*<9bEy z8B^Kfv#e+BSZeQPMI#m+&I|mf--_7RQmKgaLT)?X&4HUchSZfi_dTqxu5Ke<2m9sK z^eV|mnZV6x!=zLKk1Fk(faZcq9E<&B_m8*RY#BZ_9j~uv{%i(@WGH9>*@ubXMd&cC z$>2-SR+>KRj_NsUu~HKdU&Z~Uzy6OL5$-!_(W!d4+jAun-6c0`F>v|uUZ1$5u zbNtI}K2bn0A7SBl>eV`9X&wr16XbCT>H+;dw`#51 zTKx*O&QU@Bd5-#OLtS==?29S6RX#YNQ`NVf0wt&qZ5_HTb3je#V`NCXVO5g;Zo(Dp zJR7j0m?AQ(@V2)n3OzlIQvQyVkovuC4htK5ATW54JWN#|NpovDgA1)smbKbcL<%uN zE`!sb97objsm5uufYF%s4r%IZ#F<3d`x}L77q~lpGxpYWGCYhJ{@Q12O zck-@}AysKx7>NQkZ;)N!8xq3f#R#!8nYbt5n8`s#!AI%=Ph8RKdvwyDbV2@3v~cP&Gxasm;QU+OXVte~s$;X9}aPwY9Z`oF-C4Q0XHB zYZUAG=?E+Cu3JE$tvxM)u9o`#q$$_>akrtyiIXbMXh4`6nzt|JlN2+a8LX zGkJ=b%Wg6&Ba0+}gG)1Q`1Td&165V9Sdfu_`c$?+1Ol;lE#z}1uPf5tog65Ge(uRw z=f#cMA8Bt#e2(*DAxTUaww{MS+eP-58QugLrqb{!$mk&IkYxr8o;na51VRvT@G=Uh zeXt2$u;b%IAW5Mf?py8UB&gKZ@=u$G4{E9WT6}@ZqtLvw>CPS6YT7&ZUp6%zLXT2i zw>5q*5hZKn-w1-g7ZLNu!rbz^aTugF-4PIOZ>%TwUK9wJXqYxLbNK%3E0 z37mD`{E+a5i*Sf+HlA97d4<+uxUH7pW;3$dsQOdzmRzQK&ONaPoL{QM|Dj$xH?Ud4 z;#~Vy7q`)>J|-v#zKwzh_lQBaJyAOzwwq`lnxw6VGJ}nS9?Nx7kq@;Ey=i!}Ncixq z>Q|Oxt#pUk&1|!ERipj`*CuZ2kUo&n!g4~2Y3^FiqP%r@-0RfRVdIr5!dxht($-q9wHk0tGDjmLR!rLi zc>RWvho#QY|pdH=Lm$B_4W)sC_BEd-i}4{!!&|D_KCrC6LzZ_jo>XX&Gan zIY?#vtR1G{v3>=1rNy_Ka&xFZ))rU_))IL8kMe)J^j#KrJ5QP1Bu{*-sNC5?DO^t+ z_H#=vM`o&8$T3V@Izpopp3zX(c>I`+aXg(*0XY7JiplqlP`1+60295mvbw397)kJI zoUZ0KyKrOC)rRx*#rYmXezcK+NildqU2|j_=s}CF18u}xtt-k=UR01Es?451S=I1qh6v>kX3hi-CfS) z7Z#H*v-!~BW^j=h?|S}(G)4}wsJ|`+cW#m&W}ko ziExQjcc3d7YWDO1JjS%ncCf9LoniN;Wvi(hV&s=^cciC^4(RzCVd}~oF`qT@+)|Lt7+4g(<8oL3#S@qo`9|;|F!pkUGP%C~^Q~v@{*OSV zdh!whJJxQm+f{QO%w<*bpP0_rSQOPES@>5&*yYZ_Z)nHmmj)(Kcon+Ewl&KjAeC8i zL1jB`A1QfxKbn}6`sYZLbr!*XxoytzN~t+6z&3eQLJ=LyzbJgJ0B>0U92Gz(1v!{| za=ih0HqtR;b@lL4m4buI7`n5Mg%z|=<@cBULy3($xh>`{Wrb7tfG|Mytmn-)3U3?5 zn070qT(wyjwhJeH*%B&f%OjYSb3LKZchx4qGX#$?ey#CRL7g;tH>=T-Q zJPTe5IEw$-+~gLOFZW4Dfee%p&;b9~+Pfqz08~JT3?IZ}Z)tQ&dbms@`G6E!UT*1v z#^CvPhJ-O}LNua$B3DA~>UhH*-1j17I3_N&!}-hjab}ABk2CYPLfjJ{@3{L3-c)9} z7!Db}@>2>jvJY4pSvXuk55<0TUMenTX(I9@BbzhOrFTt8mtq!OCwa)Q8NJ2?5%1Bo($spJI*AGPX9dGDjPsUMwS56Ho~km&fg; zre^`VcRpWEWLkOw0Zh|@{&_Sq%@}?CzQz4Z6rzhWe}BG(fE1&mi`(H+HBjkKYVzNe z>RvL^*9^2JD#u0soc(5WGerRkZ^b zD@jS%e#ulCsXU(Ue4y>G&KXf_MtV;|TSoAn4O(t7mg>=eM7+&w2N&5ypHCPJ_IWyO zX$z7g2^)(JDzuf(7qv@OW;nI2DrMwF!KZow=&>&}m6}UfhZNs3H>vXr^$QQH@?FV; z=*57x$N`A=2%Q&DQNOc!mTRPMa!6+`^~!+-b?Sp;CbLhvEOw6 zb_@Q{U4A@%r!V^T2RdP-WxnzJmrus+QFJTO_y&BAl=755lxZgMX=8;TlXyQpsHxs# z;dJL1q)gss1O=b#%P^LT9LMA}xI_5IXYi|?<6u&3_0*!kOZCkI!DfZm^s4ze1bkQ7 z<=N2hod6o{@#tH4GJPUaGm0-0@oRZ6x zwHA6oI`3(D+WmamRq7uZ9mc$t=5(9mHP+QH3?wx3j{Ao2n~4+UZPUlMz_0tvx49X= z*!}16c=|q*t#<+&lKQb3b*T3gh?xz3C-GOeQo|9)3Y>2Be;jUj&O^MG=!ix2kA8Wa zXy!5l=!qDbG}KO}vJ6Nst8$VxG0$<57&u-dl=1sXkIUPzfI8gUEoaXeNrV}$2lx)s z))4L<0svc&Xqk(=7SgKA32jfkj<_pq*=e9s?AMyN#~MxrUf`@!Uc$~r0r5-eRxKt6 zudS6w!mUehmewBu&PoCGkXp|4S8h^QvfLLG51NUXrf6ZqzLohaejlN;uZakG(o9<{({FL^G6m z%59|dVkVzM8Fky&8L^8cD7*FI0Dli%VJC>#3@hp3s-AdKOON6}{`9(j?5G(|EyJGc zro)|(Hp#z>@0YtUWFe*(EJn4rcgW^+G(PosibgrpGU`7vpTK#(6))E%?aM;<96o~w9z5T$)ZwQzv&Ki>MLLObtN9J*Zk|F zHSm=`d0pSlI;vC)>g0ZUyhr)uaXO~W)=GaUDxsCz1vdQ$D#6UTP>-z;C9Y1FX*G;v5l)_4&M`M{Z3c&`tJ7 zn_`D(Qufbg+kA%)u1qe->ur{8yi-@+ct1Fz{%w@zkZ^X8o-s7;mVKv(rt=-<8>}6h z-M*f;mvimV=A5_ZgC)Jx=J#mb8}|GY)9FF<6vo4zGg^<7(OLX7#BVM3QlS@^`@Aa1 z-kDXxnh7d@xVBQ>TNYh1dOds3|P{e3>@wJuJObx`3ZA^m3?xlBIlpmjTn=J>>B9 z?t*yT3^5L4@b|{3 zavHxp)9F8iH-#-DY%X`-Hc0@h&OIzc8h=POhhg7lyuR|ijr>FRc{$^`gy!SB;L!8E4Sz z%Bi%QTTIE1HUyh#8}R4O6mmR7 zv%QR?E7$9X3X4DqBri{6*L-KO3W6?e5QXl?bbcT}?84sfiHmh%FCi4H(Wv2jaUisQ zr|)qh#tQa$D#?D5E7 zBPU|vZgi5{t2ajw^>wZ{O1~*O%*sw>26S~SFJ8z(w}!~$kO@nOsU!$OIaApz)eX0} zJ4LXBc)V^a={4(r#;yq6wN1lxcy4i-q@KV&aAAjfHb{!x*UM;vij%Eb(}J9?B3?((g@t;2)HyWOcbEnE@LW=it2i>io7LYQ1?Z!nuMI!S8C6j5G!7GvDo5 z)vNbo(I8vd0i#Zva&$Jg=H~0A>+xRF1F}iqxgXsmBg^&?6H^zDQR+%-kEg7~dfo@g z=#^KHZnsYM!z@~qWo1*RIg$gn&zed2;#Mv~7N7o^4s@Na4gz9u-gxpa(}bAco~$N2 zzOC8>jmF=uPWvvgp0(~DPviZOL1DLDRby051c*Q2)>#?W;K^I?1y5?@Lr=SkNtv4- zws%eE%8OX-xsEY0#a7#p4j0q~u3(2Dy$b2K*%)8)fhd=|P@(5O-bSC7WBrz|=+UC6 z+uV&4a>Wb-I4#p2dhPg&-ssoahI*(`xNccj&5z#zch1D#3q;KBf5Xz4ezBby4a^8# z`QJ^9l*m;j+vKoLDND7i&eSE8?DehNB`M$w1*$VtEUjrJjNelEdFO-8dS2&qV9#Yp zZvJ?CIu~LpkfYW4dzw_SC*=1QN>?51XpGld{ENvFQ}G)!G?}Lw{7rYZB1DMWbZ2-~ zcn5&GOT=at=_>U!rr`UvLzE9ChBJZfvJiL-R(2cr3V~Jf?l{@aLv4#XU3v~SQDiR# zz5AuWLt3$elV6B!?7}KPv}$dLLBmt$K%--y-*bM~b1}Zec!B<-`O~Xu0r+(!#=CXO?9Ce>;HMUPd$}|1Yn65>dDf%v zsgP|n0QP;`kqI~wOseLR*I|=;k3oK!`=`w`I_)^V<817{*}nUsIH@^@*$i2hCDnaTJmg3qF^>}E2R_$--tPc5 z=n7ZyQ$qj(Ep=m3v5bVGsDJe^>b6pCaLF8u#%(X~y97_o#b@wC*Be92;$720jyr3Z zB>}I~PS6$SDczB6X{jcgaRrf{&zbFT_Ie=z^Ejy+yrS2ThhW!H^mxfP5|souP)JKl zXDTDG7V#o6;kZ`#6og95$M~Y0nvYo%{mZ9}#kg<|0phNZ8@b-*zHGQW;f2e3J~uaa zgk(UDnvX=(d>Z3(Vl3bAXoYS8E{-99)XCR5`2SAooYq@HZ*Lu3r13ACjLD==SSsgq z=b(|4Pn5osAMZT=fIR%=3hJ+w5{Tz^o_|Qk<={UwRF?OlygIOsI+-j z9+goJ;j{nq_WJDpIzaSx{OipW_bRQP^~u$7BAMf4x^yN(?^0e!+l^-rWJz~(qXYDO zaw>5qqLFVcDI&jG=K^=6CTZ;g`M7#_3gG-odM z>3i(n(zk8mR}oIzHIv1C?oyiF?yp_YDzCIXGH^veO{dDU5RJu}GVO$n+@QuI#JHFY zB?!11;aq>6*=RLOKmWSF_aGUag4fiRj&qdZ-8rFT_&WXe9HWW{sN+-;N>j{kx0uGS znOGdgWt76>@o=~~^?fZ7LI&|B`9AEaTvo`8O!+)jnVd2|i%}M*ayx{6uhCP^ELnxheqGEeGbyrq%+^lEkKJFV+6ML!oE9E&)cvIB zqiH(Dq~sfp@La&?WrhVbxmgb*YP)ux}#?kz2o`k8_58m$F%hy{SEjBao$*)9wDr_=q7&QzA zrW8{!t(MF{+!5^vUQsQ~20u2jxIZ>~G)3K4Ui< z7hdgCdXI%6Ls|^7U5Hp!FBt(bDcW~;gt8AK`VZzn2*g)iQNUQ`^>2^wOL)fXyuRO0 z%19hTp|^t=A5~xT`Z|pCj|n-~%fwZVf{r_bc4EsYf9(lJ#!)1Kyf$xH+#}61W))>$ z7fP%fBM$gpN@IMl_nF2BbM6ykanI^%ycg}bl^beaCQ5`fAw_xKQ#x!1AfNLm;>rfJ zkHcR?tma`{cI{$?9J>+KgRnR?Z&dXcZ>JRZ)N_%A`Lqp(qO8{@lFjj zCi{CGFNu3|IwvGV;^Dend~2&Up#V!`JV=D6aF!ngQ-U8QRD7y9 zXNR95f{YB4l%E3P-k^{k-2s}&+DgBN1yhOe1Z`VVev}%=P*1m0+M3tpn#iS+@w!HU zbn6Fv^glnD6kfKx0+0xuaJXJx2K>Aw&$78^eX~7n6DYSsBn%(UjDP|E0gpPy))_!TVy5&@^x{2C#T`1oo>YslF~sYMy#p>~zs{PqVqZ*cLX(-2 zqEqHVLgxGvGvZ54G6CGX$+1C%mfV{h%wS*2W**FdKEB&~+3EpDl*4Q?)WMC0Pl-S; zE^Rq&x40|wF4z9cYWG>I&oNgGR9!b{t;#9Tfm8(?sIKb5LTGZr@*cqW>dc@#j0PCd zOM=O`(5;ZvkkrCpZS5%hyUiSh8W<{Us3cj&?YEXHPupe9p2x7Cab)!EAli$!T{!iw zjBTHCHAot4XNC&htdn!*Dmmg|#Gn@Pk(RevF9)q}sTnOC7Fz5}p|CiAHnmX*1U7uq zK$Zsoh)qdh3Z9fbnyydJivc%gSE}1o-U00$ktA$=p`F*3)u8oBCvu|htnUtvACiup zqtg}h+-P03I|aSpeEQ=e2Js9STsRGFVNLzM*7ZFLVrOX26ragRPFR%oHHrGyY{pe_@ef5LY4%QXxjLzNv%}maDm#-OUgJaMM~ZXwADS`` zJoXgQ=bqSE$(P7qt~k|JWW7Vovyg&-ISduC&`CIqOMwrRksV%qo zvlq_-@@mg;Gwyi%oEN~3q9^x(VzG^@;5rMKBcNZV+%nO|>s7r$KA{Lb{mS^OBx|i(E?n*tD~0$w zcn##r&lL9P)D}y_>Y&TwCX<%A!rU~a4CA}o5SR(32XwM!B1!F=vcJ*{!9(IlD+izG zS`IST>cq5kr0))I@dTLK5Np3{VE*THg+7#|PF??1a$+bUS;iggjA;t4E>@Sd-E*>B z)$#eD)4zYzIJepHK$e^6rNjM zT}fOn@q*9P$+f~sQOcYVk|P=z6H_K0R7wid$~=k+5r4n4_UGtZQ@n)p=NBQ=IV4fJ z%>SiiQvmQ4>4fDkhCZs;j@}7~Vja-#3T82JUHqd2M8MpYm}aFjx!!zJ%wkIcvx8Ct zANKk)gXBNjeqUE5et$nVro|w>*0AAs$oH#?InU?;25n4AwXv|Us~iaa(rDv3+_*5F zYiv!*P`Sw@5dHl>CVYB-{70=UJu+m*W^PaljNLgvg9Ei4N1)}16b2UY-f=|6Ke3G~ zWGD82XV}osHHX5(ReoLyftjfr0PD zxjHM8_vLExm!-2YjF^VQfS9i(^@Sb5E+S1>XTP0*OTpnt#`PCIen<6Oo?5Et2LGqy z-ts_>sSZQtSz-OonSVgWX~eCu;=U)wgM6#2az4Uk2M(8=A!KN1K4nIT!Fbns+;5nd z!i9e$?%}d5$=Kn%yFx`L>`Eey4G<<$Zjpwk`SVvh;-1CkG^5|yDNo9J6|km!+8WYP9;5bBRB!^x>Rvv(+rQ9h z4_$Rv%P~G#PpRoz7%pn=m8J25ue4R6s66qP)j-Aur7P+qGEsd)Ng4M?A+gGS&9-xb zGXRrTaGfUHxe>6+wuS>VLo8lJf*s<}P-^~v{jR-(X` zl^-I=pQRGO>-cTIeYu?3^>dTLl@$@rM%fO08b({=fe&t>m`u zyz4TS24B;9R%wg~qH$o2cNTDstdYf_TPSN#%W0=w#%PI*ll|O7TU@Kh${f}RiYPDC+v0|`Q=K}+)oCSJrzSSz6>ohkoizsh%fL+vK_garpzf<}~RXC?=m%fbyiXLHWiT-NL%L7GFO zhES+5FB8`Y@KuQBU;^}{63XbKH}sE(iK(WS`9`%EE%1O@7Gej#@=j+Bof{Uxna?FJ zw)&~Qm9c}?WiSJ!!Ae<{rzup3jc4<}){^xN^o9*KDF>7T8=mseNv$f5Ny`uyvX)KKS z9LV~d(1ygA=v#qHq#sK5Hrf&-#vydyQpn$sCHiZa%Y90FS-l6Y4PVu(&<1K0n)F?x zmC#zxwX4`*@}{y+T2mF zb#6|#WaFy9uc6_RcIai22uO^$yj!zXK}50r8|W)bNqx{1B-rf_VR1{PQQ;PxcEpnx&i8cbdDM)@1o_RH**_ zJL+@A?!-J+L}2N*uy@YWu<-7`wSY9%yngx{yET;u)C&M}#ZQ&>aC*2biOo_FUwy-_ z--rRY@;!z44;n=3EBSHRBknoU8OuFto@cO^<@795Ld1VfDJsLq2mEF|F9a1vlQF;z z33y7)bK35$+@4xa&od>2zH^@XFKWi}FZ_`U;-g_J+qFRVub|o>59PG8_{T3mqKODQ zmvqIG#*)J)0;w!HUFj_`{<8Y!6KHe{@9A~N-txb&@*pxVgLs^43K7Xazc&Q~(&Y$c zwBXa-PpAoHOJ`m=D(16G^eGYE|Ib-A3Co|H1lAXzq0HD4-QTWdljLc++V;P`aQ|zk z4b~U?e|_0Xxbj1!fEbvW~w9eKj0`- z&XT(-)Y(0>YSXVP9*4fbMGPW1K2{BQpSz%?n10=5gBlLm=qg`gjv?5q|ndOf3}E z30BZBF`h(cy7TiU_Qupx)^}U)4$Rb%!jNEn4$NU{nUNR}{|y7xx`@SfaxL>m6ndq3tAeh zAzruN2?CvmubiwPdX|et75(u);8W)d)|GtQLi=i^~%vi z0$L1!fx;LhCc(s=y86h;aBJD=eW*<9OC zbUHOY3H>vGqWt|9C;l6jhe$JqjjA%lzeje1pll&OFsl_#qjN5jy|FSgZ~3|J%cEvk zJM7j`40rUyg|Y+!ehcO(9xB4e8+Z4(>~EIvsS|7?F=L2q zEwBJ19zzkj*?W?ll%&RHfy2>kl{vB2Vy|zTL&R$Gr_p*@{_^Sy-(vD*8RoF$CcKyv zqFRaU)$=$>)8hm`W$32VbH3Z^?MLJw9yQp&j)o2FL|j3iM;DF)H-d3mTH5l{`7Y0! zco<+Lz20maMJ%f~o&@gcIx4TI+>6@WIQIfVp6(kxZdxzu&#Smh5As`zOh7C5E;?SG zAK^fTagMhp@~{C~NEVv_!VmG-84SaVHeo)dluK7#FG2W%^8;39nDAeHcKxT?2xF#^ z=xBuYct6B1_cNiUuh@cAgimO(-@}{ygr8O}aj%{>dCi+;@3;LPJ+N)HF#e#zg_(nc z42pQ;`wDsf?YN!H!wP7#e26)w&lq*vN4tHV5`j<8UY4s>9bfLZLQN(zoK5~V9tuL_ zGVVUSheq?5Fv5(}5&oeB!vEG%aOS4>dC_XK-L>hcLm@}-R$yC8sRTwz8&77?hRyyXB052 zQKI7qyI69`c%pMUi|?1%X%rhSr!~PyZ0W^P_wAZ>m9eIX2!CkUo`B!0w^D~Yv(TVF z@mnJO^9Ykv29W^!Eg#NkLpL(ZrncF1vLoclaLLy40}5HK*PY#yj(9&|1Rt;h8&FWGmUD%fr8TKR6G4T#JA-@g=`fx9}Q@`mHSbhs)bX1Grz zGuU==2_eC(rskCOnxPV;$k6i^k?_4Idj-pC-@*IK)pVI1M7F71V!wx{6g6UDyUZkH zF$&5(<#*WneX`l{E16N(N-hymUJ7=pL`(d&>@D^-NNbu+d2h$c+}Wq#1Eh#No=!h@DRpIWqfoWKL0I{?%Bz@SNSO zDwpf7vHwve=y(AEx-wArx+OBi1wmKHbrm+@*mnJ4AOy6E#lG6re9KVG4 z^MMG4t7qA6`cr1H^H}T`80C)?LjlGmb}*86)6Y|8o5E?GA_1@4QPzZ#hu0^$Y_p_8g3;(R)_L>M1r+i zJvRnj(t@5B;+tlWbMRk`dMu~Tm*%ituCfqVfttO(T9P)C%Z;ypm)ABkAf-o)ZagFuYi2bzP~cw7q#`J-z_1Vp6LvlNerNe=fp6mn zmEAs!xXGtxgdnQ54RoqZi$B6jI(j5ZQ z(jnapNDG2=H`3CQ(mfzu(%m2fgEUAfh~CY6@BjUD`2deTv(KD;V(+!qFP1pdSQOQE z!7FS&b)74MjhWM~yDvEWoqul+Wxti_oBb>NDbm}Q!Ta~_ed6@bEXOZ(7?wldamwHA zP2|=u>BLw{V@Qf$nvrJl8Epmu4yx082`+C9Ol~>S*9!Qmj42! z?H)66I&w^56t>QQIQA9v{}@$ad_R}MXLTUJ&NmX2`bTlA3c6r?H)dA6dh9L05kgt9 zp@WFq0RV}>p>N(xyjv%mQQs3ei;%w37}Nys!koH+zA;RTY*Fto&jWP{JNW@eVC=hLAG8#zpzTnz)N;-ZB76lRui#RjOf5_uz@K4dl*>s`~n#8ao|c z2H*cY@t9N@5x-Hc@jrDWMpIhgp<&H^gsI?@KoRW}yVL=4GNg+xz#y3UMBLjlR!LOd z58HkjrUBtMYp{ufoexrZ#cOB!Cg+;8&19~G^{bWyvWrjF|-=_Yc{bF{>(m_HWTsm}SY^1r*C3mw5ar zd*&~x|8Qibz4K^@u8m-#^L?}8w@TPYAI=MPAL9it1l+2Cte_sT`0sUAmhq!%N{GSZ zn$PF3i!NPG>%LgBo%YE9>2_5Z`=NAqmGbwIz5w78u@FA$PkSJ?rdi@RtiR4vL_g5C ziudZG{q)EB=P_PfHy+2Ft#H8f`NtZw7mh)$#;M=j^)iqpDWD%jKy>by` zLC)B9%e~D)J%%I2^F(YE#A0U0Oozhd1tYyK(dhUjRa$CjN@dU8ca)4Q3lKu*cX;UI z{KVziwm-IdLXKO9FGpCyqV1UoLb&OZijHIX`0?bOCmP|ZK_)UI;wVaxrL(g}tMBY# zF;dxG_g0tQU7U{Ze=-_eeEhtdHKJX`MC($s?R#@ESmX<@tWoN+Xf!wcVWDDG?`2U@ zSzYI@Q(2~yG&uLE7_lPF8QjcWZip%9q~4Fr`1$N{vhYxjh{sbR@A|LwR`ub9as|7B z7-g(^KD{=EmWstYxX3yI{h~mQJiq?PPmd1bB&hDxVH#k7z6SmL7KT`nI>}7Urrv0k z7VP|+b(!(*ztg5P)Ku4Tw|o(*9y4u<{194P#PmYri<++aJY$M2EX zv4iE7Au{9Nyo{(H5D*y2=D|545KdX8A3|r2m`3q+d0(t(s ze<|XUA-%cklF&HHMV;!fK~nDWjjCZM5~@yhyFB@F=TOy$SCT^%$UeLqNkva~i?j+u-%Y9d+GHuKEi2AI7jvaiz^qa2(%2IvL`Lf;T z-Yr=Jeox|Zm|ycLM29kNCfw{_3$;my!tI8b@(c3tFK?Mq6gO6xj1XPy#}U|Rj*_>S zBSP7}B|ktP4+Gda>#IEKTy^;>)(k^xn+Z-YcXAPti=?UhQjJU@_8T|i);pK#?3@v~ zzSd8`bjbH|TCw`G6U*X3TMwO^+sK>cU#mkUO}`0l@^~~G>PG#2F-IabM-kMtS&Jd% zs?U;^8FP>0v1XvtNK*p`5LO_3gl2~ILB<+TZFskg{{&l!w(Z<9|B+{3fn5IU#<2c_ z7x>hAFdPD3X?SPQD0(D&O3rVIfm(}{!bbF6dI_GpL#zJbBiqgLx2|*J@4pFmdDyv! z4t0(CW3=m@vDI8oZNq4~HC_>1#NFg2`=dp^-cbxUU7G;v{0d^=TruvCJbCPeVfDf<2(8jLd4X!|F zRFde&b?0YCPPtJ3bCo;<;5sg&5sBHQZU;+s1c!veFDGc~51U?FkG#LvdO?miKY?gy z_4^DL4>Z4jA@T;6+Oh7Q9eaytDQ+#c6=NyRGyUo0PS|$l6zxHKvaZskbVE zDerB0_Pfo{h;`3J6XmQfslg9s{YOCS@IB%Q?oQwu6X95PhK!DO%VwazIqIv?xG8wv>+a^$s|bBIYsCZ=j1;Cq6J>7u)yj_oS3K5smKrZysomqL zIyUNZS9c?ox2D&MWBSuKeaH0a7dy1x5p+u@oN0#!<-|q8tu#5J>MmO?ycA#MLgDF=n5C^BqDYy!I2$EF_$Uf? zUPlWEB~b{sX%55|?ds+RTtE;OrhaEZIeYxekl@ofOwV67M(KO4Y(gAQ7UIIr~kC$CVtP-tta$8~y6Vl|C9cZufyQG*E9&($vC5&m zGY0LVRCb5V=H~O5sHfjr=a2!;@uLag^0Yu>0~NzU*i-y4(Z!V~=%{L)I}zScNUV3WVUeHk%f!#`D0N$h?4%=h=9tKC5B;xXH03 z5@ZkO`G$|;+X7a}28jkq4yO1AgSZO*_+-5;Xs_PVuFO$%V+DYW0=oZ~&!`h^2j!9tNpQWhR&6G@3z6 z8umYB(1{qLq~KT_{#YtR1QV^|8&sJ{eeyBZc%S(b{`o~V6&aJWe0ILE>|jet1|8{g zDCA6vNfYT238Y!z{I_no|0sX#ZiYBX+dD=XsbEeR?M%#; zx7x6&0*doPH(IJ2LRUAa=1`5JIh8lqboy!kpOtn|ev-nCRrK2Kg=S{TkXY4@eo`_l z_z@!RMa0x2aB4wJ-3dfBrp)qE1Q3ki3zlPNV$4tEIY(2ZY|m+tL&tcqTIJ$>wf*qm z@2PVoDZgUFItg7j9BVokNV(3Nt)0~fAn3?~r%Oa|L_Z=wWFHS*xh}elz)<9!8X@ympw6|`CSWQvL>JiS1t4n$LllMNCm_xYL3 zZ>mfXNrWO?O-e>)|1m#Um}ZwQ8LIFbU;fdrV7Vc*)3`x91*~H01{pH$?G!jNj<}h0t zcPwe4?|*$%caLX;70&)MNV$k=&&f?Q1ac&J?$~_DjSba=YOv6c& z!w^A#H{Z^x73k6RO~kQtsh<95t?so)i0%wt z%PQ0@Kyz$OHD4lxg-{3%$}e?^0`G3Z7N9~5B-tL6H7(FVVasm^_D2L?$w3Hkhd8iyjE<%^0h zs*t0bTCa%IK{a-_RA;#?RLaGMLeGFS%OWHcv57sEVDY9mOUN}(*Y<8V6r&+i@_koR zOGHWi4Qfa2O1~yZB`r#1tHn=-`CVZXBUT=OGP@G6_>W&MXvx4S;z2ffiff&B>VpA4*uIL<{ZtEnW5v`s;9}B<9KZo^duL36i2&01hX{1l6ZE z2mx%KE#cWhc`PdLtN_QA4-ELYC_d1X&`2EieF=-LK;_!NSbR)e-R27;CZg<*a><-I zm1mxsqqNAiRsjTUL?qE-7wBcuA?VAgfffTw3fA?o1B?R?YHs~RaF2}%y00OqtmU(y zgbkkQS^f`k0@&2HV#TgCe>BgYDVhX+<7x>-e5YM}u50!cxHXx4i#WKGh@G_Tfh}8K zpw7oSZagLMx&wY5jRzNHdJ;cvidR%-2)Zv8Ew+}D;OS%^bV~Yzi2_59H?WR-*4jLr z?F@}&4-1=Z474*`inhxTTSV$x1s*rprUpBXi(i@qbFiPyY9C4m9qAT3GrcVj$^tETgGDwsSsn0P<1OU zxo`JliuhgHrJlujn$LQP4%v zCvkr-JKY2rRa|p1B+~N_!=D4-ve;a)(`xY{%5Az(zTUhC#VF~i$-i@*&kl4V)DOp6 z{9>|@I$dofbV_+uTcXeFIyn9ef}k0yQlXv5-cvj88|rFsTIQQvT|g%Z&L`*|Q-F}x zWQ4&U_dRx?zND!ppApK&&v|*sz~D9rg z$K*aa?(&Te^P_xj+akI$s;F9wUm4cI(Vo?GUK<_}nhLlN`x*2SxRDDte{1!91K(906O6YLyGg8F zj)Z~Y*mXl0Gp=&4mP}D_ddMGS%~COVxexCsO;wGnFws*}m_DE+nr^b+`jSFwFRVP? zf>*>odf=(s+{>a6q=C5T=;*@P0&G8-bZ*7x>gdmzPDM{z84s7vu-g;)KX?5`WPk7# zJh0ZWWcO`|RvHabVN`dh6|VjZ7R}XSvi|tNx9`bVTbpW->F{3<;t1fv6+G1oE5Mql zOVNVo7+$O^>U|PxrIo(Y7sqvBLw6LbKc@1RF6fpT@2v_J2LQ$7=+p!Gh4(xr2XN<Q9D%eX^ZW#`{B5Bk!DIm&8c% z3%&i-ua9z9_(TJpoSDLa&z;%9>swQTNM;mbgtUhu8wH0p)7j02KR2Ica6#gR=R?Iw zT8NM4rMY6p9ldOLzrumd<2REq3N&Tx+JH(O2<2bR&+55OlnT)qiNQ)>-xo!B^ypD~ za7rSojj|wrZ*4D2BQkgAWwIKNtT+bqKYU@Yqm22rUKm_1%6tPU5Ezdw!PY1jc20jD zt~6Dyy}K9}>_}PAyCHLQ7AHr0jD^LOVr8P;#^aRD%Dc|vLjAcgkBupV;^)n?IS;8j zLJYhM9VWs)7zhK{%X&amdT@Dr(N$b52ciyEe%lFRuj+@rnII@Qr8*Wn#DXyPZh*`z z6>PzS70|w;m(SLyY^53_g)0W)z)_F`=gKtoZsWC&Y}QC)XU$YeEC*wgDEMt4`)B|= zYGn-ir<$>&v_{O>lcYZK9?h+H;1u~nd5sM~N~fCcd5Y7H0xnp6YVVcl_4V{@Iz88O zYWCPrpt3>wXKxV&!0OJ2k4bU+WU!Ur|gb$82u+}`CCiwU!AbCSGPp}w$Ts149QrAqsf z+ydFk4=JOnX{2Q--*@mMFZ9&B|wk%4;l#;-NGjj=dQ&g&5%&!1qfK$NHz8Z=Nu;cQEe_ z;~UH3V#v;8l!1YPdF-5<(6j!S@Hio-Qki+v64}vDr=(nlR?lhdbhg#cv0T0(K~YYBC)M%m-8rFmm*gB2 z+gmXbFD6E(e*a-4pRWnok__piT!F2`I|>Z%nY6!EUKO+vbN~Dmh#FJ8j#o;=Uw^%% zMRwpbzs(+Dc4M2u8L^=o~2?OZ}iV2TqOgrx6V4r-H# zCy|>@UzZ7xfozs6tPNu261EFZ4)S_?Y1w>iV^j$m*G^`eeA*kMOsNrI>3g&8eVlL# zvXtsm;`=qaZkY&ZgDmr2O)^71WKIt0s->z@IM$z*cpRG)~Z zx!u{W0Dn$jZv9%iD|pU(JUEL76J6pQ3+gA6=U`n?{<|h24bmMwM-^2;?6y zlQoTh=2~|(VX+22mySuqB8QG4Nc@ZW&w0Z8s)lfPs}~hCBL-;0wc(98YM&%bD7^di zP`WULv02u6MLtt6Xf2XYU{6ZiRaF;cJBA68-&NLhIg}WQy;)}}P#Tz+yxA#aoycj` zml0dCOKMXoag)?sY+k49Znp{`r1hFr6EYaj%|3()?*RkD&O~9%uc@`$X(N0QQ86Hs%3T#Qdpxo)yJ{`EvWxTpzgMBs&4bzlj z*^i}yc}yU3+lR~cRFp6XX-x|?lclup_UHXcZ>kI$oJNO?T-unm-~&)x(fR%;qT|62 zyeV19M?L{}*G(+AFkj7c$8@n8z0l@ae3ZEpKqToBkF!PlORq957u3tG^S+NM3oCVY zEE|(n&?&?7g+ZrZQ^2P=Br@mnK8b`?66TEiHHXma|Yr9EEfk@F?oh z6Jm4-Y9CdJ4tfIFN<`v(St??YtS|R&rztc{4#q2)ODqC#6dpiFYEpDy-XoVrDBbv&9Yu|Vr9nq zZw2bT3jrV~RfvaPNcCVsJgoxy#c(M2`c=LIKh-43f4?WM3r1zxaq;GF2TMLFVj%}| z+WDBT^<$)Daz6V@n%coMt>rN2$cjpxO%N!_vu)DhWiVA|(NG@2^D>D&zQR@v_4g;+ zaM|L}U2jTx27ac1fkVk>9=ng?rwPBp$Tb;Px+Om3rpaNIxu(edN#w<RR7?AuNTBormrDpsaecI{GqBDI_hk}X|*`k2Vw0jBft$Q8`Ylobh(Xu+uavs_-)JpfbC9R z!n8`@Nn?S~#l2}3dH1W<)5|@>fW=wvyK$oi4-d5)W}DpcIA=dgn_wJ`=)#NeLO$<%lL1P><1{AOeB$CUAel3;HN-w#xui0GOX5;9u zM44O|lz)wP(C-O-7{r<-$_{`aj`0OOA_{G^n4V(eAZPy)p3Dw$Ev*@aY2%0VX!hcL zX4{T|9~r3p^&$n=Z<9uOFphF_+TH5VC)@#Vk18h`cmX(84rx;0d=`Yg0+E&uTA~be zrI#Xx8V{Hbx-mGFWZavt@zfvIeBE%dTJFA}E{i$vFjTu2FXeL|!u;~3`NLoA3zj5) zh;bWbK;c-&LWL!LB5^3qQ`!laquQn{$i11)v~W##tM>cI0`I3Ks7}u`UKQ3~L@&L= zc_OjK;`9A`>^-3o`KKghb@mp5Ap3?kc(+c7hu+%4qZJfY`6f&c0t;t+OH26U*)Ivu z#V(1f_e}1JghTNY3K{>PJ28*z&RNOOXn(e;0Ig$&uNNFpHd>%V!h!u!wd)1ZEMWf? zq7{2r%dIusgZE~wY~uV&Sd``C@4@Iqlk+C+PlSg`)c8_*YI!5-aDmOw-=!?w#6W_l z4n$GPXH?5|mJxAl-G@1vPz^cL4m(_CY;aM>~l=e z#aKq8k&h)bPa+ttFIM}diOfifowR&8n6Z#y2;cBTdad%ufYtfzHA*x8+?OT8LK!Cx zVe>UE;E1Qva&Uyv)E7lGkn}VfjgiioDHh2Y%RxlUfcInBC22K9h-Q&J!>RE196Pnd z`l9B#cv6S+W1QcM)5!!h`Pm2GF3QI4_(<(HzoUIv3CC8@)L5;}hn9vw{Vi5iM1MW~ zDpz0f_0O;EZV2X3&-j3LrX;h#b=0!UIx*TfB1O_*~EH- zVuCO)2c&0>ZM}U;WRdNOi9E1Tcr8)De#ytGgG}guI-NyOV0V7r!GDTZso^C#ncVyKQAm-0g+(ed_6T7fbz z5xRGbKDF+^n4w?gBU7n#a!}Gm^u6RhcJ3wy^m0Nv&v|e>JUmhCpkDiv3Bb&&*dw$y zML*47jh^y8qr?{cQ!F8Wknr-;VXs)^WU8-iFds+ZqN)G5-q5!64u-`)Moh``X(;p; z!zW=$7+bOSrKLKh1Cc#nS|(9B5}e_aXfo@J2p(IpH)2jiqXol0+}@6Q`Q0P}=O1>? z*p$rKXeskPRk{<8hlevqpL&4VouSTw-N6*ZV%x%`&Yt1e;~*R}j@ClosSzKW=WdQ= zZX2|fX$gclsV*lrbP<@tm;%W%(4$nQJ!g380hBaYw!v?%(X#H9jYDraq(tk?9re_F z36^-|do~bku41JL$0!rstDxx1#EHrdVPe4NP_F$@Zh12x8FW*&kJ1LN`|x67W&Q}mrFfW_o(b|o&qDEtw8x&t_p90PMEIN$nhy2!rN5?i zn)pZTC9Rfl*)JP^^?I=+7@_uK{X)JhYfnf2v{?QhGE85{}t(I>eDH}mKarGG3)O+cE#ul&S(9y zAs8e1(jnV3yTey0*ji=WhZoLU1#z;}s?_Yc7|sD0dm@`675*!%EwIg0L$j4r|6P?k zF)Xc2A$WK}L)}Z}-Xl6hR%{}VZJsiZ@d8@5w5s8Rr!bb*Q6D{%c|>A84TEulXTP{T zR__y5stW*K3^_$q0`4LsG0_ifrPRjP8XRM8~Pv%Su4gy4%6t(;OU|(g&Nq>uP6@PXt zWO){Mk0)j^xRgax8bxfJ?b`sA;neO3Y`Kuk>Ybzho?%N}c&xK+98v2kiXhwLpSzBu z7f@t!D@6CLST5sr-aUB!vBkPAI%o(UzF$8agvmBG*#+Ctbc+{ZY1>8B;&=d-yy@F*KQgi-wOpALNn6DPMX~dfxVjz%sH*ab z_S6{FNcMQH7M#GX*z$9jPB;!@O-y11V27S?!n!S%+p}=YF3hYz8=m| z6M>3aL9##obmGd84we6L*LSffg=DqdaQp=Y){B47TYM22)^7)Zz~bmxMyz!CH6x|P z&`WIQu>>YkDC5s6OYRu0xQkW`a;x{tY=i?+Ij$O)zu*bq?m#HVxe%yvGr4<5M{sf1 zzmI)vR#72FLN<4pGi1X#Pnze4duort%AeywHN&#dl^!RtA}@%_)TmfAKWkepoPFkj{<|JBGWg2T_wh zM%ZQAO|W#Y-TBU-m&ud9ezQk4S8rpp7woY<28(D(+q`)7vuX+g7_~ zk;1Zkf*-Y!u&6${(5Ip4S;8x_5qrjzp)Ty#fCwd~J6SVG3|25DZOI_2oqwp@+!QK(5x9Xdaw$49>y z>@pDDEmc=?p+kZzY%9QJ2U_1=pRGytuWE8!T$4^VR$HvvNE1;}ETUZOD6o9fPV|~> z%s=?}g#Z%b%joNvrL(A=nn9#ZA=Jj53iX$40?MHw0p}QKGXW7ox)lOF>d)X9zzXKc z5HcMRmMw6W@vKOFhvud(yKU2@yM682HIF!c(j4WOIhWOMo1U7=)}HVDx@3dn z+H|G)VuW}&oyuTJtKe(#s=kMJf14nPIpH&X53uM(PJeDdy8H z-h=^~7MFDg$3MxK>g*H`r#63*8~ePU4VY)M6EnB(<@u*VBZR9*VX|nF6)mMlPdXgt zc7Ol=t$AE}%_)o4Yqb%-lWXzu>Jma9G>M{|wX`G&>Y{?$R-x@5JxqWB`h=QqAL`&l z!1(jUr9ZnkpQ>&99|hOS40J0ppSD&dx8Ftm!!np1uJQq}RXLvOI?toqa+QtXUYh%C zO+-qCEvWCu2HG}7P%z@BUz+IXSTzZUlCTe8Au~LBsGIJuwKc3khiFDy8TkS@d=;%2 z3a8>`X0+%Z9e|{`It;ClhhE~c$6^D9t`>hFHtRPfeWQKqO%V);^Q)05V8ffp!iLbf>J=I;Do9fDDtwo6WBBjJTAJ9@}-3c4Tg3p!7H6vK7k${foCm^wf z8Smmr{K_}~sS!;J#9&22tid;t$#D;*8<1b2!kPs7_&B8(VMmY}1T%5d7tJTH={TqfE-7eI-i5a^V6%Ub^{$@Aez8w$JdH zK|m^~hDdM|lkS5CA=fw#SY1GywffqpX!94aGT}^1OLGStJNd5-D}7Z25Psv>3DKDr zo83`A4spjI$~7x(F`u)19Mqz}?OK-vQyO(YCX-ynnHB}q*_kY*8MH@n(A*Rr$510^ z7VfXQo)ZWM{%OTQWkklhcD7!7ejfGnJ-8vhUhj^m@Z9Eh85Lp^0qOmh53BPF6$qVg z#0U&(xZ3IOok};d+$HSb?zGBetrblMt_u9QS>BZwK%f^W!lrmi)}-lFvxV6DV4y2a znrM)sTk$WNu}_j_N?jjPDsJ25+>(voD$gUHNvW)`&ux{oc8?2fRvr8-R&zmxV`lpn zr8Bo9i&ko#LChBefexkEezsIlvW@R#Yp=Ufv|{I&B$?M9V|5|hwToQ`%W=L!SJkh2 z{qk{eZKjZeKe@2hrtWK#-TB(aTy*?yoqEuW!vKgU9>8<~O?A|ufh|Yt4c-hU?vBWQ zwTuanw|6?}twv*_Sn#`=yU!GZ&et~68kIpf{?gLHs<|(84S}8YSlrdK|8B;-FeW+B zN3kS`{ZwjvQQC=#4G8`#A9<9;CqiVOC}(eq#h1&5V`H8S`mt^jXk@pX;w$c<6Nl3M z?tLiZTD~ZnH9+qNys`TYosh&CKC^ z131Rldmifff+kGG@BjU6zGOWRC|Q%DJ7VI>Ujwys#|s5isrL^^((3i?)nRp`+BP%p zz>?^@qPb*=rXm3<qNMl82BLp5s$PjS*4O z*&SC_*fYfhEJ@9lS*%dN<`44KMCm7SwK$^p_dX0#|}h*qnnjq0A+^PzT%`AeamLqoW#g= z!%Xjf7N&~z{q>HPt;~2d2}{rkCa;!wJcW9mqO!wG^Ua3R#$2jiMHCXrVy%6RNyoy% zGD~jVZSGvZ(mx_iM0I8NbCjdo2NTuKneq|U$kC=nQ_j8!yv2wZN8&zlUWYNGzJX^o z7LXv;0d10C zMaU)=ZecN(o)+2~&@8XwsQ9THq5%lYQoDMaB<3=x6PG1EB#!UAaq7`u>$!{;ZHuRi z8A6%UQ-*0DKdx%1dahvo`HX)@#c>gTPpn{z)c*<0HCOPE2#@7xn+JNdU7?;ZC??OY zgDsZ`v#@HD>F_#ECgIf6*X|ikVsw^xB&Y*w+occB1TnApS824wQWj8r&lH{zD()#3 zpg(wPy^YhmcZjK(3QNgjA;}gjNRK7@+z2YarkTw(m107auMxn5oqCkbVq0muZ1&-| za2wR_s$QeC-)1BvQ!Z?nN-F(1XdTvEXQ>+6n>3MHtf;gSY6J)#rVn$*B5sOngygG# z1>EQ`zrLkDsMF!**RNZ-U)X79W%ho5)J%bC!uz_Hw@f_eb@LL0V$qeq)PpXJ1qxE& z8t#H7S?ORkdlCEPhd5EJRNiu!qAgXPdA_IJM}n>I3iV{PE@E@$+XvSE6i*~KI{|Bj z)RALYKI}n5NJSZDz&!C5G@|JEa!&WT4DXQAR-IYC8xKwA=QXOXGd~xKl{M9Kht#Hf zP04pavervW==lOqe4HhXw5zHsHfv|xJjboB3Y~Ojplq~O{*0YAJBA}Eo z@|3(jq80bE+ZA{HSlOJ84hoj`-P1K6WRaRgFgQGEcR=hGPE1O=vNo|aG~Y9x-4JD$6458%bf61wN z>;>cT#4i)|roX)#*(Z?zlKE9u^Cp8+{O;coPo1d&-a~v83luudLP1IJ9fj5;tv-lc zuCFBnW=xJ612)xj3CF{9BNt^=h>?ElLBPGVRA!50t3#y(y_E4U&>Hm!3JmKH_wQz2 zavNj|qOtg1RLRcpQ{3KcPVlS z6dO4w-S6ta8t+TLP4odtwupn5PP@`!nVAKj5&}lpPRi=( zl$t5j?83v6{=^37Iu!Ni5WhQWNVo9bpBZpTq^`!;*G?lwmfzw7aVNKB!6|WY zEP<4koXlP~ef;ZskE9}+Qe6H$k~C4?Jq!LT;E1rg%?$`lBR*Bq#t+@ysoF_^F9d$; z4{_q)6-e0%OpxLBD?=hO%F;v<8M#rJlS**U|2PBI~0u+af_-QNq z*CasS*bN&gPWN-;N){q)AC&5l*P7HuD~tlskKIJfwF-d-8n}E?1Z8B%|HLd0I!giz zAZ#dLF8SckGT0hKsV*-K!3X~5b989nWsN{;-_ZJR-0;J~xSaoak>kHX^bdp3rmoWe z-$A0K1Rr)bbn#BT{{}&j!65peFD*L%_sccV>cL{-E%;-<>3;`7z#v@Yx1A;bb0*-w z6LG-BZIFIdqx;_=87VLbl7GlW@-PE%g27Js8i-sRKfmh#1_6Q?$bFGaT+9EPl~o9s zy3^FGc5fPe9jk(C8>(ScPk#yWc1q8w}pSOw+&oUsb<**UvmSq0@;1q7^I zTzC*DD*Zqer!msm8R-CqAiyf900??YInck8mE-9v+JG3`{C^svPALcx zu;LR!h>CH;MIZ=n0WkpqZiI+1f?E_~EeNp{<+I@v1XRO!Dq@I5z=bsg6t(&IZP7R- zw2Gi7j8y=tu4!WLq3`W#rSFZ=7vWb`gbHY46j8Fy5Kj*ejGBU;=8MU=9(mV=cLS_7%>jW9ORhFPl%BXK&;O7;#$pkG-Rh_bzasx?MbSIka8*T9J1 zQ^?p3Wvqxa)^n9t0VEVsupNF4b={P$<&3acM?*tJLs1=LR}r+ch=3|a(M}dT6}8br zqxsyNyb)eHs`lW9BEk^ks_6Q82O7*Kx4(#KJ`!)u8GyH7rUE z%+OoJ!&OgEMBh+Z!yW5|({lx!0@cRafyUl0S{`EH7bybccQeoz!(nt0FnxP@6BQ2w zTN@)06MZ>tB`sAvP4xuDpw0+B4~UhQHn_%VdSK=3wfP(sptk%<0uU{AJFF)HrmHUI zB&vaiD?zPQ40P@7Au6t7`nqn8+6s=|vg$Vc#%Lq(IYB!)J9#5G9~$sAl+OmOZ-_!@ zAP^cT0}(lEEdytL0V9YJzoM(7D$3AG%UeuEQ%_ga-Ah=iE%L`Vm%;0C_sfl^mO$jf;N!L0OEbwr(!Ci-xc zfjZJo)m~8#>m~;C09>GGW3B3@tB=%2fO9=9SBwC^AvjZo8LJ9ogw#wl1r>!25gxXB zvT9l|XBCvIrVY+P%L`^LEDV)X!`R{URTTM92sc?>eOaustc?Q{XDDl+1GBPqbXW9% z0clnQf&fL!;zR^>Tr`!ywUwfxGX$-Mc0{>|sJVOVXgVPHg*;rn3{Y}ns)kNN3VfdW zB90h!4L4(mqluM*5TAy=rn0Ar1F;ZxO7wsSDDk#*Ix)0T(p!TA(b zM4cf<3Qqdq69S%4L%4~tqY4INCy%kRHc>Qi@Zfh<6ZCd6QH3fx8OmD;IIFqH85!FN zqP*aI-bRATFg;Hzth}MUFdW4vAnT=KtAs(rTm+l4|Opl4QxgAR1CF&wo&v%>*+eEX`(S2 zLj2D5C_ZmDE3^zWnm$2YnYH0AD@G|iW&r}ET(NErlbgzyQjP|P-0N57QU^#Gg1tq zr|K#u3YY)~(KE5qLaDnLWAHL(W2`Q(Vzg>V0bGu z!Vu{KI0)*1a}YK5&{sr2J+%>zVBMj5P^_+}wv&>xj=rprx|$f)Ths`HHqaAN#Y+a( zQ_WMs%?irrDyr(ur)ldTCI(f~^aSk$Og#1MT=)zy!Wa{4I8;{=;_R&iK?w3`sf#M> zdm^AH0e)qSs+*h!pQani1uKXY#eohnF2=T6Fe@uvgq$nr#nIjx;w`F-k>^M0ARMr8 zoIF&}Ti9L`rwAU3D2V85fL|{!K|v)K1#bkOtc{3{kUqrKOl-AR8|y{MC)pP}Bs1)3%1IVv!!U-qs!n zc}Hty0XvMYhAIRB)l@+0JL%)(b=+)m5G>lo6UT=U^Z>@p-9Zdxgb>zqaI#0}@GB^~ zfR4Se9#+Ege4_kL7!ffIc|(31Srub>tfPUVn+IG#*I7->0VjY}wRI9U(Gk-W@Unus z$lJ?e6|o}1UhbehA5_E8+g?mVK-on_0OMtArR^+&bV4ZrC8%iRq3qx-43+id({shz zSbNwBBcLj_n#OK6jtB*7ZDYJ<7jY0aR@U}J8KT_ZWjg$mA67}&XGZf?}**%L!m$5-l4;(7~A)#A8dnI`Y-G2I#>DnUdf-NdNgcB>CRsv+6ZRD5j}Y+$ev<$!52f)YOgFPcPDmGPT5U zUnwAaemW_p8j{yV=2G=P`tBdNYm!HfOG(qw6J6q6?XwI}0bj8>*j~c4a94z$Whf(Q zTpTF1`FNkC>%A)+R%-invL&7uR={Ik#d30d;2gD+ySJNk$Ec8Nq#B14P8V@ba~LYu z5Xa6kiD4#PdKWO2m?`xSjj%)_^6qSnX!dkp-QFTg=V$CB7lX`i{vo7{0GYOB^?h}} zr6&q}JeLU0eJlOM&m0(diw`rYeC2R*G#>O6DEw*d8MdQZ2fhyXS!S?S(ss`GWhRO5vvC74_<@Kqm8)kyFTXO z`{-#X%0^7ZN5rm~5?L|o-4edFHtg2^Rr|WA%Znd*Mq1drcb7)0jh3qxcq*rp&@9Nd zl&*Z3AgtE=-O*c#s$t*Y7V`Lc%7B8`8 zu-uUo&~w8x?VxS0J10vkT}t;Ql;lcyho8e>SyS!f!@ZgGu41?nhj~?*kn^aS)X}D1 zM8lE$%)v^1ykUV!)3>KLG~)aYwqp;LtF>&~QaC7X2n#jzl_IsoJQfo+7y8=iv~qQ` z71a%v5p)Us%PYIYuZvihQ?xDBQcR=Lv%1Hl02c+_ zyJ}pC$yu4aVx|1{UrQhFexB5+ za2mOdCNPLNwD8}vDP_#ddjxZKXXM`zM7Gh{kZ@%<)o%5^7D9E&U*k3rn*W|CXq!Cb zTrb%??*WhFHG5BG^Hjq+4G!@MuL6wsDt}x}ztF5QBY#=UHu>maCwU35*9{vIy9_KN zAcjD@*Xl>oR^f9;xRu(Sq#4toYY{mnvbRe8_tvLu{lL4ee(2%I+uQ*^KRs+c8m@Fx znp-P#7!YVaADH0oTz^#V^^DiXdpZ%BA*3aFkvn)gXQyZXGo>_EJ>N-9$1>pPT~puw z!^TCW_Asf2^Zz6sOf*D@L{KtF^bc2j6L?&5UsuPx3JZRj*v1sXs1qG`LryvI<1HZc z%WkrM+)n9}{`vt+x0rz#$a1VUv8N~Sem10`On6f=@j%ku;xX1!4P|t9B|MTn>39*3V8hBTo zpAWm`yB|z(J>Fko4MeB9kvN24>)reIGvMGCb)ZxAfu)jy;yP2H%nRat-dZ;Ff?BCo zb%(5uAfk~;WX!j;)GtdlR=ygSZ}P4gHq&z7qt+$jRcC>z$VS;%z=`Cy?)sx`(^5@R z#7K!v*j}kgL}-t-JT;G*9YeAp@|ke~_jjhkDk##mbD7;cnNG!gu~2&6BvbiPQ<`M8 zae>_TW%mo0mIM&EGwWIEUK`VpLcsX1jSB?jSI{ENc~cts3SEx*A42dPn1AoFYu6E~ z?|R=95%-jdXLS@-Fr{fCLKV8frjG000|3OzW-sv5%w*E7CkyJL?Wm|yn_mbies(59u-L9^O*w;|;*MPx%ppJSVidQjF!D-kyQELph718UHjXY& z;YoDqS-22iX7}{BIA4zFt*{7VbN$JuBBOi(Cc=3(;o&z#H1m0Q_)CCE%7ck`EE;## z&#L6Kmqw=v;<`49v2(gtWY!=|)BaK|r<0=khj1Q!?3PtGEv@D(c8Oq(?Xx#Am9i`0 z(dB$@mb(3UPOr7EG+${$K2Ic+T?;A~?m%JQK^~S@z5O=0+ON1WE0j1YxVbvN!JNqCd0e@131p5DcclIho zuXY|=v7Bl7Bjm#MoAEs6n5s81+@`%{W&OqQkkVX_rjCQbeQ0#KZimbRDXnOKm}R*` zBFy8Y`?~%`MybX8lCx_r?V}RXjs2UabZcQI=7WMG2zma`!s?^CODlI28>cR2ajMiZjF|LvY6~ zvPm1v&z^@&xX+dqiu>h1Q+YXJP!^`Nndyc8GD`dXhx*Z* zy?JbD@9SAxT8oj<(SVt@)Yf<}dN{n}g=}Z(`J{uj*j(+GKwvPpdSwc&TQlG$LFy@@ zoy1SY-RBX_R=AVmv;MKI$s);Xib7O26yNN#ZyB0Gy2sZt)|X3Ic-@ z8T#zqe?A{c;D>+zQMm147$5T*D4OnpZ}vx4w)Dk}eRF7^?M2jj8IrS;!@i)GLdUS> zEHYhO?=i%(I=Y=6H~dpQIFA#UuZi1vKH;UcJPXC|yH|gHZVeaOt}D0~n&{t~=JmC< zfVai)MZ;pdz0S|#%4P^y;AZTw1t(;}Y&WwkpJaq!OA>sp5 zokO$`dwJN1fjUFA$I_EK+AjjVhV2XBy|5rELGtheF>j}n{RQ5Q_mYBb+!e#WjOT>j z8@_E6&-nYcyjw3;0-eGpkPwU=4_4R@5YRSOP_{3sT!Wq zM?=uPp%>#|!1ZvuQR^~DA=fZ-+xYFh%@FnYi>V}vNbb%f)DCs^fnxYmbIvlG$IC{h z5q4@J{bxlbv9pnhOY+HFCLam=N`u|_!4#gBmv=7xSg%?r+?dVIpdOr3Zn#(6pwu~I z7e=*oIkU9W&WQFdOz&LFTdU7s&W9!#LaI`qL98RPteqRU{~CxKU?3)?d4Kfzim(&> zs=j7=Gf?IMnVrkmi-GdW&x5lQmI*>N^VCiko{-oYtUPtH>Uuu;)IKddkfj~{p!Q#1 z`ma|mbN)OZh12<8rD#A3%^`AQ z)b_A;VNoXu8)_yEd8$ADx{knRk&$(fun}us4hjA5=INQr6()ixA?dWI|IZUj z|83NC%LN1mow;Qye@%!lQIq=-D?ya+OpGMn4FLCLBFPco6Lf%(u*f~Sz)W>{a^}fr zIXv@|F$PUm9cLHwtjc`~c^dWa)K#uDMzcp?mj(?+eK#~ZEi>;JykRln|Ls@cI~*sD zn%HmQ;tRSPFd2S2O6EJ-IhypaI^RmSP2k6-Y%Y(OVkR4Z=EMK$mqSjf*#%xgs*^Nc z%9S?u49W8b9chnIO7Le{M3}C*GvFoyt1B zGZqk^p%A91-NbR{54&)%MUWz4ske*cFw%BUb2i-7KI?9YDbQ&wc6av<7Y(A(s2xgywa@-{YX zLiYFgnG#5d{Eo6nl=;&Ao>82te_i<(nyKO?zIzztnD{rPmC;&-V5YxuD_OYAi=z56 zf^*-!ZW;X@fezu(mP#;V*)CbBEx0 zU;ayK;72G1{b+j6>+$gakrlGcPy)ipt5(RIKcD-Txq(4TAtIKE(o6O`6_Eeh$~+;X zB2c;H;qm0Zd#7hj95MtfV($iM{?hi3aDk`)e}AaHq#J~yO&jgfyc$VD&(#wJRNm<4 zN*q7Ba2;atTLcA^cC|7Kq+l&Wxd`iMrJ z&#=IHAj+Wbyzf}~yQ1WhRGOe^L0ccM2R+AES7&yJ>PUAtzDF9}KDUd(DDiP-sE2d#e|-4M0JC^AJ7?H_L`bulWHr2!Y&p2Ofx zjC4tOzXa`tfBq@9(X#(Y^NjZS4=&F-N}`}$3mM5zq@Kd(I0-F_>ajs8FT15ch|j*O z^WMcOQOd6>1vpR{85t7CvqaHQ_Rx_(2?8n^!rD5e`f0SJ%)%KH-i}P^C_BHP2Lwbv zxj*dOUzMtl;dxI?7MS^APt<)r=6i}*_af}z#Q$)uA)8Zu`g@|@xLrT%DT#=K1AEVu zq4Rsm%lu!cERdTxGcgCsc%EOaWs+#;%sOvDNW{e9;xyfwJfm-G-&e@(KL0}{=+(XW zQ?{fECjukb4`MsQWNw|k43a)M1Y_i%HfnU=j9&wWfM~`RBum;Xk|F46uF`**?sZ_b z|9GLu3y_ZZ$vW;IP(8Nu(?C@qk}&R`0N8$ufEVo^55v^Ry-XatD~tbJJ59m-#^Uet~q^`-}weaV?0JcPbA2 z7%j3gg~*5_fOsLKXvBXVfLu{(?R0zk80=qPl1iHpcOn7JPM+I;a3a zzR!Tf2DXi1NhY-PKFQy4j!P5bBtM!55RefPf0FxfROeAY_W2byhA3$K>hDIZ25yr%DURTae2&QSZa|`D5i8C1$ZO)vI?{V1ky{3Kg={-@HcxK_VXN;lRXktST0>fE!)^%!w4@z}6UlnelNt|_PFq=R{H z_hE4p&kMLbpQe0CX{j7A{DNQ|tURC`7ys2}GQWu1OuH#|{9IGc34IShmi%~s>>aI> zoUJiAuso8fn_SLDwcb4s(Or1-2zzf`N59b z%#f4Yea7vzEVX3AZ&G^?VD)}03_kCC>#>PHs*A!V>xv6w?A^mQX(bgkQ^cnvMv;r; zT{h!PGj%+6=qNTy_vqRHdZ7iMXLPK$Mt#*rcd=DJmVE24+IOjoOOCXc39or(EVRv) zBB$o!zp2EQFJ*q`u1NHA7%lD|_!W{KAben4VjnB9IZRcWy1_(_Uy29kJBV1IS`uIX zcmsHAxO&yN!X^*aS?;CRPI_F8bF1~v2=LhV{YW&|Uy&YjN7tC4{2S>&9j>TG%*YzHp2wPdb@H{5bUPkNC z##b+uMwI)dMb&GiMDF+GRhHhn4n`ZQ3|8)v*C2<`e=CO#a;)a9SiBv>Yq=R>JzS5S zi@K1&r-PYkWDd(#f1WZ>n&|kb?)Z_!$@bm#Ioz09gCRFug17LRGv$pt1vf+ll7W+b z<8ykwAs)}Nj zSRcnT5Y=O%w4am8S6_Vpk1xrLiLQ6$2wqGSK!o&F*VdnDF>PZUsnPP8}GVClcr ze;9Pv^vdBX)lcwQ`4R$<$MYfMwiLi0$E$@vbpOjctt&S zed^1_D0#*U?{?qyCAIF*OCY4VzZGbrZ%D@8)^CIx)Jb?vz6rk$rze#^!<$4a-QP1I z=FN^QZ{gNiBzzyKF2~Hfm zQd^l@yHnS#FVcxG237bErBC}G=M`-muhhMQKa|%(=F4h~s30@N+?G=i?MYv22f2`y zcS^5YB07EaSp2H63=ugR(cdPdaKEj2AqWe*;5UZiGnsuaoh}- zNh9cDMWhm)h%Snlo{5d)((fl`rY=1E3a?H#EE3+~jN`F!Dz$0i3ZNIeDQ+8@9oAb= z`xLe|Rej_Ec%!rL;v(w|MU8_G1xCh8qwQ45IZ;h45=eKfO8k_7Pj#gk`yqj6f6V`jx&8FFsx7B2n zSwStv!||GT*qA>=uPdjW>1py9tv6}=rCZ~#2v#f^U-n-hB>r_3q%)-dkyPD(ntbnF zcEY?va!bNnyY1nN)q3(LLUaExbvM-7QM^tX9S+F!^Vyqj_*&9v z&yf*e&=Mc7G*}@RL|*za-~@YtiXJ{$o)(b|xuzB$r&G%y!mYc=FQ=QOYQxZd-8?&- zjyd8f9jjLOb#$*ydz6Br$e7@;V4RGmu8d5tReXL>cg*umkG{=bt^L; zGQV{@F!XvM$0_E!8u+88I0yuRDx-ezni~F}Ue|ZNg>=20n>zncdOLR5%lBjp8O4e& zCnl9qyx zD!1{6vi-Ng=RKsvx0V*;*&7Rw4s2T5%x$TuDFQP!{a9xsMQ}WOd(kM{8}#X)8O+>$ z>vNVIz85^ZzFuE37S(#!qdDufnr^u<|I8W|)!jT`kY?^U2ytek&4(e~d&F?Z_syK$ zD?6!gdCYf|Je*}b7o<%!F3zyQ%)rb`b?q9fWL4SofC9n>spM*? zYRnyEGj_9)dCq&MpsU)4eb2SWqbco{QDZ!WnMCw$K!jPW*z`F1TvM>)C9*Ptm9hSZ zUMJs{Kbe4eD#JEkH%sk+diwp=KkvSK zJmGE^VGEC%3ZrSfzfvFdvwd4Q*=eNaW6VpBheTb=(>JE7i;x2_<&dHI#|&~IrVFZ1 zF@4G_PV`eNuR>BAU@}bFc&71ZTRo=uk@wX1x8rlj9T~Z>`-^e9nVW*MiQ;Q%viGW% z8cot?F?df;2*oTbMP7W2t$TA5`R8+Ixw+pR_9rT(9XVt*m`8FY)>;zEMN5 zV3@qW9v(6JJkGr+KKafyYDX_CN)rd+{gw1%KJm-|tz6T}&>wkb`e}?^eFF`(IN`WG z!_)yyZ+ZsEuF657XI_X;iy(8~+O-zyMDb(vgrYH=AolsA9@R$EB8z3(89D;;X9R>) zA@?6DQybTBi|8HpS5?l6GWAVz-X1D<5Mq20VZyDjZSwI!-)Jfa&VBJF?^EAi-%xvz z=;K<(nEj`wO=?8}Of>nuEKAM>>@)4@(eMC9e!`$n3Tll*-F0z;B9JKNBkw0?^@JQv z>J7hLSYYRNu2xH<6;&06F*ZkAFgP-}opdiLQu>)N`2B)i7n!>yw%2~{x?oxQ0AeN0 zyu_`+5V;YcNf$4jk3k8VXsA)QMMD*yw9KAcNpRwhFeap3LeFux$5p(G?V7ry{I$6! zYh;A7d2J#_{7IZn?bb~a7i$wQ=?4H$fU)QVl(k|Ti#`@lON}K-DTJ^d5gteD7cTqLN2Qrji zJ#XsKM_!ZTQq#rVIhslPCCC5tuT=7Pt@l<>9#vRAPcL`@-P~*@|BTow;zazK)S4=; z3swkbbE`iZb|_zqfMk5UaCd2_+SFsEMuN4xaKn&tCk_cMoM?E)@H{K*m|cy!HQEYp z8GmudJ(@=8LSzv#z?$)51rK4>hxdHO;bwS?koZCdM9^@Bj=CD8W_r}tg1^X_%sOee zv>#QuFMs6r^~?K1m;|N@&SCU|v%41NnAsvSSXC2e-zvUyer=-n=$V&>$w;T>W^no8 zR_xSpWod~`w|7%=QQ*LF(6UzJh&cnKWufnoEm^n_(y|;-T|mt`m@!dw#%C(7mwqy~ zBBv$j$Y&(k)0{{9?b|)=9~6ao#xUBR+cr{M@50m^yr{V?R53G6=&BEPRLZ;;ax{-` z!PzvQ(}}sYJl#re&LA0UGD`Pzpc5Kfj@XG#Ua>0*%id~W;v~o*WTFp@eE_z}JWswI zs*fMtcx`lJ?w6n>&uUr%7pAdC^~ zWjTARp_a8^$X!^Ww`%VJe|ut;bK?57sUDoI@>11Pb^59VNM%s3D8Rf`1-%iQf~a+-}whQfw? z)TElT>RObIMy=TyQTvQB8s#*iGJ>_uaf=7%uX35mm(2~&8%Q@$^%pyqE)G?v(?%d&V-MLsBTe>5XvJ~m;e&uh3>m_)NOdHQ}5+XqqBEg zqPVM5q;Wj^Y+adO9lPd^Lu?k`9%m;%E>{HG-*(|k*sl-CXC!+ULh4dCo90B$h}tKn#6&kg9P}L^?^CoL^u>+iy>J<(eq!I+XA6{(gHuDAgCnMKw0?!8ub&i8cvyQb1WVc1%aypohu9foi3= zv(y0(P#r`}JQt{M8ObDfysN5Bt=Z{qnbt~fMYTL_mrA`ep-3SVF`}LI=<2(q?{gt5 zEa0b4sZjg7ifw4|xigxFasVV-%q#MguC;@;9>`Gjuj(a*4R&Jf-Pq)K< zIB_SXU!0y_zP0zWx+w8DLcB0^&>+w2N@=5K3du4tG;qgxG5uUkz?n7sTUx(ktpM^} zZ~DG9G3Xvv$L9%qxdKI0-`?2uHJ6}HITF|@{A|d+~5Nb>Q zJhV46`bMe~ZqUa$^gv0@vPID9`#rDY%DRkhD-lQckjYY$V7pq2=-$uuNA}q$h}2H< z!1}_IEQSH^ypV=iB(!Kk-2VkbdkSxMOI1(3$;9RIP0_OlZFzBFlGpE-WBZt*{8u_N z8w%ZzTr`PgKJ6{)mJ^=~_p^C|ttqO0e0gEE$-R*Gc5p%OwbUvJ>$8w|f2BByGr zKUeR>c*roCVaGDfyKkT6U8zXLV3Cfr*{htPp<%~&`;BnOShdBQm}b`QZ1t!d(un8S zxvu15k+O&1MsPwg!mVhPz4NgWX%^q+(=vkN>?=2eT{{}jO|QLQ&+mI(i5gjd?Ve)r zrmuV(GHB+29UEDxHBTz9F&`Wo>KTY&C~XUTRXUMb@lCI@E`fzON)D{k_jcmZ`lhvJ zIOD1IS)CFul$Q5c>g@ZjXPus#v|#>=MeJnwrR}btWFNY z{_4b$O)SK?zKzb!C)&R2{nw@Jv;x`7cPkf0sut^G?d-Ecmi-ElavBdLaz)Jcn_?+9V4%JKQRT zjWBh5mm%0-H)uujz=Bb_YoBmq{rgk#=vJlPoiG>8+95wnG#PNt5nH6yg` zh4M`T)2^)(zrF^vCU`O=esNRUDRyeT!=e2)Qt)}u(N#x3*WK};e;RD0mkSsejMD1N z8s1&|t|uwpGMLJ)fNbtmxv;6!sjOCK0i5&FFd>fSFc~4jqmqDBh?<(2N-zWM!)M%c zA+DR02%l{&TY{V~#L_}%D87G*+YFW}{1ALrp+>TA$eVuXOKOQtyOl}N`@YI} z_ecL6-C~Zs47`5H9NlQSz;2&!r;ygkjl*fzxrOFumSMg4+YeOO8YY{*ERpS@~E z>&gbw>$B%TU{UM#?b4r()fYrYrUfMnCL_Hnb>}*WzKF1wLkWUBiLsN8`22A;u*)41 z&UBDJDKl}+u?0O_!k@1|{>b-%wcvm0qti1obD-Q``YelL{+~yyI)MbC5!w!q{>ulS zp1tIhAz;C_(Omn$ymv_A=*0fb0RH{r?ro5jQMxUBy1R;Bfj^0=pboH=aJg#c*)662GFPW( zj9?7AWM6InOXZxNQB@J4j{Ih&k2a&Z%&YX%eAiV1kQ)B~z4!R4CxGrueR@dFpOz}_ zZa>#oWEsAdFT<2e;(Yb$<I{CHomcNNPy_-*q{=bCLtedm)`JcPh83E>p@F&- zs`X)oTW0v~AwaMJkk}mot53w00GK(szfcrUDYYxJzrDoy@cgx?^{JMYcuRj&T8Ya~ zD5^I<@dBfinQ9yt2iUQW<%fS09pE;8`(ZK`_-`Blq*b#s>eB`X;Lp5pM(I(BljZ6a z;a1W1G)Z*1G}vD&rN<|sPgjedcXsyN^pk6xlR=~md^7`ifN7Qc!sJ3xeVoVAU=yG)FTkfo0ytK(pWTNCV3+Nb z226OQl1jQ%EvW(^btY(t2f#K0Or*p8t0n;eoVtRTYL2xXvT2EH0^r0udfDoi3QQ%} z8*g<16yM%rX}kK1$&QzD>&=`+2~3T0l#+;fx2mNyNuSBBKFj##Sk9J-2x*?GB7n4O z3Z|5@o5wMbeoB1{HuhzW(=E=2$TX4>3lUgzUZ53fJk)(re_?i)4!^z0rjexlE&RI1 z>IA^MZf6U4ts}Zc^cnjMnY(ke;=!g`LRdjLb!Si&t+2ywOTVqybFb|PDvHB<(I(?#nw810pXbjDZXlyC``&AgbEw3$RwhI46lK@s7B{_THAF7#um;2*(Gl{*flG?YEd{upIeiAi+#sBIqzd>D#f zVfl3b^AR#n$XV0~SeUcuAoek{1lfbB3cQ7bU$X#S)7Fq?N$ySkZM(jImZ)C^r+&_uj^ItL=G{)U+Q*IR&on-eybI67X*qy7ylJ=ru#>eC_^x zUIyIHj$WPgRbOv~cv{F=am8nJD3j^=1Sdwn&F6E!=x)3{D<|Yqf?Ki3xvTClRD6-} z+PDv4(HXG)R1r8<{oxDsR7KxFg$MKE!FEAmUywFHSaA+YDjvMB572iUd3gqj()&JI z>yteGXw>kHeiLHKzpk)jSpZB4@xBU(b`!;Gn^!@~K*&%CW z^ZcV<1C(Da#n}1M0k%IeET@gA)TV{H`%stn%`$d%Ty_A!AY<+rG-JbDrK$a38=W5w z+~1VnQ!}~rcHrGf{z34lWy5~|?!)8eC%&iFi;0k^NTQR8(6pg0xA)58hahnHCjWBK+0=Oh#A0&!R_)+@jjSk_x$X4<%cg5L7vD!)6Z%cAs*E*qlk5OIJW*>N;g z3nn~s6l?xvs?_BN8A=N7Q4*iLLZWhO#z&^>(9>h~Jise#`H)iuxS#@Wm1p|tZnei} zo+%s*F5EBi!#KUVcKt3vhK8nlq)`C7rDk3Ij>=z?IL=78)Qo1oOJzN#)nrQHGHbb+ z>0Ssxx{8)dTmBASo+AmQH%)+OoRdECrBr@@y*-pJ=*9Ij^2z#x-8m#@>YvG3M_4Sk zPjuS8TDEk(pQ}63j*0pUIAO7n37{)pATz;r@OS76jQDP}N}Z5RwNG5o_xqmSploqW zGwu^~qS17TkeG*@Sc4!Fz*^cMs+5a`!LNE>>wNYLZ7QLAy>DDXCvjJ$3~a(*)@ZnLNrs6b=*79fFK#Iu z>n;GWg_!Mlshe-iUrz$XBUob|PN!ca`D^E>G(L=M226Z=+R5-Vr8?+!gu*ih)~$FM zCW{bXP#!YC%t-7@16-4kSk3ypU_X@6KNJrp0aU*!C{ogAThxck`0b0*?|%{COykrY z1Nw_))?d&2@c(i;qr(^`Dt|r&5hPP{anB-hvKxAqjKw&RKv@EThoCi3t2kaNabGZG zufNQyD%!&JukCdTQhZ7)h68GAflKMv{rUy?b35h4XrA$vKISpo(Ow4ZwN8IjcOLpFMNddmyT3?Hm^!1ZwjAP@=BYQ-YdsXF!{lFgd0KZD( zS2%7kkJA9}*59fo<*}l-yGte>jz4NPRED~;B7E8f0nu|#m-R`N>yqBsNg|e#$#c08 ztQZ;ziXcyt%j@EkKC(3_4uOGV#J?y4?P&g4V!hH7Fy^;oo-)2oI=sC!)GAczJ+_o} zEdi9ssDYAJh zK~Z-M?vyqG{=MZvRoWkJ{I^6Sji~-`J**VEa1*#o?#oKQpt^XLQ%pSKjr@UUxx)a> z#!EpD@IVoz1$>FX5vDfQQhx<{OFbEBF3 zWBOJxXJyF)nNP%rdwA-6S{$Gy3;?;m$4UbG7evLsg;eLMNoYl^xs=+rrnr++bGiHv zFld+v_%3eCpg^n(_UsEuKwrbn&PV}v^ABT1a&Xfo6nYVAv+_%5FDP6k0_I3y*qwuTBp);?g=V@3ZpdE-P=CjLp2e(!T? zo<4b^it$GP$@<7a6}m#=OG(z|)~Z8d@gaV}S^2C?*-dTW@q2Bwie&j8?FYqgZZHgA zOO){l;J|fv`%7U;HVp24jw-%iUu1GTb}`^2nTknQgluoH91$_A>A=QRyUGw`QGK_EZqkk$8g*N)n93PEU5#~1yH*?9Rob`#%J_*Cuheit9=`8kk> zQFBLuiZk;PWINBbJNl7;Gm~2{>sp2tT_|3PcmK#t)mJ&;BkPiK>lqOtaUmHXMv2#k z?R9DYnyVbT^4VJHPWLb3gUQ4m1c)KmL2%kqV$(9Y*1#BFe{yU(-;>8K9vE-o;#@gJ zjT)<~JzNPmsm5Hjhyxp0H#rUS@i@&;9#G~qG@T*t(9gFKPRi)3ZU5snGf)CipyUz{ z;+%XHAtfLi1tQJP@U%j`Mo>VZHQkoVi4XWf82$T&=I~KV?P6@t-`G`Vmh6iGFVGmt zpukP{{MFk`ZqwiSx3WkXJU?(1!Acd=yyrRaRgZSH%BFssOGACcD&n|hF7b;^?_DR< z$G;>$YSVWE7FropR!&y0)I|epoOqCTn42xE#*K{OHpgZn47ZW$`NnC{V+a!UlGNMY!dGbwbX2(ehPpwB2oW+ibY4 zQP|CP-40n^5?pzz7>*I2|g~Wn=ZJpEMa_6 zGw6LA{TTWEjTBdXGWj<$8E2T5$tMfVt0%`l27?uXRw?oI8Zy!{bsoQ>CF`s=$TJix z0KQnC?-mU?J-K{!yM6S_m!J0=0&_Wy3bD^1 zinjk^?}?%6A53f217!9=P${YUssLJM6LRr((L^o^H^u0``|&U#%lzTH(MfdIkv-b1 zpww~ry$*x-EVJNp(sBPa$*)G18-|Z&_gtiRPuZ_-7OKo zQjgY1y=&TVygQxjtln~Y$qm#rYnN*7Aag*CapH{s{#?#_3vYcw!&1Y0h11*|F%*WM z59!Ok0W++xZ~+ZUl^qAp{eDI|~tZu_j zN1{>LLq&i%)^LFyBn;-_V+c^@cb)HE;9hswJV;h>gWA7Rku~oFkbg-kmd4)GtEECS z>N;klNaZ(;&QsJ}xGo?s?9hLY=R=jVPqTrR9$i7&TcQGp#(O4V_zahS=zk)W zi5DrX#6|iT3*_v=NOi?I`&mbjmCFPvvGtFnj0tN}*l>trao$8VYDBfVb=I#y4Q0*? z%Grze?dY{hHGAUTn^bf&W@EMW50vo8%AW#s#e;(b4#e*gUboB5nG=bY!6^E~%;U-xz0$HeCk z_4Fj)^a%cPLe4E|0486Qr$6#~#CpXC8(@I2>9ngFnU;W2J)y@|zOJ^(@A9y)Bh;b3 z6P1V6{(O^7$_9)`vTMIbEt6t`gr#^8Pp-2*m}^QIBjJ1 zhWpJMi`uFdL3xf25I+?M2E9EdT?iU^^hvXYkm6H3mLJleaEgg+Oo`2?XYS>KVOh#% zB&jW0&Fxz{@)J6aTFe=kdO&b~Kw3V9Z|`irRJqQp5q~nKUa-ZM- zS1r7oJ5iy!)+5g0Kjq-%`&S8d`~MzlkEDysmQy@1+Nr$5+!m;kj9Flj&W z;?F~TRL%FRX7s;f`TYqJ1CFRHy>spP<4_a?U~AUTxAqp;Ke1~EJdz4US z@a}qPb+i*McBS)@Z1{mxbjP&oVh+)$$PY|7OqyYha`5@`2P5hrLk^G0LxfD04lsfX zymU#Rb9qMpuugD;JcR61bldhCm8yKHuMz3l7-+loksxJ5`N9CT5lWD0d@#uho)46n z&Tp%)Q6g7gjfn&CZX6AUwt)T+DKzrxbvoE*W&Upq5$2n>zl~ews1-X{4?SC)9BQ0d;9DseEXo}D+|SBY|4dv&=mNVC4NuywF>Do1;yT0OO8h7g9y zZS#~FY9o~m0Tn}MbRE5Af(qVLYkk%U-yx?YFT%!&k{-5gM{2YiS6&|7oQ6*otLt2C zBk*i!u7;9wR6co0ZRSJMTCi-R=)MJc#f%dZj#X~`_uiV4dDqFfr#2%G*tXka=|6VJ zoJ!I9wsf|GDCw+YY#iq+idM)`io!e7e>*79E@2jhM(D z3E0BV-qOo9t@X2RTf%*^qEHD+74_imZD?5cwxMsCTN)5zvw%4@W2XC2wJ%43H8`wy zaOr*V9m5;5?+SBNQ*C;SEM$bQ!wUV0KTgEDCtp&}cF#>c7DjiCFm;Su*C)3;J<=|rm|1lquBTYd6zyxaZ?f9-duN)E`9h^0ua8Gk zXL7Z1SNb^#vImb)^OGZSi#GNA&u6bB`tfoLS)YwZ8AD>f02DKD7>ofLXh?Oo>SB&;qNR|74Q8?oNu|DB3W!jdwVhx!p(+ z!G8tsaul5za|JuY66vUjZ|;G3dc5q`N#aB=ZnB%lPw&M^V9Mz&@Z|7a9_gN(eA^eJ zh~%s+aC8O0&9FSLujyt_-$5-u_>CBZ#+g3ndmmnCL;j*+ywSBVOMai*XV-ZhR}4f}&qjuzHk} zyRwf?K)Ndy7tytN zs3U{FC6x*%JE>{k~q6mM?ar6=>}BIi@K&SEtzvn z2*D^T<|_jzoFK_Lk9(?426_(P6+a>xC=*a4CtjO1ku@D$ zsjDNsrg61AcN3t26!q1Gb9SCVS`Ht7ehnIP3Dq8|aTVhb^$A$ok63uvB~@xO!inGw zk05*|eqUH>>#Tfz<&l@sXV;6swKr89S%HRIteCEU;$EI;$;sCxPT(<0t3CxxR!j$i zRP`zD+OPfBa=0cJ5;)H$Tm3*gdz*A5h~If`bg3bQ)92y*_FR$UmV3E}|Bc}N#}R{r z-TV%?*%fjzht#e4b1~-w%!QMq zryFH$={X^qVKkZB4|K_zn?vuXg7_`e6d1uSW*R(4g9(|I7}G@EKTPxZr#8#Pro7Ob z2!hetkUwvZBkuLvWJ!Fii9719=+VyWFh=e2D1>cy3SpiTx{BJmy;(Opd;NH%61K7P zOH7%vA_vjuA3x@|#>MZrPQP<5>~h1s?>3pRkv@%hgYBz}m%eNGzN;NO+wf`>J?C-_ z;ciAkdd1F?>Nfx65|-GYQL;*v3E536v@AoF2;`N>Oj2e+)P9HlaEYpaxv0=FT|E zlr~K7KdTYJd)6xS>$$1{?$cLoOWLkfMEh@z+*(dz=hsnz3De2P#xSuHr0-GuzL)(& zE@O;g8fNGDIZVwb51-n39m2b})oP#lP*n;=I}!1-WnHu>v!3;qTcB@2&on>wU{WxT zY!45^lc4wIgdD7%!QXlNLFXWZn7T(EHcXJfSz?6=6u$B*YKC(nuFPH)>~*IsVCp>LxL%brmuQ!eN@uZNm{ag`Z%CK z-h&G^g9@01y)|VD&}H@`C7coEO0^4e_AMFprlkaw@B5Ij#;np$R)`&kZXrICYoE+; zwocVQ`r*88uQFY8*TM3>$9?7gV>Js3y1Z+3P7d~`Z`??V6I_2<{JYk&v?v?8`qv|} z9FAV0{yk9wOx`^!NBaLm%H1lXUW|*{h)9oC;od=S8P;waP~% zOnYkWpIP(x$e<_1x~HxC8`=+G5+lUeO7*L2E0|SDReU?0u=s=^TL?)$b>gaAzV8Q8 zk{@&wJ+X{KeUJjADMS{8NI;=s^Wm~?f;5LuOoe2zxP`PI?MRYT3ZVTj8P@oU zd|`jn3zs9i&i7qF2~MGsp47_d9w7Vm2{um!fLp?^ga5#C$~0k^y_z}LNPe9VRtreP zBBkadkX>-ScS)9DBKO{x-8+R8QOhhl8i2iP?80PPhz0#0w}q?%blLRt$YteS?7jEM zFq$TZy)S!rYO(-@m#>+(_Wjw>0JyE!Wq>&YKQBpjVM^^*hk}EV4dwhcw=`y6@D2v8?8<*0A$&^uL6fzAp5m) zKBCuvF)*w#Wpw^c^@!dIYA~Hs6Z4)RkN)q&f|?7nsq+h8g+exlCIjk^y!C~Rh-^ECTjM-q zVcWvvXYc-h47YCpu~>>Z3cvc_;*`i(0kmT7z%&?|4{OB^8*~Cb*?$+}T`Z zrw2hVZpTXC@(Zfk-!Zv%L!$lt4i+kkosi+L*{5dTqz{AO*eckw=Q|j-<4BPXiww%+ zy{tqllxbNE;HuheGXn&HA3hP3#oGa~yH$d56H_AToWC9Vdx^H4jFPmvSo!1Q@f<)$ zyG^BgYbQ%t$Jn;qtVsmQzi`(XAyZk_wPinA9DUPF`~?$=7%|9n_{&ymO!Q@H=VdK* LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR265/index.html b/previews/PR265/index.html new file mode 100644 index 000000000..2b4546c1a --- /dev/null +++ b/previews/PR265/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                  ClimaCoupler.jl

                  Coupling CliMA Models

                  ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                  • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                  • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                  The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                  Coupler Scheme
                  ClimaCoupler.jl allows for independent development of interchangeable component models.
                  diff --git a/previews/PR265/performance/index.html b/previews/PR265/performance/index.html new file mode 100644 index 000000000..62a30eb94 --- /dev/null +++ b/previews/PR265/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                  Performance Analysis Tools

                  ClimaCoupler.jl provides basic tools for analyzing performance:

                  1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                  2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                  Flame Graph Interpretation

                  • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                  • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                  canvas

                  • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                  • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces.

                  References

                  diff --git a/previews/PR265/postprocessor/index.html b/previews/PR265/postprocessor/index.html new file mode 100644 index 000000000..f9db121bd --- /dev/null +++ b/previews/PR265/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                  PostProcessor

                  This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                  Diagnostics API

                  ClimaCoupler.PostProcessor.postprocessFunction
                  postprocess(
                  +    name::Symbol,
                  +    raw_data::Union{Fields.Field, Array},
                  +    p_methods::Tuple;
                  +    lev_slice = 1,
                  +    datafile_latlon = nothing,
                  +    nlat = 90,
                  +    nlon = 180,
                  +)

                  Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                  Arguments:

                  • name: [Symbol] variable name
                  • raw_data: [Union{Fields.Field, Array}] variable data
                  • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                  • lev_slice: [Int] level index along which the :horizontal_slice is applied
                  • datafile_latlon: [String] name of the regrid file
                  • nlat: [Int] number of latitudes of the regridded array
                  • nlon: [Symbol] number of longitudes of the regridded array
                  source
                  Missing docstring.

                  Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                  Missing docstring.

                  Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                  ClimaCoupler.PostProcessor.DataPackageType
                  DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                  A container for storing the tyoe, name, data and coordinates of a variable.

                  source

                  Diagnostics Internal Functions

                  diff --git a/previews/PR265/regridder/index.html b/previews/PR265/regridder/index.html new file mode 100644 index 000000000..68e6ef083 --- /dev/null +++ b/previews/PR265/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                  Regridder

                  This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                  Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                  Regridder API

                  ClimaCoupler.Regridder.write_to_hdf5Function
                  write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                  Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                  Arguments

                  • REGRID_DIR: [String] directory to save output files in.
                  • hd_outfile_root: [String] root of the output file name.
                  • time: [Dates.DateTime] the timestamp of the data being written.
                  • field: [Fields.Field] object to be written.
                  • varname: [String] variable name of data.
                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                  source
                  ClimaCoupler.Regridder.read_from_hdf5Function
                  read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                  Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                  Arguments

                  • REGRID_DIR: [String] directory to save output files in.
                  • hd_outfile_root: [String] root of the output file name.
                  • time: [Dates.DateTime] the timestamp of the data being written.
                  • varname: [String] variable name of data.
                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                  Returns

                  • Field or FieldVector
                  source
                  ClimaCoupler.Regridder.dummmy_remap!Function
                  dummmy_remap!(target, source)

                  Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                  Arguments

                  • target: [Fields.Field] destination of remapping.
                  • source: [Fields.Field] source of remapping.
                  source
                  ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                  remap_field_cgll_to_rll(
                  +    name,
                  +    field::Fields.Field,
                  +    remap_tmpdir,
                  +    datafile_rll;
                  +    nlat = 90,
                  +    nlon = 180
                  +)

                  Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                  Arguments

                  • name: [Symbol] variable name.
                  • field: [Fields.Field] data to be remapped.
                  • remap_tmpdir: [String] directory used for remapping.
                  • datafile_rll: [String] filename of remapped data output.
                  source
                  ClimaCoupler.Regridder.land_sea_maskFunction
                  function land_sea_mask(
                  +    FT,
                  +    REGRID_DIR,
                  +    comms_ctx::ClimaComms.AbstractCommsContext,
                  +    infile,
                  +    varname,
                  +    boundary_space;
                  +    outfile_root = "land_sea_cgll",
                  +    mono = false,
                  +    threshold = 0.7,
                  +)

                  Initialize a mask for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                  See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                  Arguments

                  • FT: [DataType] Float type
                  • REGRID_DIR: [String] directory to save output files in.
                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                  • infile: [String] filename containing input data.
                  • varname: [Symbol] variable name.
                  • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                  • outfile_root: [String] root for output file name.
                  • mono: [Bool] flag for monotone remapping.
                  • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                  Returns

                  • Fields.Field
                  source
                  ClimaCoupler.Regridder.update_masks!Function
                  update_masks!(cs::CoupledSimulation)

                  Updates dynamically changing masks. Maintains the invariant that the sum of masks is 1 at all points.

                  Arguments

                  • cs: [CoupledSimulation] containing mask information.
                  source
                  ClimaCoupler.Regridder.combine_surfaces!Function
                  combine_surfaces!(combined_field::Fields.Field, masks::NamedTuple, fields::NamedTuple)

                  Sums Field objects in fields weighted by the respective masks, and updates these values in combined_field. NamedTuples fields and masks must have matching field names.

                  Arguments

                  • combined_field: [Fields.Field] output object containing weighted values.
                  • masks: [NamedTuple] containing weights used on values in fields.
                  • fields: [NamedTuple] containing values to be weighted by masks.
                  source

                  Regridder Internal Functions

                  ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                  reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                  Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                  Arguments

                  • field: [Fields.Field] object populated with the input array.
                  • in_array: [Array] input used to fill field.
                  • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                  source
                  ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                  hdwrite_regridfile_rll_to_cgll(
                  +    FT,
                  +    REGRID_DIR,
                  +    datafile_rll,
                  +    varname,
                  +    space;
                  +    hd_outfile_root = "data_cgll",
                  +    mono = false,
                  +)

                  Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                  Arguments

                  • FT: [DataType] Float type.
                  • REGRID_DIR: [String] directory to save output files in.
                  • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                  • varname: [String] the name of the variable to be remapped.
                  • space: [Spaces.AbstractSpace] the space to which we are mapping.
                  • hd_outfile_root: [String] root of the output file name.
                  • mono: [Bool] flag to specify monotone remapping.
                  source
                  ClimaCoupler.Regridder.write_datafile_ccFunction
                  write_datafile_cc(datafile_cc, field, name)

                  Write the data stored in field to an NCDataset file datafile_cc.

                  Arguments

                  • datafile_cc: [String] filename of output file.
                  • field: [Fields.Field] to be written to file.
                  • name: [Symbol] variable name.
                  source
                  ClimaCoupler.Regridder.binary_maskFunction
                  binary_mask(var::FT; threshold = 0.5)

                  Converts a number var to 1, if var is greater than a given threshold value, or 0 otherwise, keeping the same type.

                  Arguments

                  • var: [FT] value to be converted.
                  • threshold: [Float] cutoff value for conversions.
                  source
                  diff --git a/previews/PR265/search/index.html b/previews/PR265/search/index.html new file mode 100644 index 000000000..4fc0847c9 --- /dev/null +++ b/previews/PR265/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                  Loading search...

                    diff --git a/previews/PR265/search_index.js b/previews/PR265/search_index.js new file mode 100644 index 000000000..c3e2df1c0 --- /dev/null +++ b/previews/PR265/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/amip/coupler_driver/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nimport MPI\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput\n\ninclude(\"cli_options.jl\")\n(s, parsed_args) = parse_commandline()\n\nif isinteractive()\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nconst FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nland_sim_name = \"bucket\"\nt_end = FT(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (0, t_end)\nΔt_cpl = FT(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\n\nimport ClimaCoupler\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/moist_mpi_earth/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nmask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# import coupler unitilies\ninclude(\"coupler_utils/flux_calculator.jl\")\ninclude(\"coupler_utils/conservation_checker.jl\")\ninclude(\"coupler_utils/regridder.jl\")\ninclude(\"coupler_utils/masker.jl\")\ninclude(\"coupler_utils/calendar_timer.jl\")\ninclude(\"coupler_utils/general_helper.jl\")\ninclude(\"coupler_utils/bcfile_reader.jl\")\ninclude(\"coupler_utils/variable_definer.jl\")\ninclude(\"coupler_utils/diagnostics_gatherer.jl\")\ninclude(\"coupler_utils/offline_postprocessor.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"atmos/atmos_init.jl\")\natmos_sim = atmos_init(FT, Y, integrator, params = params);","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea mask","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"slab/slab_utils.jl\")\ninclude(\"bucket/bucket_init.jl\")\ninclude(\"slab/slab_init.jl\")\ninclude(\"slab_ocean/slab_init.jl\")\ninclude(\"slab_ice/slab_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n)","category":"page"},{"location":"generated/amip/coupler_driver/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n comms_ctx,\n sst_data,\n \"SST\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))\n ocean_sim = (;\n integrator = (;\n u = (; T_sfc = SST_init),\n p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),\n SST_info = SST_info,\n )\n )\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n comms_ctx,\n sic_data,\n \"SEAICE\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fractions\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_mask = get_ice_mask.(SIC_init, mono_surface)\n ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)\n )\n\n # sea ice\n ice_sim = (;\n integrator = (;\n u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),\n p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),\n )\n )\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :F_A, :F_E, :F_R, :P_liq, :P_snow)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])","category":"page"},{"location":"generated/amip/coupler_driver/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the coupler_utils/variable_definer.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# 3d diagnostics\nmonthly_3d_diags_names = (:T, :u, :q_tot)\nmonthly_3d_diags = (;\n fields = NamedTuple{monthly_3d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),\n ),\n ct = [0],\n)\n# 2d diagnostics\nmonthly_2d_diags_names = (:precipitation, :toa, :T_sfc)\nmonthly_2d_diags = (;\n fields = NamedTuple{monthly_2d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),\n ),\n ct = [0],\n)\n\n# coupler simulation\ncs = CouplerSimulation{FT}(\n comms_ctx,\n tspan,\n dates,\n boundary_space,\n parsed_args,\n integrator.t,\n FT(Δt_cpl),\n (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n coupler_fields,\n model_sims,\n mode_specifics,\n monthly_3d_diags,\n monthly_2d_diags,\n);","category":"page"},{"location":"generated/amip/coupler_driver/#Initial-States-Exchange","page":"AMIP Driver","title":"Initial States Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# share states between models\ninclude(\"./push_pull.jl\")\natmos_pull!(cs)\nparsed_args[\"ode_algo\"] == \"ARS343\" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing\natmos_push!(cs)\nland_pull!(cs)\n\n# reinitialize (TODO: avoid with interfaces)\nreinit!(atmos_sim.integrator)\nreinit!(land_sim.integrator)\nmode_name == \"amip\" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing\nmode_name == \"slabplanet\" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing","category":"page"},{"location":"generated/amip/coupler_driver/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nif !is_distributed && energy_check && mode_name == \"slabplanet\"\n conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])\n check_conservation(conservation_check, cs)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs, energy_check)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SST_info,\n )\n SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SIC_info,\n )\n SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n\n ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)\n\n # accumulate diagnostics at each timestep\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)\n\n # save and reset monthly averages\n @calendar_callback :(\n map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_3d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"3d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_3d_diags.fields),\n cs.monthly_3d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n @calendar_callback :(\n map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_2d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"2d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_2d_diags.fields),\n cs.monthly_2d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n\n end\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n # 1. atmos\n ClimaComms.barrier(comms_ctx)\n\n atmos_pull!(cs)\n step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error\n atmos_push!(cs)\n\n # 2. land\n land_pull!(cs)\n step!(land_sim.integrator, t - land_sim.integrator.t, true)\n\n # 3. ocean\n if cs.mode.name == \"slabplanet\"\n ocean_pull!(cs)\n step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)\n end\n\n # 4. sea ice\n if cs.mode.name == \"amip\"\n ice_pull!(cs)\n step!(ice_sim.integrator, t - ice_sim.integrator.t, true)\n end\n\n # compute global energy\n if !simulation.is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n check_conservation(conservation_check, cs)\n end\n\n # step to the next calendar month\n @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]\n\n end\n @show walltime\n\n return cs\nend\n\n# run the coupled simulation\nsolve_coupler!(cs, energy_check);","category":"page"},{"location":"generated/amip/coupler_driver/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n isdir(COUPLER_OUTPUT_DIR * \"_artifacts\") ? nothing : mkpath(COUPLER_OUTPUT_DIR * \"_artifacts\")\n\n # energy check plots\n if !is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n @info \"Energy Check\"\n plot_global_energy(\n conservation_check,\n cs,\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_bucket.png\"),\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"coupler_utils/viz_explorer.jl\")\n plot_anim(cs, COUPLER_OUTPUT_DIR * \"_artifacts\")\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n include(\"coupler_utils/plotter.jl\")\n\n # ClimaESM\n include(\"coupler_utils/amip_visualizer.jl\")\n post_spec = (;\n T = (:regridded_3d, :zonal_mean),\n u = (:regridded_3d, :zonal_mean),\n q_tot = (:regridded_3d, :zonal_mean),\n toa = (:regridded_2d, :horizontal_2d),\n precipitation = (:regridded_2d, :horizontal_2d),\n T_sfc = (:regridded_2d, :horizontal_2d),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n )\n amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"coupler_utils/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_2d,),\n precipitation = (:horizontal_2d,),\n T_sfc = (:horizontal_2d,),\n )\n ncep_plot_spec = plot_spec\n ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Temporary-Unit-Tests","page":"AMIP Driver","title":"Temporary Unit Tests","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"To be moved to test/","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if !is_distributed && cs.mode.name == \"amip\"\n @info \"Unit Tests\"\n include(\"coupler_utils/unit_tester.jl\")\nend","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance: ","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki. ","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function. \nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random. \nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. ","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_mask::M # mask with 1 = land, 0 = ocean / sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_mask = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_mask: [Fields.field] mask with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_mask without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_mask to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_sea_mask\nClimaCoupler.Regridder.update_masks!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_sea_mask","page":"Regridder","title":"ClimaCoupler.Regridder.land_sea_mask","text":"function land_sea_mask(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a mask for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_masks!","page":"Regridder","title":"ClimaCoupler.Regridder.update_masks!","text":"update_masks!(cs::CoupledSimulation)\n\nUpdates dynamically changing masks. Maintains the invariant that the sum of masks is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing mask information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, masks::NamedTuple, fields::NamedTuple)\n\nSums Field objects in fields weighted by the respective masks, and updates these values in combined_field. NamedTuples fields and masks must have matching field names.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nmasks: [NamedTuple] containing weights used on values in fields.\nfields: [NamedTuple] containing values to be weighted by masks.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR265/siteinfo.js b/previews/PR265/siteinfo.js new file mode 100644 index 000000000..fd61e09d9 --- /dev/null +++ b/previews/PR265/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR265"; diff --git a/previews/PR265/testhelper/index.html b/previews/PR265/testhelper/index.html new file mode 100644 index 000000000..82fedef37 --- /dev/null +++ b/previews/PR265/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                    TestHelper

                    This module defines helper functions, objects, and constants to be used by various files in the test folder.

                    TestHelper API

                    ClimaCoupler.TestHelper.create_spaceFunction
                    create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                    +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                    Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                    Arguments

                    • FT: [DataType] Float type
                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                    • R: [FT] radius of the sphere underlying space.
                    • ne: [Integer] number of elements used in the space's mesh.
                    • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                    • nz: [Integer] number of vertical elements
                    source
                    ClimaCoupler.TestHelper.gen_ncdataFunction
                    gen_ncdata(FT, path, varname, val)

                    Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                    Arguments

                    • FT: [DataType] Float type.
                    • path: [String] location to store output datafile.
                    • varname: [Symbol] variable name.
                    • val: [FT] value to store as varname at all indices.
                    source
                    diff --git a/previews/PR265/timemanager/index.html b/previews/PR265/timemanager/index.html new file mode 100644 index 000000000..03ccf09b0 --- /dev/null +++ b/previews/PR265/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                    TimeManager

                    This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                    TimeManager API

                    ClimaCoupler.TimeManager.current_dateFunction
                    current_date(cs::CoupledSimulation, t::Int)

                    Return the model date at the current timestep.

                    Arguments

                    • cs: [CoupledSimulation] containing info about the simulation
                    • t: [Real] number of seconds since simulation began
                    source
                    ClimaCoupler.TimeManager.trigger_callbackFunction
                    trigger_callback(cs, ::Monthly)

                    Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                    Arguments

                    • cs: [CoupledSimulation] containing info about the simulation
                    source
                    Missing docstring.

                    Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                    diff --git a/previews/PR265/timestepping/index.html b/previews/PR265/timestepping/index.html new file mode 100644 index 000000000..fdfa068d2 --- /dev/null +++ b/previews/PR265/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                    Coupled Simulations & Timestepping

                    ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                    Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                    • step!: advances the component model in time
                    • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                    • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                    ClimaCoupler.run!Function
                    run!(::CoupledSimulation)

                    A simple outer timestepping loop for coupled system runs.

                    This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                    source
                    ClimaCoupler.step!Function
                    step!(sim, dt)

                    Advances a simulation sim by dt.

                    Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                    source
                    ClimaCoupler.coupler_push!Function
                    coupler_push!(coupler::CouplerState, model)

                    Update coupler with fields retrieved from the coupler.

                    coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                    source
                    ClimaCoupler.coupler_pull!Function
                    coupler_pull!(model, coupler::CouplerState)

                    Update model with fields retrieved from the coupler.

                    coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                    source
                    diff --git a/previews/PR265/utilities/index.html b/previews/PR265/utilities/index.html new file mode 100644 index 000000000..b13819683 --- /dev/null +++ b/previews/PR265/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                    Utilities

                    This module contains functions, objects, and constants used by various modules in the coupler.

                    Utilities API

                    Missing docstring.

                    Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                    ClimaCoupler.Utilities.swap_space!Function
                    swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                    Remap the values of a field onto a new space.

                    Arguments

                    • field_in: [Fields.Field] to be remapped to new space.
                    • field_out: [Fields.Field] to remap field_in to.
                    source
                    diff --git a/previews/PR296/assets/documenter.js b/previews/PR296/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR296/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR296/assets/logo.svg b/previews/PR296/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR296/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR296/assets/search.js b/previews/PR296/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR296/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR296/assets/themes/documenter-dark.css b/previews/PR296/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR296/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                    that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR296/assets/themes/documenter-light.css b/previews/PR296/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR296/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
                    that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR296/assets/themeswap.js b/previews/PR296/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR296/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR296/assets/warner.js b/previews/PR296/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR296/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR296/bcreader/index.html b/previews/PR296/bcreader/index.html new file mode 100644 index 000000000..fc4e90fb9 --- /dev/null +++ b/previews/PR296/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                    BCReader

                    This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                    BCReader API

                    ClimaCoupler.BCReader.BCFileInfoType
                    BCFileInfo

                    Stores information specific to each boundary condition from a file and each variable.

                    Inputs:

                    • bcfile_dir::b # directory of the BC file
                    • comms_ctx::X # communication context used for MPI
                    • hdoutfileroot::S # filename root for regridded data
                    • varname::V # name of the variable
                    • all_dates::D # vector of all dates contained in the original data file
                    • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                    • scaling_function::O # function that scales, offsets or transforms the raw variable
                    • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                    • segment_idx::Vector{Int} # index of the monthly data in the file
                    • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                    • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                    • interpolate_daily::Bool # switch to trigger daily interpolation
                    source
                    ClimaCoupler.BCReader.bcfile_info_initFunction
                    bcfile_info_init(
                    +    FT,
                    +    bcfile_dir,
                    +    datafile_rll,
                    +    varname,
                    +    boundary_space,
                    +    comms_ctx;
                    +    interpolate_daily = false,
                    +    segment_idx0 = nothing,
                    +    scaling_function = no_scaling,
                    +    land_fraction = nothing,
                    +    date0 = nothing,
                    +    mono = true,
                    +)

                    Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                    Arguments

                    • FT: [DataType] Float type.
                    • bcfile_dir: [String] directory the BC file is stored in.
                    • datafile_rll: [String] file containing data to regrid.
                    • varname: [String] name of the variable to be regridded.
                    • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                    • interpolate_daily: [Bool] switch to trigger daily interpolation.
                    • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                    • scaling function: [Function] scales, offsets or transforms varname.
                    • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                    • date0: [Dates.DateTime] start date of the file data.
                    • mono: [Bool] flag for monotone remapping of datafile_rll.

                    Returns

                    • BCFileInfo
                    source
                    ClimaCoupler.BCReader.update_midmonth_data!Function
                    update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                    Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                    Arguments

                    • date: [Dates.DateTime] start date for data.
                    • bcf_info: [BCFileInfo] containing boundary condition data.
                    source
                    ClimaCoupler.BCReader.next_date_in_fileFunction
                    next_date_in_file(bcf_info)

                    Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                    Arguments

                    • bcf_info: [BCFileInfo] containing the date information.

                    Returns

                    • Dates.DateTime
                    source
                    ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                    interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                    Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                    Arguments

                    • date: [Dates.DateTime] start date for data.
                    • bcf_info: [BCFileInfo] contains fields to be interpolated.

                    Returns

                    • Fields.field
                    source

                    BCReader Internal Functions

                    ClimaCoupler.BCReader.no_scalingFunction
                    no_scaling(field, bcf_info)

                    Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                    Arguments

                    • field: [Fields.Field] contains the values to be remapped.
                    • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                    source
                    ClimaCoupler.BCReader.interpolFunction
                    interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                    Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                    Arguments

                    • f1: [FT] first value to be interpolated (f(t1) = f1).
                    • f2: [FT] second value to be interpolated.
                    • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                    • Δt_t2t1: [FT] time between t1 and t2.

                    Returns

                    • FT
                    source
                    diff --git a/previews/PR296/conservation/index.html b/previews/PR296/conservation/index.html new file mode 100644 index 000000000..23b41add7 --- /dev/null +++ b/previews/PR296/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                    Conservation Checks

                    If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                    Only energy and water are currently implemented.

                    Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                    Coupler Object API

                    ClimaCoupler.ConservationChecker.check_conservation!Function
                    check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                    itertes over all specified conservation checks.

                    source
                        check_conservation!(
                    +    cc::EnergyConservationCheck,
                    +    coupler_sim,
                    +    get_slab_energy,
                    +    get_land_energy,
                    +    )

                    computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                    TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                    source
                    check_conservation!(
                    +cc::WaterConservationCheck,
                    +coupler_sim,
                    +get_slab_energy,
                    +get_land_energy,
                    +)

                    computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                    Note: in the future this should not use push!.

                    source
                    ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                    plot_global_conservation(
                    +    cc::EnergyConservationCheck,
                    +    coupler_sim::CoupledSimulation;
                    +    figname1 = "total_energy.png",
                    +    figname2 = "total_energy_log.png",
                    +)

                    Creates two plots of the globally integrated quantity (energy, $\rho e$):

                    1. global quantity of each model component as a function of time,

                    relative to the initial value;

                    1. fractional change in the sum of all components over time on a log scale.
                    source
                    plot_global_conservation(
                    +    cc::WaterConservationCheck,
                    +    coupler_sim::CoupledSimulation;
                    +    figname1 = "total_energy.png",
                    +    figname2 = "total_energy_log.png",
                    +)

                    Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                    1. global quantity of each model component as a function of time,

                    relative to the initial value;

                    1. fractional change in the sum of all components over time on a log scale.
                    source
                    diff --git a/previews/PR296/couplerstate/index.html b/previews/PR296/couplerstate/index.html new file mode 100644 index 000000000..7b7f835e4 --- /dev/null +++ b/previews/PR296/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                    Coupler State

                    The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                    The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                    Coupler Object API

                    ClimaCoupler.CouplerStateType
                    CouplerState()

                    Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                    A field is exported by one component and imported by one or more other components.

                    source
                    ClimaCoupler.coupler_add_field!Function
                    coupler_add_field!(
                    +        coupler::CouplerState,
                    +        fieldname::Symbol,
                    +        fieldvalue,
                    +    )

                    Add a field to the coupler that is accessible with key fieldname.

                    Arguments

                    • coupler: coupler object the field is added to.
                    • fieldname: key to access the field in the coupler.
                    • fieldvalue: data array of field values.
                    source
                    ClimaCoupler.coupler_getFunction
                    coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                    Retrieve data array corresponding to fieldname.

                    If a target_sim is passed, the field is remapped to that simulation's boundary space.

                    source
                    diff --git a/previews/PR296/diagnostics/index.html b/previews/PR296/diagnostics/index.html new file mode 100644 index 000000000..9e1a1f2dd --- /dev/null +++ b/previews/PR296/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                    Diagnostics

                    This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                    Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                    Diagnostics API

                    Missing docstring.

                    Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                    ClimaCoupler.Diagnostics.get_varFunction
                    get_var(cs::CoupledSimulation, x)

                    Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                    Example:

                    getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                    source
                    ClimaCoupler.Diagnostics.save_diagnosticsFunction
                    save_diagnostics(cs::CoupledSimulation)
                    +
                    +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                    Saves all entries in dg in separate HDF5 files per variable in output_dir.

                    source

                    Diagnostics Internal Functions

                    Missing docstring.

                    Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                    ClimaCoupler.Diagnostics.operationFunction
                    operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                    Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                    source
                    operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                    Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                    source
                    ClimaCoupler.Diagnostics.pre_saveFunction
                    pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                    Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                    source
                    pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                    Collects variables and performs all specified operations before saving the snapshot diagnostics.

                    source
                    diff --git a/previews/PR296/generated/amip/coupler_driver/index.html b/previews/PR296/generated/amip/coupler_driver/index.html new file mode 100644 index 000000000..4fbc9f3ba --- /dev/null +++ b/previews/PR296/generated/amip/coupler_driver/index.html @@ -0,0 +1,387 @@ + +AMIP Driver · ClimaCoupler.jl

                    AMIP Driver

                    Overview

                    AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                    • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                    • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                    For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                    This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                    Start Up

                    Before starting Julia, ensure your environment is properly set up:

                    module purge
                    +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                    +
                    +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                    +export JUlIA_MPI_BINARY="system"
                    +export JULIA_HDF5_PATH=""

                    Next instantiate/build all packages listed in Manifest.toml:

                    julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                    +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                    The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                    julia --project --threads 8

                    Initialization

                    Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                    import SciMLBase: step!
                    +using OrdinaryDiffEq
                    +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                    +using LinearAlgebra
                    +import Test: @test
                    +using Dates
                    +using UnPack
                    +import MPI
                    +
                    +using ClimaCore.Utilities: half, PlusHalf
                    +using ClimaCore: InputOutput
                    +
                    +include("cli_options.jl")
                    +(s, parsed_args) = parse_commandline()
                    +
                    +if isinteractive()
                    +end
                    +
                    +# read in some parsed command line arguments
                    +mode_name = parsed_args["mode_name"]
                    +run_name = parsed_args["run_name"]
                    +energy_check = parsed_args["energy_check"]
                    +const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                    +land_sim_name = "bucket"
                    +t_end = FT(time_to_seconds(parsed_args["t_end"]))
                    +tspan = (0, t_end)
                    +Δt_cpl = FT(parsed_args["dt_cpl"])
                    +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                    +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                    +mono_surface = parsed_args["mono_surface"]
                    +
                    +import ClimaCoupler
                    +pkg_dir = pkgdir(ClimaCoupler)
                    +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/moist_mpi_earth/output", joinpath(mode_name, run_name))
                    +mkpath(COUPLER_OUTPUT_DIR)
                    +
                    +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                    +mkpath(REGRID_DIR)
                    +
                    +@info COUPLER_OUTPUT_DIR
                    +@info parsed_args
                    +
                    +# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration
                    +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                    +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                    +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                    +mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                    +
                    +# import coupler unitilies
                    +include("coupler_utils/flux_calculator.jl")
                    +include("coupler_utils/conservation_checker.jl")
                    +include("coupler_utils/regridder.jl")
                    +include("coupler_utils/masker.jl")
                    +include("coupler_utils/calendar_timer.jl")
                    +include("coupler_utils/general_helper.jl")
                    +include("coupler_utils/bcfile_reader.jl")
                    +include("coupler_utils/variable_definer.jl")
                    +include("coupler_utils/diagnostics_gatherer.jl")
                    +include("coupler_utils/offline_postprocessor.jl")

                    Component Model Initialization

                    Here we set initial and boundary conditions for each component model.

                    Atmosphere

                    This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                    # init atmos model component
                    +include("atmos/atmos_init.jl")
                    +atmos_sim = atmos_init(FT, Y, integrator, params = params);

                    We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                    # init a 2D bounary space at the surface
                    +boundary_space = atmos_sim.domain.face_space.horizontal_space

                    init land-sea mask

                    land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, "LSMASK", boundary_space, mono = mono_surface)
                    +
                    +# init surface (slab) model components
                    +include("slab/slab_utils.jl")
                    +include("bucket/bucket_init.jl")
                    +include("slab/slab_init.jl")
                    +include("slab_ocean/slab_init.jl")
                    +include("slab_ice/slab_init.jl")

                    Land

                    We use ClimaLSM.jl's bucket model.

                    land_sim = bucket_init(
                    +    FT,
                    +    FT.(tspan),
                    +    parsed_args["config"],
                    +    parsed_args["albedo_from_file"],
                    +    comms_ctx,
                    +    REGRID_DIR;
                    +    dt = FT(Δt_cpl),
                    +    space = boundary_space,
                    +    saveat = FT(saveat),
                    +)

                    Ocean and Sea Ice

                    In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                    In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                    @info mode_name
                    +if mode_name == "amip"
                    +    @info "AMIP boundary conditions - do not expect energy conservation"
                    +
                    +    # ocean
                    +    SST_info = bcfile_info_init(
                    +        FT,
                    +        comms_ctx,
                    +        sst_data,
                    +        "SST",
                    +        boundary_space,
                    +        interpolate_daily = true,
                    +        scaling_function = clean_sst, ## convert to Kelvin
                    +        land_mask = land_mask,
                    +        date0 = date0,
                    +        mono = mono_surface,
                    +    )
                    +
                    +    update_midmonth_data!(date0, SST_info)
                    +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                    +    ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))
                    +    ocean_sim = (;
                    +        integrator = (;
                    +            u = (; T_sfc = SST_init),
                    +            p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),
                    +            SST_info = SST_info,
                    +        )
                    +    )
                    +    # sea ice
                    +    SIC_info = bcfile_info_init(
                    +        FT,
                    +        comms_ctx,
                    +        sic_data,
                    +        "SEAICE",
                    +        boundary_space,
                    +        interpolate_daily = true,
                    +        scaling_function = clean_sic, ## convert to fractions
                    +        land_mask = land_mask,
                    +        date0 = date0,
                    +        mono = mono_surface,
                    +    )
                    +    update_midmonth_data!(date0, SIC_info)
                    +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                    +    ice_mask = get_ice_mask.(SIC_init, mono_surface)
                    +    ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)
                    +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                    +
                    +elseif mode_name == "slabplanet"
                    +    # ocean
                    +    ocean_sim = ocean_init(
                    +        FT;
                    +        tspan = tspan,
                    +        dt = Δt_cpl,
                    +        space = boundary_space,
                    +        saveat = saveat,
                    +        ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)
                    +    )
                    +
                    +    # sea ice
                    +    ice_sim = (;
                    +        integrator = (;
                    +            u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),
                    +            p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),
                    +        )
                    +    )
                    +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                    +end

                    Coupler Initialization

                    The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                    # coupler exchange fields
                    +coupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :beta, :F_A, :F_E, :F_R, :P_liq, :P_snow)
                    +coupler_fields =
                    +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                    +
                    +# model simulations
                    +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                    +
                    +# dates
                    +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])

                    Online Diagnostics

                    User can write custom diagnostics in the coupler_utils/variable_definer.jl.

                    # 3d diagnostics
                    +monthly_3d_diags_names = (:T, :u, :q_tot)
                    +monthly_3d_diags = (;
                    +    fields = NamedTuple{monthly_3d_diags_names}(
                    +        ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),
                    +    ),
                    +    ct = [0],
                    +)
                    +# 2d diagnostics
                    +monthly_2d_diags_names = (:precipitation, :toa, :T_sfc)
                    +monthly_2d_diags = (;
                    +    fields = NamedTuple{monthly_2d_diags_names}(
                    +        ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),
                    +    ),
                    +    ct = [0],
                    +)
                    +
                    +# coupler simulation
                    +cs = CouplerSimulation{FT}(
                    +    comms_ctx,
                    +    tspan,
                    +    dates,
                    +    boundary_space,
                    +    parsed_args,
                    +    integrator.t,
                    +    FT(Δt_cpl),
                    +    (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                    +    coupler_fields,
                    +    model_sims,
                    +    mode_specifics,
                    +    monthly_3d_diags,
                    +    monthly_2d_diags,
                    +);

                    Initial States Exchange

                    # share states between models
                    +include("./push_pull.jl")
                    +atmos_pull!(cs)
                    +parsed_args["ode_algo"] == "ARS343" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing
                    +atmos_push!(cs)
                    +land_pull!(cs)
                    +
                    +# reinitialize (TODO: avoid with interfaces)
                    +reinit!(atmos_sim.integrator)
                    +reinit!(land_sim.integrator)
                    +mode_name == "amip" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing
                    +mode_name == "slabplanet" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing

                    Initialize Conservation Checks

                    # init conservation info collector
                    +if !is_distributed && energy_check && mode_name == "slabplanet"
                    +    conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])
                    +    check_conservation(conservation_check, cs)
                    +end

                    Coupling Loop

                    function solve_coupler!(cs, energy_check)
                    +    @info "Starting coupling loop"
                    +
                    +    @unpack model_sims, Δt_cpl, tspan = cs
                    +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                    +
                    +    # step in time
                    +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                    +
                    +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                    +
                    +        # print date on the first of month
                    +        @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]
                    +
                    +        if cs.mode.name == "amip"
                    +
                    +            # monthly read of boundary condition data for SST and SIC
                    +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(
                    +                cs.mode.SST_info,
                    +            )
                    +            SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)
                    +            @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(
                    +                cs.mode.SIC_info,
                    +            )
                    +            SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                    +
                    +            ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)
                    +
                    +            # accumulate diagnostics at each timestep
                    +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)
                    +            accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)
                    +
                    +            # save and reset monthly averages
                    +            @calendar_callback :(
                    +                map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),
                    +                save_hdf5(
                    +                    cs.comms_ctx,
                    +                    cs.monthly_3d_diags.fields,
                    +                    cs.dates.date[1],
                    +                    COUPLER_OUTPUT_DIR,
                    +                    name_tag = "3d_",
                    +                ),
                    +                map(x -> x .= FT(0), cs.monthly_3d_diags.fields),
                    +                cs.monthly_3d_diags.ct .= FT(0),
                    +            ) cs.dates.date[1] cs.dates.date1[1]
                    +            @calendar_callback :(
                    +                map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),
                    +                save_hdf5(
                    +                    cs.comms_ctx,
                    +                    cs.monthly_2d_diags.fields,
                    +                    cs.dates.date[1],
                    +                    COUPLER_OUTPUT_DIR,
                    +                    name_tag = "2d_",
                    +                ),
                    +                map(x -> x .= FT(0), cs.monthly_2d_diags.fields),
                    +                cs.monthly_2d_diags.ct .= FT(0),
                    +            ) cs.dates.date[1] cs.dates.date1[1]
                    +
                    +        end
                    +
                    +        # run component models sequentially for one coupling timestep (Δt_cpl)
                    +        # 1. atmos
                    +        ClimaComms.barrier(comms_ctx)
                    +
                    +        atmos_pull!(cs)
                    +        step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error
                    +        atmos_push!(cs)
                    +
                    +        # 2. land
                    +        land_pull!(cs)
                    +        step!(land_sim.integrator, t - land_sim.integrator.t, true)
                    +
                    +        # 3. ocean
                    +        if cs.mode.name == "slabplanet"
                    +            ocean_pull!(cs)
                    +            step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)
                    +        end
                    +
                    +        # 4. sea ice
                    +        if cs.mode.name == "amip"
                    +            ice_pull!(cs)
                    +            step!(ice_sim.integrator, t - ice_sim.integrator.t, true)
                    +        end
                    +
                    +        # compute global energy
                    +        if !simulation.is_distributed && energy_check && cs.mode.name == "slabplanet"
                    +            check_conservation(conservation_check, cs)
                    +        end
                    +
                    +        # step to the next calendar month
                    +        @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]
                    +
                    +    end
                    +    @show walltime
                    +
                    +    return cs
                    +end
                    +
                    +# run the coupled simulation
                    +solve_coupler!(cs, energy_check);

                    Postprocessing

                    Currently all postprocessing is performed using the root process only.

                    if ClimaComms.iamroot(comms_ctx)
                    +    isdir(COUPLER_OUTPUT_DIR * "_artifacts") ? nothing : mkpath(COUPLER_OUTPUT_DIR * "_artifacts")
                    +
                    +    # energy check plots
                    +    if !is_distributed && energy_check && cs.mode.name == "slabplanet"
                    +        @info "Energy Check"
                    +        plot_global_energy(
                    +            conservation_check,
                    +            cs,
                    +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_bucket.png"),
                    +            joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_log_bucket.png"),
                    +        )
                    +    end
                    +
                    +    # sample animations
                    +    if !is_distributed && parsed_args["anim"]
                    +        @info "Animations"
                    +        include("coupler_utils/viz_explorer.jl")
                    +        plot_anim(cs, COUPLER_OUTPUT_DIR * "_artifacts")
                    +    end
                    +
                    +    # plotting AMIP results
                    +    if cs.mode.name == "amip"
                    +        @info "AMIP plots"
                    +
                    +        include("coupler_utils/plotter.jl")
                    +
                    +        # ClimaESM
                    +        include("coupler_utils/amip_visualizer.jl")
                    +        post_spec = (;
                    +            T = (:regridded_3d, :zonal_mean),
                    +            u = (:regridded_3d, :zonal_mean),
                    +            q_tot = (:regridded_3d, :zonal_mean),
                    +            toa = (:regridded_2d, :horizontal_2d),
                    +            precipitation = (:regridded_2d, :horizontal_2d),
                    +            T_sfc = (:regridded_2d, :horizontal_2d),
                    +        )
                    +
                    +        plot_spec = (;
                    +            T = (; clims = (190, 320), units = "K"),
                    +            u = (; clims = (-50, 50), units = "m/s"),
                    +            q_tot = (; clims = (0, 50), units = "g/kg"),
                    +            toa = (; clims = (-250, 210), units = "W/m^2"),
                    +            precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                    +            T_sfc = (clims = (225, 310), units = "K"),
                    +        )
                    +        amip_paperplots(
                    +            post_spec,
                    +            plot_spec,
                    +            COUPLER_OUTPUT_DIR,
                    +            files_root = ".monthly",
                    +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                    +        )
                    +
                    +        # NCEP reanalysis
                    +        @info "NCEP plots"
                    +        include("coupler_utils/ncep_visualizer.jl")
                    +        ncep_post_spec = (;
                    +            T = (:zonal_mean,),
                    +            u = (:zonal_mean,),
                    +            q_tot = (:zonal_mean,),
                    +            toa = (:horizontal_2d,),
                    +            precipitation = (:horizontal_2d,),
                    +            T_sfc = (:horizontal_2d,),
                    +        )
                    +        ncep_plot_spec = plot_spec
                    +        ncep_paperplots(
                    +            ncep_post_spec,
                    +            ncep_plot_spec,
                    +            COUPLER_OUTPUT_DIR,
                    +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                    +            month_date = cs.dates.date[1],
                    +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                    +    end
                    +
                    +    # clean up
                    +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                    +end

                    Temporary Unit Tests

                    To be moved to test/

                    if !is_distributed && cs.mode.name == "amip"
                    +    @info "Unit Tests"
                    +    include("coupler_utils/unit_tester.jl")
                    +end

                    This page was generated using Literate.jl.

                    diff --git a/previews/PR296/generated/sea_breeze/atmos_rhs/index.html b/previews/PR296/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..24201601a --- /dev/null +++ b/previews/PR296/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                    Atmospheric Model

                    Atmosphere Conservation Equations

                    Density:

                    \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                    Momentum (flux form):

                    \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                    Potential temperature:

                    \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                    Total Energy (possibly replace potential temperature equation with total energy conservation):

                    \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                    where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                    Tracer transport:

                    \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                    Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                    \[\rho\tau = -2\rho\nu\nabla u.\]

                    Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                    \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                    with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                    Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                    Consider components of the viscous stress tensor in three dimensions:

                    \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                    Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                    \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                    Which can be interpreted as, for horizontal-momentum:

                    1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                    2. Vertical divergence of vertical gradients of cell-centered variables $u$
                    3. Vertical divergence of horizontal gradients of cell-face variables $w$

                    and for vertical-momentum, as:

                    1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                    2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                    3. Vertical divergence of vertical gradients of cell-face variables $w$.

                    Model Code

                    push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                    +
                    +using Test
                    +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                    +
                    +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                    +using ClimaCore.Geometry
                    +using ClimaCore.Utilities: PlusHalf
                    +
                    +using Logging: global_logger
                    +using TerminalLoggers: TerminalLogger
                    +global_logger(TerminalLogger())
                    +
                    +using ClimaCoupler
                    +
                    +# set up function space
                    +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                    +    FT = Float64
                    +    vertdomain = Domains.IntervalDomain(
                    +        Geometry.ZPoint{FT}(zlim[1]),
                    +        Geometry.ZPoint{FT}(zlim[2]);
                    +        boundary_tags = (:bottom, :top),
                    +    )
                    +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                    +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                    +
                    +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                    +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                    +    horztopology = Topologies.IntervalTopology(horzmesh)
                    +
                    +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                    +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                    +
                    +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                    +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                    +    return (hv_center_space, hv_face_space)
                    +end
                    +
                    +function pressure(ρθ)
                    +    if ρθ >= 0
                    +        return MSLP * (R_d * ρθ / MSLP)^γ
                    +    else
                    +        return NaN
                    +    end
                    +end
                    +
                    +Φ(z) = grav * z
                    +
                    +abstract type BCtag end
                    +struct ZeroFlux <: BCtag end
                    +
                    +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                    +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                    +
                    +function init_sea_breeze_2d(x, z)
                    +    θ₀ = atm_T_ini
                    +    cp_d = C_p
                    +    cv_d = C_v
                    +    p₀ = MSLP
                    +    g = grav
                    +    γ = cp_d / cv_d
                    +    z_c = 100.0
                    +    θ_b = atm_T_ini
                    +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                    +    θ = θ_b + θ_p # potential temperature
                    +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                    +    T = π_exn * θ # temperature
                    +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                    +    ρ = p / R_d / T # density
                    +    ρθ = ρ * θ # potential temperature density
                    +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                    +end
                    +
                    +function atm_rhs!(dY, Y, params, t)
                    +    ρw = Y.ρw
                    +    Yc = Y.Yc
                    +    dYc = dY.Yc
                    +    dρw = dY.ρw
                    +
                    +    center_coords = Fields.coordinate_field(axes(Yc))
                    +
                    +    # spectral horizontal operators
                    +    hdiv = Operators.Divergence()
                    +    hgrad = Operators.Gradient()
                    +    hwdiv = Operators.WeakDivergence()
                    +    hwgrad = Operators.WeakGradient()
                    +
                    +    # vertical FD operators with BC's
                    +    vdivf2c = Operators.DivergenceF2C(
                    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                    +        top = Operators.SetValue(Geometry.WVector(0.0)),
                    +    )
                    +    vvdivc2f = Operators.DivergenceC2F(
                    +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                    +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                    +    )
                    +    uvdivf2c = Operators.DivergenceF2C(
                    +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                    +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                    +    )
                    +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                    +    Ic = Operators.InterpolateF2C()
                    +    ∂ = Operators.DivergenceF2C(
                    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                    +        top = Operators.SetValue(Geometry.WVector(0.0)),
                    +    )
                    +    ∂f = Operators.GradientC2F()
                    +    ∂c = Operators.GradientF2C()
                    +    B = Operators.SetBoundaryOperator(
                    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                    +        top = Operators.SetValue(Geometry.WVector(0.0)),
                    +    )
                    +
                    +    ∇_z_ρθ = Operators.DivergenceF2C(
                    +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                    +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                    +    )
                    +
                    +    uₕ = @. Yc.ρuₕ / Yc.ρ
                    +    w = @. ρw / If(Yc.ρ)
                    +    wc = @. Ic(ρw) / Yc.ρ
                    +    p = @. pressure(Yc.ρθ)
                    +    θ = @. Yc.ρθ / Yc.ρ
                    +    Yfρ = @. If(Yc.ρ)
                    +
                    +    ### HYPERVISCOSITY
                    +    # 1) compute hyperviscosity coefficients
                    +    @. dYc.ρθ = hwdiv(hgrad(θ))
                    +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                    +    @. dρw = hwdiv(hgrad(w))
                    +    Spaces.weighted_dss!(dYc)
                    +    Spaces.weighted_dss!(dρw)
                    +
                    +    κ₄ = 0.0 # m^4/s
                    +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                    +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                    +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                    +
                    +    # density
                    +    @. dYc.ρ = -∂(ρw)
                    +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                    +
                    +    # potential temperature
                    +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                    +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                    +
                    +    # horizontal momentum
                    +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                    +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                    +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                    +
                    +    # vertical momentum
                    +    @. dρw +=
                    +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                    +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                    +    @. dρw -= hdiv(uₕf ⊗ ρw)
                    +
                    +    # DIFFUSION
                    +    κ₂ = 5.0 # m^2/s
                    +    #  1a) horizontal div of horizontal grad of horiz momentun
                    +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                    +    #  1b) vertical div of vertical grad of horiz momentun
                    +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                    +
                    +    #  1c) horizontal div of horizontal grad of vert momentum
                    +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                    +    #  1d) vertical div of vertical grad of vert momentun
                    +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                    +
                    +    #  2a) horizontal div of horizontal grad of potential temperature
                    +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                    +    #  2b) vertical div of vertial grad of potential temperature
                    +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                    +
                    +    Spaces.weighted_dss!(dYc)
                    +    Spaces.weighted_dss!(dρw)
                    +    return dY
                    +end
                    +
                    +# init simulation
                    +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                    +
                    +    # construct domain spaces
                    +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                    +    center_coords = Fields.coordinate_field(hv_center_space)
                    +    face_coords = Fields.coordinate_field(hv_face_space)
                    +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                    +
                    +    # initialize prognostic variables
                    +    Yc = map(center_coords) do coord
                    +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                    +        sea_breeze
                    +    end
                    +
                    +    ρw = map(face_coords) do coord
                    +        Geometry.WVector(0.0)
                    +    end
                    +
                    +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                    +
                    +    # select boundary conditions
                    +    if bc === nothing
                    +        bc = (
                    +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                    +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                    +        )
                    +    end
                    +
                    +    return Y, bc, domain
                    +end
                    +
                    +using OrdinaryDiffEq
                    +function atm_run!(Y, bc, domain)
                    +    dYdt = similar(Y)
                    +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                    +    atm_rhs!(dYdt, Y, params, 0.0)
                    +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                    +    Δt = 0.025
                    +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                    +end

                    Coupled Atmos Wrappers

                    # Atmos Simulation - later to live in ClimaAtmos
                    +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                    +    integrator::Any
                    +end
                    +
                    +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                    +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                    +
                    +    atm_integ = init(
                    +        atm_prob,
                    +        timestepper,
                    +        dt = dt,
                    +        saveat = saveat,
                    +        progress = true,
                    +        progress_message = (dt, u, params, t) -> t,
                    +        callback = callbacks,
                    +    )
                    +
                    +    return AtmosSimulation(atm_integ)
                    +end
                    +
                    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                    +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                    +end
                    +
                    +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                    +    # reset flux accumulator
                    +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                    +
                    +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                    +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                    +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                    +end

                    Coupled Boundary Conditions

                    The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                    To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                    struct CoupledFlux <: BCtag end
                    +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                    +    # flux calculation
                    +    Yc = Y.Yc
                    +    uₕ = Yc.ρuₕ ./ Yc.ρ
                    +    ρw = Y.ρw
                    +    If2c = Operators.InterpolateF2C()
                    +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                    +    w = If2c.(ρw) ./ Yc.ρ
                    +    cuv = @. Geometry.UWVector(uₕ)
                    +    windspeed = @. norm(cuv)
                    +    windspeed_boundary = Fields.level(windspeed, 1)
                    +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                    +    ρ_boundary = Fields.level(Yc.ρ, 1)
                    +
                    +    # build atmos face fields on surface boundary space to enable broadcasting
                    +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                    +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                    +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                    +
                    +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                    +    dθ = @. θ_boundary - p.T_sfc
                    +    heat_flux = @. -λ * dθ
                    +    @. dY.F_sfc += heat_flux # accumulation
                    +
                    +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                    +end

                    This page was generated using Literate.jl.

                    diff --git a/previews/PR296/generated/sea_breeze/land_rhs/index.html b/previews/PR296/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..a6be97374 --- /dev/null +++ b/previews/PR296/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                    Land Model

                    Slab Land ODE

                    For our land component, we solve a simple slab land ODE:

                    \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                    • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                    • and $F_{integ}$ is the integrated surface fluxes in time.

                    Model Code

                    function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                    +    """
                    +    Slab layer equation
                    +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                    +        where
                    +            F_accumulated = F_integrated / Δt_coupler
                    +    """
                    +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                    +    @unpack T_sfc = du
                    +
                    +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                    +end
                    +
                    +# set up domain
                    +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                    +    FT = Float64
                    +
                    +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                    +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                    +    topology = Topologies.IntervalTopology(mesh)
                    +
                    +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                    +    quad = Spaces.Quadratures.GL{npoly + 1}()
                    +    space = Spaces.SpectralElementSpace1D(topology, quad)
                    +
                    +    return space
                    +end
                    +
                    +# init simulation
                    +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                    +
                    +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                    +    space = hspace_1D((xmin, xmax), npoly, helem)
                    +    coords = Fields.coordinate_field(space)
                    +    domain = space
                    +
                    +    # initial condition
                    +    T_sfc = map(coords) do coord
                    +        T_sfc = 273.0
                    +    end
                    +
                    +    # prognostic variable
                    +    Y = Fields.FieldVector(T_sfc = T_sfc)
                    +
                    +    return Y, domain
                    +end

                    Coupled Land Wrappers

                    # Land Simulation - later to live in ClimaLSM
                    +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                    +    integrator::Any
                    +end
                    +
                    +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                    +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                    +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                    +    return LandSimulation(lnd_integ)
                    +end
                    +
                    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                    +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                    +end
                    +
                    +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                    +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                    +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                    +end

                    This page was generated using Literate.jl.

                    diff --git a/previews/PR296/generated/sea_breeze/ocean_rhs/index.html b/previews/PR296/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..743334aca --- /dev/null +++ b/previews/PR296/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                    Ocean Model

                    Slab Ocean ODE

                    For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                    \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                    • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                    • and $F_{integ}$ is the integrated surface fluxes in time.

                    Model Code

                    function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                    +    """
                    +    Slab layer equation
                    +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                    +        where
                    +            F_accumulated = F_integrated / Δt_coupler
                    +    """
                    +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                    +    @unpack T_sfc = du
                    +
                    +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                    +end
                    +
                    +# set up domain
                    +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                    +    FT = Float64
                    +
                    +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                    +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                    +    topology = Topologies.IntervalTopology(mesh)
                    +
                    +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                    +    quad = Spaces.Quadratures.GL{npoly + 1}()
                    +    space = Spaces.SpectralElementSpace1D(topology, quad)
                    +
                    +    return space
                    +end
                    +
                    +# init simulation
                    +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                    +
                    +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                    +    space = hspace_1D((xmin, xmax), npoly, helem)
                    +    coords = Fields.coordinate_field(space)
                    +    domain = space
                    +
                    +    # initial condition
                    +    T_sfc = map(coords) do coord
                    +        T_sfc = 267.0
                    +    end
                    +
                    +    # prognostic variable
                    +    Y = Fields.FieldVector(T_sfc = T_sfc)
                    +
                    +    return Y, domain
                    +end

                    Coupled Ocean Wrappers

                    # Ocean Simulation - Later to live in Oceananigans
                    +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                    +    integrator::Any
                    +end
                    +
                    +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                    +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                    +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                    +    return OceanSimulation(ocn_integ)
                    +end
                    +
                    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                    +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                    +end
                    +
                    +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                    +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                    +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                    +end

                    This page was generated using Literate.jl.

                    diff --git a/previews/PR296/generated/sea_breeze/run/index.html b/previews/PR296/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..30182e073 --- /dev/null +++ b/previews/PR296/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                    Coupled Sea Breeze

                    Overview

                    This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                    In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                    Model Initialization

                    Component Models

                    Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                    In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                    include("atmos_rhs.jl")
                    +include("ocean_rhs.jl")
                    +include("land_rhs.jl")
                    +
                    +# model parameters
                    +const atm_T_ini = FT(270.0)
                    +const MSLP = FT(1e5)
                    +const grav = FT(9.8)
                    +const R_d = FT(287.058)
                    +const γ = FT(1.4)
                    +const C_p = FT(R_d * γ / (γ - 1))
                    +const C_v = FT(R_d / (γ - 1))
                    +const R_m = R_d
                    +cpl_parameters = (
                    +    # atmos parameters
                    +    atm_μ = FT(0.0001), # diffusion coefficient
                    +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                    +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                    +    MSLP = MSLP, # mean sea level pressure
                    +    grav = grav, # gravitational constant
                    +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                    +    γ = γ, # heat capacity ratio
                    +    C_p = C_p, # heat capacity at constant pressure
                    +    C_v = C_v, # heat capacity at constant volume
                    +    R_m = R_m, # moist R, assumed to be dry
                    +    # land slab parameters
                    +    lnd_h = FT(0.5), # depth of slab layer [m]
                    +    lnd_ρ = FT(1500), # density [kg m^-3]
                    +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                    +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                    +    # ocean slab parameters
                    +    ocn_h = FT(0.5), # depth of slab layer [m]
                    +    ocn_ρ = FT(1025), # density [kg m^-3]
                    +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                    +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                    +    # coupling parameters
                    +    C_H = FT(0.0015),
                    +)
                    +
                    +# DSS callback
                    +function make_dss_func()
                    +    function _dss!(x::Fields.Field)
                    +        Spaces.weighted_dss!(x)
                    +    end
                    +    function _dss!(::Any)
                    +        nothing
                    +    end
                    +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                    +    return dss_func
                    +end
                    +dss_func = make_dss_func()
                    +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                    Initialization

                    The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                    Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                    @info "Init Models and Maps"
                    +
                    +t_start, t_end = (0.0, 1.0)
                    +Δt_coupled = 0.1
                    +saveat = 1e2
                    +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                    +
                    +# Initialize Models
                    +atm_Y_default, atm_bc, atm_domain = atm_init(
                    +    xmin = -500,
                    +    xmax = 500,
                    +    zmin = 0,
                    +    zmax = 1000,
                    +    npoly = 4,
                    +    helem = 20,
                    +    velem = 20,
                    +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                    +)
                    +
                    +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                    +
                    +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                    Remapping

                    Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                    atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                    +
                    +maps = (
                    +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                    +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                    +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                    +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                    +)
                    +
                    +# initialize coupling fields
                    +atm_T_sfc =
                    +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                    +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                    +atm_F_sfc = Fields.zeros(atm_boundary)
                    +ocn_F_sfc = Fields.zeros(ocn_domain)
                    +lnd_F_sfc = Fields.zeros(lnd_domain)

                    Simulations

                    Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                    atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                    +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                    +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                    +
                    +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                    +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                    +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                    +
                    +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                    +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                    +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                    Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                    struct AOLCoupledSimulation{
                    +    A <: AtmosSimulation,
                    +    O <: OceanSimulation,
                    +    L <: LandSimulation,
                    +    C <: ClimaCoupler.CouplerState,
                    +} <: ClimaCoupler.AbstractCoupledSimulation
                    +    # Atmosphere Simulation
                    +    atmos::A
                    +    # Ocean Simulation
                    +    ocean::O
                    +    # Land Simulation
                    +    land::L
                    +    # Coupler storage
                    +    coupler::C
                    +end

                    step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                    function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                    +    Δt = t_stop - sim.integrator.t
                    +    step!(sim.integrator, Δt, true)
                    +end

                    The Coupler

                    The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                    After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                    Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                    Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                    \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                    where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                    coupler = CouplerState(Δt_coupled)
                    +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                    +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                    +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                    +for (name, map) in pairs(maps)
                    +    coupler_add_map!(coupler, name, map)
                    +end
                    +
                    +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                    Coupled Time Integration

                    Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                    Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                    Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                    \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                    where $F_{integ}$ has units of $J m^{-2}$.

                    function cpl_run(simulation::AOLCoupledSimulation)
                    +    @info "Run model"
                    +    @unpack atmos, ocean, land, coupler = simulation
                    +    Δt_coupled = coupler.Δt_coupled
                    +    # coupler stepping
                    +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                    +        # Atmos
                    +        coupler_pull!(atmos, coupler)
                    +        step!(atmos, t)
                    +        coupler_push!(coupler, atmos)
                    +
                    +        # Ocean
                    +        coupler_pull!(ocean, coupler)
                    +        step!(ocean, t)
                    +        coupler_push!(coupler, ocean)
                    +
                    +        # Land
                    +        coupler_pull!(land, coupler)
                    +        step!(land, t)
                    +        coupler_push!(coupler, land)
                    +    end
                    +    @info "Simulation Complete"
                    +end
                    +
                    +# Run simulation
                    +cpl_run(sim)

                    References


                    This page was generated using Literate.jl.

                    diff --git a/previews/PR296/images/canvas_coupler.png b/previews/PR296/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                    F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR296/images/cplsetup.png b/previews/PR296/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR296/index.html b/previews/PR296/index.html new file mode 100644 index 000000000..9e050efcf --- /dev/null +++ b/previews/PR296/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                    ClimaCoupler.jl

                    Coupling CliMA Models

                    ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                    • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                    • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                    The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                    Coupler Scheme
                    ClimaCoupler.jl allows for independent development of interchangeable component models.
                    diff --git a/previews/PR296/performance/index.html b/previews/PR296/performance/index.html new file mode 100644 index 000000000..d8cc45d3f --- /dev/null +++ b/previews/PR296/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                    Performance Analysis Tools

                    ClimaCoupler.jl provides basic tools for analyzing performance:

                    1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                    2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                    Flame Graph Interpretation

                    • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                    • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                    canvas

                    • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                    • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                    References

                    diff --git a/previews/PR296/postprocessor/index.html b/previews/PR296/postprocessor/index.html new file mode 100644 index 000000000..928a6be01 --- /dev/null +++ b/previews/PR296/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                    PostProcessor

                    This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                    Diagnostics API

                    ClimaCoupler.PostProcessor.postprocessFunction
                    postprocess(
                    +    name::Symbol,
                    +    raw_data::Union{Fields.Field, Array},
                    +    p_methods::Tuple;
                    +    lev_slice = 1,
                    +    datafile_latlon = nothing,
                    +    nlat = 90,
                    +    nlon = 180,
                    +)

                    Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                    Arguments:

                    • name: [Symbol] variable name
                    • raw_data: [Union{Fields.Field, Array}] variable data
                    • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                    • lev_slice: [Int] level index along which the :horizontal_slice is applied
                    • datafile_latlon: [String] name of the regrid file
                    • nlat: [Int] number of latitudes of the regridded array
                    • nlon: [Symbol] number of longitudes of the regridded array
                    source
                    Missing docstring.

                    Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                    Missing docstring.

                    Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                    ClimaCoupler.PostProcessor.DataPackageType
                    DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                    A container for storing the tyoe, name, data and coordinates of a variable.

                    source

                    Diagnostics Internal Functions

                    diff --git a/previews/PR296/regridder/index.html b/previews/PR296/regridder/index.html new file mode 100644 index 000000000..b7b9e727e --- /dev/null +++ b/previews/PR296/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                    Regridder

                    This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                    Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                    Regridder API

                    ClimaCoupler.Regridder.write_to_hdf5Function
                    write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                    Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                    Arguments

                    • REGRID_DIR: [String] directory to save output files in.
                    • hd_outfile_root: [String] root of the output file name.
                    • time: [Dates.DateTime] the timestamp of the data being written.
                    • field: [Fields.Field] object to be written.
                    • varname: [String] variable name of data.
                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                    source
                    ClimaCoupler.Regridder.read_from_hdf5Function
                    read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                    Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                    Arguments

                    • REGRID_DIR: [String] directory to save output files in.
                    • hd_outfile_root: [String] root of the output file name.
                    • time: [Dates.DateTime] the timestamp of the data being written.
                    • varname: [String] variable name of data.
                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                    Returns

                    • Field or FieldVector
                    source
                    ClimaCoupler.Regridder.dummmy_remap!Function
                    dummmy_remap!(target, source)

                    Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                    Arguments

                    • target: [Fields.Field] destination of remapping.
                    • source: [Fields.Field] source of remapping.
                    source
                    ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                    remap_field_cgll_to_rll(
                    +    name,
                    +    field::Fields.Field,
                    +    remap_tmpdir,
                    +    datafile_rll;
                    +    nlat = 90,
                    +    nlon = 180
                    +)

                    Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                    Arguments

                    • name: [Symbol] variable name.
                    • field: [Fields.Field] data to be remapped.
                    • remap_tmpdir: [String] directory used for remapping.
                    • datafile_rll: [String] filename of remapped data output.
                    source
                    ClimaCoupler.Regridder.land_fractionFunction
                    function land_fraction(
                    +    FT,
                    +    REGRID_DIR,
                    +    comms_ctx::ClimaComms.AbstractCommsContext,
                    +    infile,
                    +    varname,
                    +    boundary_space;
                    +    outfile_root = "land_sea_cgll",
                    +    mono = false,
                    +    threshold = 0.7,
                    +)

                    Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                    See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                    Arguments

                    • FT: [DataType] Float type
                    • REGRID_DIR: [String] directory to save output files in.
                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                    • infile: [String] filename containing input data.
                    • varname: [Symbol] variable name.
                    • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                    • outfile_root: [String] root for output file name.
                    • mono: [Bool] flag for monotone remapping.
                    • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                    Returns

                    • Fields.Field
                    source
                    ClimaCoupler.Regridder.update_surface_fractions!Function
                    update_surface_fractions!(cs::CoupledSimulation)

                    Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                    Arguments

                    • cs: [CoupledSimulation] containing area fraction information.
                    source
                    ClimaCoupler.Regridder.combine_surfaces!Function
                    combine_surfaces!(combined_field::Fields.Field, fractions::NamedTuple, fields::NamedTuple)

                    Sums Field objects in fields weighted by the respective area fractions, and updates these values in combined_field. NamedTuples fields and fractions must have matching field names.

                    Arguments

                    • combined_field: [Fields.Field] output object containing weighted values.
                    • fractions: [NamedTuple] containing weights used on values in fields.
                    • fields: [NamedTuple] containing values to be weighted by fractions.
                    source

                    Regridder Internal Functions

                    ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                    reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                    Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                    Arguments

                    • field: [Fields.Field] object populated with the input array.
                    • in_array: [Array] input used to fill field.
                    • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                    source
                    ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                    hdwrite_regridfile_rll_to_cgll(
                    +    FT,
                    +    REGRID_DIR,
                    +    datafile_rll,
                    +    varname,
                    +    space;
                    +    hd_outfile_root = "data_cgll",
                    +    mono = false,
                    +)

                    Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                    Arguments

                    • FT: [DataType] Float type.
                    • REGRID_DIR: [String] directory to save output files in.
                    • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                    • varname: [String] the name of the variable to be remapped.
                    • space: [Spaces.AbstractSpace] the space to which we are mapping.
                    • hd_outfile_root: [String] root of the output file name.
                    • mono: [Bool] flag to specify monotone remapping.
                    source
                    ClimaCoupler.Regridder.write_datafile_ccFunction
                    write_datafile_cc(datafile_cc, field, name)

                    Write the data stored in field to an NCDataset file datafile_cc.

                    Arguments

                    • datafile_cc: [String] filename of output file.
                    • field: [Fields.Field] to be written to file.
                    • name: [Symbol] variable name.
                    source
                    ClimaCoupler.Regridder.binary_maskFunction
                    binary_mask(var::FT; threshold = 0.5)

                    Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                    Arguments

                    • var: [FT] value to be converted.
                    • threshold: [Float] cutoff value for conversions.
                    source
                    diff --git a/previews/PR296/search/index.html b/previews/PR296/search/index.html new file mode 100644 index 000000000..8ead3dac6 --- /dev/null +++ b/previews/PR296/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                    Loading search...

                      diff --git a/previews/PR296/search_index.js b/previews/PR296/search_index.js new file mode 100644 index 000000000..ddb97f901 --- /dev/null +++ b/previews/PR296/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/amip/coupler_driver/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nimport MPI\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput\n\ninclude(\"cli_options.jl\")\n(s, parsed_args) = parse_commandline()\n\nif isinteractive()\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nconst FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nland_sim_name = \"bucket\"\nt_end = FT(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (0, t_end)\nΔt_cpl = FT(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\n\nimport ClimaCoupler\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/moist_mpi_earth/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files - land sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nmask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# import coupler unitilies\ninclude(\"coupler_utils/flux_calculator.jl\")\ninclude(\"coupler_utils/conservation_checker.jl\")\ninclude(\"coupler_utils/regridder.jl\")\ninclude(\"coupler_utils/masker.jl\")\ninclude(\"coupler_utils/calendar_timer.jl\")\ninclude(\"coupler_utils/general_helper.jl\")\ninclude(\"coupler_utils/bcfile_reader.jl\")\ninclude(\"coupler_utils/variable_definer.jl\")\ninclude(\"coupler_utils/diagnostics_gatherer.jl\")\ninclude(\"coupler_utils/offline_postprocessor.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"atmos/atmos_init.jl\")\natmos_sim = atmos_init(FT, Y, integrator, params = params);","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea mask","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_mask = land_sea_mask(FT, REGRID_DIR, comms_ctx, mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"slab/slab_utils.jl\")\ninclude(\"bucket/bucket_init.jl\")\ninclude(\"slab/slab_init.jl\")\ninclude(\"slab_ocean/slab_init.jl\")\ninclude(\"slab_ice/slab_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n)","category":"page"},{"location":"generated/amip/coupler_driver/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n comms_ctx,\n sst_data,\n \"SST\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_params = OceanSlabParameters(FT(20), FT(1500.0), FT(800.0), FT(280.0), FT(1e-3), FT(1e-5), FT(0.06))\n ocean_sim = (;\n integrator = (;\n u = (; T_sfc = SST_init),\n p = (; params = ocean_params, ocean_mask = (FT(1) .- land_mask)),\n SST_info = SST_info,\n )\n )\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n comms_ctx,\n sic_data,\n \"SEAICE\",\n boundary_space,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fractions\n land_mask = land_mask,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_mask = get_ice_mask.(SIC_init, mono_surface)\n ice_sim = ice_init(FT; tspan = tspan, dt = Δt_cpl, space = boundary_space, saveat = saveat, ice_mask = ice_mask)\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n ocean_mask = (FT(1) .- land_mask), ## NB: this ocean mask includes areas covered by sea ice (unlike the one contained in the cs)\n )\n\n # sea ice\n ice_sim = (;\n integrator = (;\n u = (; T_sfc = ClimaCore.Fields.ones(boundary_space)),\n p = (; params = ocean_sim.params, ice_mask = ClimaCore.Fields.zeros(boundary_space)),\n )\n )\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (:T_S, :z0m_S, :z0b_S, :ρ_sfc, :q_sfc, :albedo, :beta, :F_A, :F_E, :F_R, :P_liq, :P_snow)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)])","category":"page"},{"location":"generated/amip/coupler_driver/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the coupler_utils/variable_definer.jl.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# 3d diagnostics\nmonthly_3d_diags_names = (:T, :u, :q_tot)\nmonthly_3d_diags = (;\n fields = NamedTuple{monthly_3d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(atmos_sim.domain.center_space), length(monthly_3d_diags_names)),\n ),\n ct = [0],\n)\n# 2d diagnostics\nmonthly_2d_diags_names = (:precipitation, :toa, :T_sfc)\nmonthly_2d_diags = (;\n fields = NamedTuple{monthly_2d_diags_names}(\n ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(monthly_2d_diags_names)),\n ),\n ct = [0],\n)\n\n# coupler simulation\ncs = CouplerSimulation{FT}(\n comms_ctx,\n tspan,\n dates,\n boundary_space,\n parsed_args,\n integrator.t,\n FT(Δt_cpl),\n (; land = land_mask, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n coupler_fields,\n model_sims,\n mode_specifics,\n monthly_3d_diags,\n monthly_2d_diags,\n);","category":"page"},{"location":"generated/amip/coupler_driver/#Initial-States-Exchange","page":"AMIP Driver","title":"Initial States Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# share states between models\ninclude(\"./push_pull.jl\")\natmos_pull!(cs)\nparsed_args[\"ode_algo\"] == \"ARS343\" ? step!(atmos_sim.integrator, Δt_cpl, true) : nothing\natmos_push!(cs)\nland_pull!(cs)\n\n# reinitialize (TODO: avoid with interfaces)\nreinit!(atmos_sim.integrator)\nreinit!(land_sim.integrator)\nmode_name == \"amip\" ? (ice_pull!(cs), reinit!(ice_sim.integrator)) : nothing\nmode_name == \"slabplanet\" ? (ocean_pull!(cs), reinit!(ocean_sim.integrator)) : nothing","category":"page"},{"location":"generated/amip/coupler_driver/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nif !is_distributed && energy_check && mode_name == \"slabplanet\"\n conservation_check = OnlineConservationCheck([], [], [], [], [], [], [])\n check_conservation(conservation_check, cs)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs, energy_check)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n @calendar_callback :(@show(cs.dates.date[1])) cs.dates.date[1] cs.dates.date1[1]\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SST_info,\n )\n SST = ocean_sim.integrator.u.T_sfc .= interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)\n @calendar_callback :(update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)) cs.dates.date[1] next_date_in_file(\n cs.mode.SIC_info,\n )\n SIC = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n\n ice_mask = ice_sim.integrator.p.ice_mask .= get_ice_mask.(SIC_init, mono_surface)\n\n # accumulate diagnostics at each timestep\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_3d_diags.fields)), cs.monthly_3d_diags)\n accumulate_diags(collect_diags(cs, propertynames(cs.monthly_2d_diags.fields)), cs.monthly_2d_diags)\n\n # save and reset monthly averages\n @calendar_callback :(\n map(x -> x ./= cs.monthly_3d_diags.ct[1], cs.monthly_3d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_3d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"3d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_3d_diags.fields),\n cs.monthly_3d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n @calendar_callback :(\n map(x -> x ./= cs.monthly_2d_diags.ct[1], cs.monthly_2d_diags.fields),\n save_hdf5(\n cs.comms_ctx,\n cs.monthly_2d_diags.fields,\n cs.dates.date[1],\n COUPLER_OUTPUT_DIR,\n name_tag = \"2d_\",\n ),\n map(x -> x .= FT(0), cs.monthly_2d_diags.fields),\n cs.monthly_2d_diags.ct .= FT(0),\n ) cs.dates.date[1] cs.dates.date1[1]\n\n end\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n # 1. atmos\n ClimaComms.barrier(comms_ctx)\n\n atmos_pull!(cs)\n step!(atmos_sim.integrator, t - atmos_sim.integrator.t, true) # NOTE: instead of Δt_cpl, to avoid accumulating roundoff error\n atmos_push!(cs)\n\n # 2. land\n land_pull!(cs)\n step!(land_sim.integrator, t - land_sim.integrator.t, true)\n\n # 3. ocean\n if cs.mode.name == \"slabplanet\"\n ocean_pull!(cs)\n step!(ocean_sim.integrator, t - ocean_sim.integrator.t, true)\n end\n\n # 4. sea ice\n if cs.mode.name == \"amip\"\n ice_pull!(cs)\n step!(ice_sim.integrator, t - ice_sim.integrator.t, true)\n end\n\n # compute global energy\n if !simulation.is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n check_conservation(conservation_check, cs)\n end\n\n # step to the next calendar month\n @calendar_callback :(cs.dates.date1[1] += Dates.Month(1)) cs.dates.date[1] cs.dates.date1[1]\n\n end\n @show walltime\n\n return cs\nend\n\n# run the coupled simulation\nsolve_coupler!(cs, energy_check);","category":"page"},{"location":"generated/amip/coupler_driver/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n isdir(COUPLER_OUTPUT_DIR * \"_artifacts\") ? nothing : mkpath(COUPLER_OUTPUT_DIR * \"_artifacts\")\n\n # energy check plots\n if !is_distributed && energy_check && cs.mode.name == \"slabplanet\"\n @info \"Energy Check\"\n plot_global_energy(\n conservation_check,\n cs,\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_bucket.png\"),\n joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"coupler_utils/viz_explorer.jl\")\n plot_anim(cs, COUPLER_OUTPUT_DIR * \"_artifacts\")\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n include(\"coupler_utils/plotter.jl\")\n\n # ClimaESM\n include(\"coupler_utils/amip_visualizer.jl\")\n post_spec = (;\n T = (:regridded_3d, :zonal_mean),\n u = (:regridded_3d, :zonal_mean),\n q_tot = (:regridded_3d, :zonal_mean),\n toa = (:regridded_2d, :horizontal_2d),\n precipitation = (:regridded_2d, :horizontal_2d),\n T_sfc = (:regridded_2d, :horizontal_2d),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n )\n amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"coupler_utils/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_2d,),\n precipitation = (:horizontal_2d,),\n T_sfc = (:horizontal_2d,),\n )\n ncep_plot_spec = plot_spec\n ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver/#Temporary-Unit-Tests","page":"AMIP Driver","title":"Temporary Unit Tests","text":"","category":"section"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"To be moved to test/","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"if !is_distributed && cs.mode.name == \"amip\"\n @info \"Unit Tests\"\n include(\"coupler_utils/unit_tester.jl\")\nend","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, fractions::NamedTuple, fields::NamedTuple)\n\nSums Field objects in fields weighted by the respective area fractions, and updates these values in combined_field. NamedTuples fields and fractions must have matching field names.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nfractions: [NamedTuple] containing weights used on values in fields.\nfields: [NamedTuple] containing values to be weighted by fractions.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR296/siteinfo.js b/previews/PR296/siteinfo.js new file mode 100644 index 000000000..d249a592e --- /dev/null +++ b/previews/PR296/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR296"; diff --git a/previews/PR296/testhelper/index.html b/previews/PR296/testhelper/index.html new file mode 100644 index 000000000..5e6587f6b --- /dev/null +++ b/previews/PR296/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                      TestHelper

                      This module defines helper functions, objects, and constants to be used by various files in the test folder.

                      TestHelper API

                      ClimaCoupler.TestHelper.create_spaceFunction
                      create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                      +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                      Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                      Arguments

                      • FT: [DataType] Float type
                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                      • R: [FT] radius of the sphere underlying space.
                      • ne: [Integer] number of elements used in the space's mesh.
                      • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                      • nz: [Integer] number of vertical elements
                      source
                      ClimaCoupler.TestHelper.gen_ncdataFunction
                      gen_ncdata(FT, path, varname, val)

                      Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                      Arguments

                      • FT: [DataType] Float type.
                      • path: [String] location to store output datafile.
                      • varname: [Symbol] variable name.
                      • val: [FT] value to store as varname at all indices.
                      source
                      diff --git a/previews/PR296/timemanager/index.html b/previews/PR296/timemanager/index.html new file mode 100644 index 000000000..5ab4944ca --- /dev/null +++ b/previews/PR296/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                      TimeManager

                      This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                      TimeManager API

                      ClimaCoupler.TimeManager.current_dateFunction
                      current_date(cs::CoupledSimulation, t::Int)

                      Return the model date at the current timestep.

                      Arguments

                      • cs: [CoupledSimulation] containing info about the simulation
                      • t: [Real] number of seconds since simulation began
                      source
                      ClimaCoupler.TimeManager.trigger_callbackFunction
                      trigger_callback(cs, ::Monthly)

                      Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                      Arguments

                      • cs: [CoupledSimulation] containing info about the simulation
                      source
                      Missing docstring.

                      Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                      diff --git a/previews/PR296/timestepping/index.html b/previews/PR296/timestepping/index.html new file mode 100644 index 000000000..ec974f793 --- /dev/null +++ b/previews/PR296/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                      Coupled Simulations & Timestepping

                      ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                      Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                      • step!: advances the component model in time
                      • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                      • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                      ClimaCoupler.run!Function
                      run!(::CoupledSimulation)

                      A simple outer timestepping loop for coupled system runs.

                      This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                      source
                      ClimaCoupler.step!Function
                      step!(sim, dt)

                      Advances a simulation sim by dt.

                      Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                      source
                      ClimaCoupler.coupler_push!Function
                      coupler_push!(coupler::CouplerState, model)

                      Update coupler with fields retrieved from the coupler.

                      coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                      source
                      ClimaCoupler.coupler_pull!Function
                      coupler_pull!(model, coupler::CouplerState)

                      Update model with fields retrieved from the coupler.

                      coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                      source
                      diff --git a/previews/PR296/utilities/index.html b/previews/PR296/utilities/index.html new file mode 100644 index 000000000..cf25e66e4 --- /dev/null +++ b/previews/PR296/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                      Utilities

                      This module contains functions, objects, and constants used by various modules in the coupler.

                      Utilities API

                      Missing docstring.

                      Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                      ClimaCoupler.Utilities.swap_space!Function
                      swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                      Remap the values of a field onto a new space.

                      Arguments

                      • field_in: [Fields.Field] to be remapped to new space.
                      • field_out: [Fields.Field] to remap field_in to.
                      source
                      diff --git a/previews/PR340/assets/documenter.js b/previews/PR340/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR340/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR340/assets/logo.svg b/previews/PR340/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR340/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR340/assets/search.js b/previews/PR340/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR340/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                    • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR340/assets/themes/documenter-dark.css b/previews/PR340/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR340/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                      that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR340/assets/themes/documenter-light.css b/previews/PR340/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR340/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
                      that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR340/assets/themeswap.js b/previews/PR340/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR340/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR340/assets/warner.js b/previews/PR340/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR340/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                      Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR340/bcreader/index.html b/previews/PR340/bcreader/index.html new file mode 100644 index 000000000..0a8fd6d40 --- /dev/null +++ b/previews/PR340/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                      BCReader

                      This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                      BCReader API

                      ClimaCoupler.BCReader.BCFileInfoType
                      BCFileInfo

                      Stores information specific to each boundary condition from a file and each variable.

                      Inputs:

                      • bcfile_dir::b # directory of the BC file
                      • comms_ctx::X # communication context used for MPI
                      • hdoutfileroot::S # filename root for regridded data
                      • varname::V # name of the variable
                      • all_dates::D # vector of all dates contained in the original data file
                      • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                      • scaling_function::O # function that scales, offsets or transforms the raw variable
                      • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                      • segment_idx::Vector{Int} # index of the monthly data in the file
                      • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                      • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                      • interpolate_daily::Bool # switch to trigger daily interpolation
                      source
                      ClimaCoupler.BCReader.bcfile_info_initFunction
                      bcfile_info_init(
                      +    FT,
                      +    bcfile_dir,
                      +    datafile_rll,
                      +    varname,
                      +    boundary_space,
                      +    comms_ctx;
                      +    interpolate_daily = false,
                      +    segment_idx0 = nothing,
                      +    scaling_function = no_scaling,
                      +    land_fraction = nothing,
                      +    date0 = nothing,
                      +    mono = true,
                      +)

                      Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                      Arguments

                      • FT: [DataType] Float type.
                      • bcfile_dir: [String] directory the BC file is stored in.
                      • datafile_rll: [String] file containing data to regrid.
                      • varname: [String] name of the variable to be regridded.
                      • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                      • interpolate_daily: [Bool] switch to trigger daily interpolation.
                      • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                      • scaling function: [Function] scales, offsets or transforms varname.
                      • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                      • date0: [Dates.DateTime] start date of the file data.
                      • mono: [Bool] flag for monotone remapping of datafile_rll.

                      Returns

                      • BCFileInfo
                      source
                      ClimaCoupler.BCReader.update_midmonth_data!Function
                      update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                      Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                      Arguments

                      • date: [Dates.DateTime] start date for data.
                      • bcf_info: [BCFileInfo] containing boundary condition data.
                      source
                      ClimaCoupler.BCReader.next_date_in_fileFunction
                      next_date_in_file(bcf_info)

                      Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                      Arguments

                      • bcf_info: [BCFileInfo] containing the date information.

                      Returns

                      • Dates.DateTime
                      source
                      ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                      interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                      Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                      Arguments

                      • date: [Dates.DateTime] start date for data.
                      • bcf_info: [BCFileInfo] contains fields to be interpolated.

                      Returns

                      • Fields.field
                      source

                      BCReader Internal Functions

                      ClimaCoupler.BCReader.no_scalingFunction
                      no_scaling(field, bcf_info)

                      Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                      Arguments

                      • field: [Fields.Field] contains the values to be remapped.
                      • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                      source
                      ClimaCoupler.BCReader.interpolFunction
                      interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                      Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                      Arguments

                      • f1: [FT] first value to be interpolated (f(t1) = f1).
                      • f2: [FT] second value to be interpolated.
                      • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                      • Δt_t2t1: [FT] time between t1 and t2.

                      Returns

                      • FT
                      source
                      diff --git a/previews/PR340/conservation/index.html b/previews/PR340/conservation/index.html new file mode 100644 index 000000000..06d3505fa --- /dev/null +++ b/previews/PR340/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                      Conservation Checks

                      If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                      Only energy and water are currently implemented.

                      Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                      Coupler Object API

                      ClimaCoupler.ConservationChecker.check_conservation!Function
                      check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                      itertes over all specified conservation checks.

                      source
                          check_conservation!(
                      +    cc::EnergyConservationCheck,
                      +    coupler_sim,
                      +    get_slab_energy,
                      +    get_land_energy,
                      +    )

                      computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                      TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                      source
                      check_conservation!(
                      +cc::WaterConservationCheck,
                      +coupler_sim,
                      +get_slab_energy,
                      +get_land_energy,
                      +)

                      computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                      Note: in the future this should not use push!.

                      source
                      ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                      plot_global_conservation(
                      +    cc::EnergyConservationCheck,
                      +    coupler_sim::CoupledSimulation;
                      +    figname1 = "total_energy.png",
                      +    figname2 = "total_energy_log.png",
                      +)

                      Creates two plots of the globally integrated quantity (energy, $\rho e$):

                      1. global quantity of each model component as a function of time,

                      relative to the initial value;

                      1. fractional change in the sum of all components over time on a log scale.
                      source
                      plot_global_conservation(
                      +    cc::WaterConservationCheck,
                      +    coupler_sim::CoupledSimulation;
                      +    figname1 = "total_energy.png",
                      +    figname2 = "total_energy_log.png",
                      +)

                      Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                      1. global quantity of each model component as a function of time,

                      relative to the initial value;

                      1. fractional change in the sum of all components over time on a log scale.
                      source
                      diff --git a/previews/PR340/couplerstate/index.html b/previews/PR340/couplerstate/index.html new file mode 100644 index 000000000..d8a7d799c --- /dev/null +++ b/previews/PR340/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                      Coupler State

                      The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                      The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                      Coupler Object API

                      ClimaCoupler.CouplerStateType
                      CouplerState()

                      Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                      A field is exported by one component and imported by one or more other components.

                      source
                      ClimaCoupler.coupler_add_field!Function
                      coupler_add_field!(
                      +        coupler::CouplerState,
                      +        fieldname::Symbol,
                      +        fieldvalue,
                      +    )

                      Add a field to the coupler that is accessible with key fieldname.

                      Arguments

                      • coupler: coupler object the field is added to.
                      • fieldname: key to access the field in the coupler.
                      • fieldvalue: data array of field values.
                      source
                      ClimaCoupler.coupler_getFunction
                      coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                      Retrieve data array corresponding to fieldname.

                      If a target_sim is passed, the field is remapped to that simulation's boundary space.

                      source
                      diff --git a/previews/PR340/diagnostics/index.html b/previews/PR340/diagnostics/index.html new file mode 100644 index 000000000..1425bccf7 --- /dev/null +++ b/previews/PR340/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                      Diagnostics

                      This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                      Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                      Diagnostics API

                      Missing docstring.

                      Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                      ClimaCoupler.Diagnostics.get_varFunction
                      get_var(cs::CoupledSimulation, x)

                      Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                      Example:

                      getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                      source
                      ClimaCoupler.Diagnostics.save_diagnosticsFunction
                      save_diagnostics(cs::CoupledSimulation)
                      +
                      +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                      Saves all entries in dg in separate HDF5 files per variable in output_dir.

                      source

                      Diagnostics Internal Functions

                      Missing docstring.

                      Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                      ClimaCoupler.Diagnostics.operationFunction
                      operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                      Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                      source
                      operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                      Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                      source
                      ClimaCoupler.Diagnostics.pre_saveFunction
                      pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                      Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                      source
                      pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                      Collects variables and performs all specified operations before saving the snapshot diagnostics.

                      source
                      diff --git a/previews/PR340/fieldexchanger/index.html b/previews/PR340/fieldexchanger/index.html new file mode 100644 index 000000000..ce9cad2b4 --- /dev/null +++ b/previews/PR340/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                      FieldExchanger

                      This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                      The FieldExchanger needs to populate the coupler with

                      • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                      • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                      The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                      • AtmosModelSimulation: albedo, surface_temperature
                        • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                      • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                      If an update_field! function is not defined for a particular component model, it will be ignored.

                      Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                      FieldExchanger API

                      ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                      import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                      Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                      Arguments

                      • csf: [NamedTuple] containing coupler fields.
                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                      • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                      source
                      ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                      import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                      Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                      Arguments

                      • csf: [NamedTuple] containing coupler fields.
                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                      • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                      source
                      ClimaCoupler.FieldExchanger.update_model_sims!Function
                      update_model_sims!(model_sims, csf, turbulent_fluxes)

                      Iterates update_sim! over all component model simulations saved in cs.model_sims.

                      Arguments

                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                      • csf: [NamedTuple] containing coupler fields.
                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                      source
                      ClimaCoupler.FieldExchanger.update_sim!Function
                      update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                      Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                      Arguments

                      • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                      • csf: [NamedTuple] containing coupler fields.
                      source
                      update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing, turbulent_fluxes = FluxCalculator.CombinedAtmosGrid())

                      Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                      Arguments

                      • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                      • csf: [NamedTuple] containing coupler fields.
                      source
                      update_sim!(::SurfaceStub, csf, area_fraction)

                      The stub surface simulation is not updated by this function.

                      source
                      ClimaCoupler.FieldExchanger.step_model_sims!Function
                      step_model_sims!(model_sims, t)

                      Iterates step! over all component model simulations saved in cs.model_sims.

                      Arguments

                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                      • t: [AbstractFloat] denoting the simulation time.
                      source

                      FieldExchanger Internal Functions

                      CommonSolve.step!Function
                      step!(::SurfaceStub, t)

                      The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                      source
                      SciMLBase.reinit!Function
                      reinit!(cs::SurfaceStub)

                      The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                      source
                      diff --git a/previews/PR340/fluxcalculator/index.html b/previews/PR340/fluxcalculator/index.html new file mode 100644 index 000000000..98ddba268 --- /dev/null +++ b/previews/PR340/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                      FluxCalculator

                      This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                      Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                      1. Combined fluxes (called with CombinedAtmosGrid())
                      • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                      1. Partitioned fluxes (called with PartitionedComponentModelGrid())
                      • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)

                      FluxCalculator API

                      ClimaCoupler.FluxCalculator.CombinedAtmosGridType
                      CombinedAtmosGrid <: TurbulentFluxPartition

                      A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                      source
                      ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!Function
                      compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                      Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                      Arguments

                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                      • csf: [NamedTuple] containing coupler fields.
                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                      source
                      ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!Function
                      compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                      A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                      Arguments

                      • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                      • csf: [NamedTuple] containing coupler fields.

                      Example:

                      function compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                      +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                      +end
                      source
                      diff --git a/previews/PR340/generated/amip/coupler_driver_modular/index.html b/previews/PR340/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..b0d490d2a --- /dev/null +++ b/previews/PR340/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,443 @@ + +AMIP Driver · ClimaCoupler.jl

                      AMIP Driver

                      Overview

                      AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                      • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                      • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                      For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                      This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                      Start Up

                      Before starting Julia, ensure your environment is properly set up:

                      module purge
                      +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                      +
                      +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                      +export JUlIA_MPI_BINARY="system"
                      +export JULIA_HDF5_PATH=""

                      Next instantiate/build all packages listed in Manifest.toml:

                      julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                      +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                      The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                      julia --project --threads 8

                      Initialization

                      Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                      import SciMLBase: step!, reinit!
                      +using OrdinaryDiffEq
                      +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                      +using LinearAlgebra
                      +import Test: @test
                      +using Dates
                      +using UnPack
                      +using Plots
                      +using Statistics: mean
                      +
                      +using ClimaCore.Utilities: half, PlusHalf
                      +using ClimaCore: InputOutput, Fields
                      +import ClimaCore.Spaces as Spaces
                      +
                      +if !(@isdefined parsed_args)
                      +    include("cli_options.jl")
                      +    parsed_args = parse_commandline(argparse_settings())
                      +end
                      +
                      +if isinteractive()
                      +    parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes

                      parsedargs["dtsave_restart"] = "5days" #hide

                          parsed_args["job_id"] = "interactive_debug_run"
                      +end
                      +
                      +# read in some parsed command line arguments
                      +mode_name = parsed_args["mode_name"]
                      +run_name = parsed_args["run_name"]
                      +energy_check = parsed_args["energy_check"]
                      +if !(@isdefined FT)
                      +    const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                      +end
                      +land_sim_name = "bucket"
                      +t_end = Int(time_to_seconds(parsed_args["t_end"]))
                      +tspan = (Int(0), t_end)
                      +Δt_cpl = Int(parsed_args["dt_cpl"])
                      +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                      +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                      +mono_surface = parsed_args["mono_surface"]
                      +
                      +import ClimaCoupler
                      +import ClimaCoupler.Regridder
                      +import ClimaCoupler.Regridder:
                      +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                      +import ClimaCoupler.ConservationChecker:
                      +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                      +import ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!
                      +import ClimaCoupler.BCReader:
                      +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                      +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                      +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                      +import ClimaCoupler.PostProcessor: postprocess
                      +
                      +import ClimaCoupler.Interfacer:
                      +    AtmosModelSimulation,
                      +    SurfaceModelSimulation,
                      +    SurfaceStub,
                      +    SeaIceModelSimulation,
                      +    LandModelSimulation,
                      +    OceanModelSimulation,
                      +    get_field,
                      +    update_field!,
                      +    update_sim!
                      +import ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!
                      +import ClimaCoupler.FieldExchanger:
                      +    import_atmos_fields!,
                      +    import_combined_surface_fields!,
                      +    update_sim!,
                      +    update_model_sims!,
                      +    reinit_model_sims!,
                      +    step_model_sims!
                      +
                      +pkg_dir = pkgdir(ClimaCoupler)
                      +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                      +mkpath(COUPLER_OUTPUT_DIR)
                      +
                      +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                      +mkpath(REGRID_DIR)
                      +
                      +@info COUPLER_OUTPUT_DIR
                      +@info parsed_args
                      +
                      +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration
                      +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                      +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                      +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                      +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                      +
                      +# import coupler utils
                      +include("components/flux_calculator.jl")
                      +
                      +# user-specified diagnostics
                      +include("user_io/user_diagnostics.jl")

                      Component Model Initialization

                      Here we set initial and boundary conditions for each component model.

                      Atmosphere

                      This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                      # init atmos model component
                      +include("components/atmosphere/climaatmos_init.jl")
                      +atmos_sim = atmos_init(FT, parsed_args);
                      +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                      We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                      # init a 2D bounary space at the surface
                      +boundary_space = atmos_sim.domain.face_space.horizontal_space

                      init land-sea fraction

                      land_fraction =
                      +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)
                      +
                      +# init surface (slab) model components
                      +include("components/slab_utils.jl")
                      +include("components/land/bucket_init.jl")
                      +include("components/land/bucket_utils.jl")
                      +include("components/ocean/slab_ocean_init.jl")
                      +include("components/ocean/slab_seaice_init.jl")

                      Land

                      We use ClimaLSM.jl's bucket model.

                      land_sim = bucket_init(
                      +    FT,
                      +    FT.(tspan),
                      +    parsed_args["config"],
                      +    parsed_args["albedo_from_file"],
                      +    comms_ctx,
                      +    REGRID_DIR;
                      +    dt = FT(Δt_cpl),
                      +    space = boundary_space,
                      +    saveat = FT(saveat),
                      +    area_fraction = land_fraction,
                      +)

                      Ocean and Sea Ice

                      In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                      In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                      @info mode_name
                      +if mode_name == "amip"
                      +    @info "AMIP boundary conditions - do not expect energy conservation"
                      +
                      +    # ocean
                      +    SST_info = bcfile_info_init(
                      +        FT,
                      +        REGRID_DIR,
                      +        sst_data,
                      +        "SST",
                      +        boundary_space,
                      +        comms_ctx,
                      +        interpolate_daily = true,
                      +        scaling_function = clean_sst, ## convert to Kelvin
                      +        land_fraction = land_fraction,
                      +        date0 = date0,
                      +        mono = mono_surface,
                      +    )
                      +
                      +    update_midmonth_data!(date0, SST_info)
                      +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                      +    ocean_sim = SurfaceStub((;
                      +        T_sfc = SST_init,
                      +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                      +        z0m = FT(1e-3),
                      +        z0b = FT(1e-3),
                      +        beta = FT(1),
                      +        α = FT(0.06),
                      +        area_fraction = (FT(1) .- land_fraction),
                      +        phase = TD.Liquid(),
                      +        thermo_params = thermo_params,
                      +    ))
                      +    # sea ice
                      +    SIC_info = bcfile_info_init(
                      +        FT,
                      +        REGRID_DIR,
                      +        sic_data,
                      +        "SEAICE",
                      +        boundary_space,
                      +        comms_ctx,
                      +        interpolate_daily = true,
                      +        scaling_function = clean_sic, ## convert to fraction
                      +        land_fraction = land_fraction,
                      +        date0 = date0,
                      +        mono = mono_surface,
                      +    )
                      +    update_midmonth_data!(date0, SIC_info)
                      +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                      +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                      +    ice_sim = ice_init(
                      +        FT;
                      +        tspan = tspan,
                      +        dt = Δt_cpl,
                      +        space = boundary_space,
                      +        saveat = saveat,
                      +        area_fraction = ice_fraction,
                      +        thermo_params = thermo_params,
                      +    )
                      +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                      +
                      +elseif mode_name == "slabplanet"
                      +    # ocean
                      +    ocean_sim = ocean_init(
                      +        FT;
                      +        tspan = tspan,
                      +        dt = Δt_cpl,
                      +        space = boundary_space,
                      +        saveat = saveat,
                      +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                      +        thermo_params = thermo_params,
                      +    )
                      +
                      +    # sea ice (here set to zero area coverage)
                      +    ice_sim = SurfaceStub((;
                      +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                      +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                      +        z0m = FT(0),
                      +        z0b = FT(0),
                      +        beta = FT(1),
                      +        α = FT(1),
                      +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                      +        phase = phase = TD.Ice(),
                      +        thermo_params = thermo_params,
                      +    ))
                      +
                      +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                      +end

                      Coupler Initialization

                      The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                      # coupler exchange fields
                      +coupler_field_names = (
                      +    :T_S,
                      +    :z0m_S,
                      +    :z0b_S,
                      +    :ρ_sfc,
                      +    :q_sfc,
                      +    :albedo,
                      +    :beta,
                      +    :F_turb_energy,
                      +    :F_turb_moisture,
                      +    :F_radiative,
                      +    :P_liq,
                      +    :P_snow,
                      +    :F_radiative_TOA,
                      +    :P_net,
                      +)
                      +coupler_fields =
                      +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                      +
                      +# model simulations
                      +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                      +
                      +# dates
                      +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                      Online Diagnostics

                      User can write custom diagnostics in the user_diagnostics.jl.

                      monthly_3d_diags = init_diagnostics(
                      +    (:T, :u, :q_tot),
                      +    atmos_sim.domain.center_space;
                      +    save = Monthly(),
                      +    operations = (; accumulate = TimeMean([Int(0)])),
                      +    output_dir = COUPLER_OUTPUT_DIR,
                      +    name_tag = "monthly_mean_3d_",
                      +)
                      +
                      +monthly_2d_diags = init_diagnostics(
                      +    (:precipitation, :toa, :T_sfc),
                      +    boundary_space;
                      +    save = Monthly(),
                      +    operations = (; accumulate = TimeMean([Int(0)])),
                      +    output_dir = COUPLER_OUTPUT_DIR,
                      +    name_tag = "monthly_mean_2d_",
                      +)
                      +
                      +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                      Initialize Conservation Checks

                      # init conservation info collector
                      +conservation_checks = nothing
                      +if energy_check
                      +    @assert(
                      +        mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),
                      +        "Only non-distributed slabplanet allowable for energy_check"
                      +    )
                      +    conservation_checks =
                      +        (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))
                      +end
                      +
                      +# coupler simulation
                      +cs = CoupledSimulation{FT}(
                      +    comms_ctx,
                      +    dates,
                      +    boundary_space,
                      +    coupler_fields,
                      +    parsed_args,
                      +    conservation_checks,
                      +    [tspan[1], tspan[2]],
                      +    atmos_sim.integrator.t,
                      +    Δt_cpl,
                      +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                      +    model_sims,
                      +    mode_specifics,
                      +    diagnostics,
                      +);

                      Initial Component Model Exchange

                      include("temp_fluxer.jl")
                      +# share and update model caches
                      +turbulent_fluxes = CombinedAtmosGrid()
                      +update_surface_fractions!(cs)
                      1. import using T_sfc, albedo
                      import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                      1. atmos: calculate Fradiative, tsatmos (, ρ_sfc - if CombinedAtmosGrid())
                      update_sim!(cs.model_sims.atmos_sim, cs.fields, turbulent_fluxes) # Atmos needs T_sfc (in ts), albedo for rad TODO do we need this?
                      +step!(atmos_sim, Δt_cpl) # initiate state (TODO: this should be in the integrator init)
                      +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # update for ts (, ρ_sfc)
                      1. calculate qsfc (and rhosfc if PartitionedComponentModelGrid) in surface models
                      update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                      +step!(land_sim, Δt_cpl)
                      +step!(ocean_sim, Δt_cpl)
                      +step!(ice_sim, Δt_cpl)
                      1. calculate Fturbenergy and Fturbmoisture (and Fturbmomentum) on atmos grid
                      if turbulent_fluxes == CombinedAtmosGrid()
                      +    import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                      +    compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # update surface_conditions
                      +else
                      +    partition_turbulent_fluxes!(model_sims, fields, boundary_space, surface_scheme, thermo_params)
                      +    import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, fluxes
                      +    import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                      +end
                      1. calculate F_radiative on atmos grid
                      reinit!(atmos_sim)
                      +step!(atmos_sim, Δt_cpl)
                      1. update coupler and surface models for radiative fluxes, turbulent fluxes and precipitation
                      import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # update for correct F_radiative
                      +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes) # update for correct F_radiative and F_turb
                      +
                      +# reinitialize (TODO: avoid with interfaces)
                      +reinit_model_sims!(cs.model_sims)

                      Coupling Loop

                      function solve_coupler!(cs)
                      +    @info "Starting coupling loop"
                      +
                      +    @unpack model_sims, Δt_cpl, tspan = cs
                      +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                      +
                      +    # step in time
                      +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                      +
                      +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                      +
                      +        # print date on the first of month
                      +        if cs.dates.date[1] >= cs.dates.date1[1]
                      +            @show(cs.dates.date[1])
                      +        end
                      +
                      +        if cs.mode.name == "amip"
                      +
                      +            # monthly read of boundary condition data for SST and SIC
                      +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                      +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                      +            end
                      +            update_field!(
                      +                ocean_sim,
                      +                Val(:surface_temperature),
                      +                interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),
                      +            )
                      +
                      +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                      +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                      +            end
                      +            interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                      +            update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface))  # TODO: change to SIC
                      +
                      +            # calculate and accumulate diagnostics at each timestep
                      +            ClimaComms.barrier(comms_ctx)
                      +            accumulate_diagnostics!(cs)
                      +
                      +            # save and reset monthly averages
                      +            save_diagnostics(cs)
                      +
                      +        end
                      +
                      +        # compute global energy
                      +        !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing
                      +
                      +        # run component models sequentially for one coupling timestep (Δt_cpl)
                      +        ClimaComms.barrier(comms_ctx)
                      +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                      +
                      +        # step sims
                      +        step_model_sims!(cs.model_sims, t)

                      exchange combined fields and (if specified) calculate fluxes using combined states

                              update_surface_fractions!(cs)
                      +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                      +        compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)
                      +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent

                      TODO: computeandsendpartitionedturbulent_fluxes!(cs)

                              # step to the next calendar month
                      +        if trigger_callback(cs, Monthly())
                      +            cs.dates.date1[1] += Dates.Month(1)
                      +        end
                      +
                      +    end
                      +    @show walltime
                      +
                      +    return cs
                      +end
                      +
                      +
                      +# run the coupled simulation
                      +solve_coupler!(cs);

                      Postprocessing

                      Currently all postprocessing is performed using the root process only.

                      if ClimaComms.iamroot(comms_ctx)
                      +    isdir(COUPLER_OUTPUT_DIR * "_artifacts") ? nothing : mkpath(COUPLER_OUTPUT_DIR * "_artifacts")
                      +
                      +    # energy check plots
                      +    if !isnothing(cs.conservation_checks) && cs.mode.name == "slabplanet"
                      +        @info "Conservation Check Plots"
                      +        plot_global_conservation(
                      +            cs.conservation_checks.energy,
                      +            cs,
                      +            figname1 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_bucket.png"),
                      +            figname2 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_log_bucket.png"),
                      +        )
                      +        plot_global_conservation(
                      +            cs.conservation_checks.water,
                      +            cs,
                      +            figname1 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_water_bucket.png"),
                      +            figname2 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_water_log_bucket.png"),
                      +        )
                      +    end
                      +
                      +    # sample animations
                      +    if !is_distributed && parsed_args["anim"]
                      +        @info "Animations"
                      +        include("user_io/viz_explorer.jl")
                      +        plot_anim(cs, COUPLER_OUTPUT_DIR * "_artifacts")
                      +    end
                      +
                      +    # plotting AMIP results
                      +    if cs.mode.name == "amip"
                      +        @info "AMIP plots"
                      +
                      +        # ClimaESM
                      +        include("user_io/amip_visualizer.jl")
                      +        post_spec = (;
                      +            T = (:regrid, :zonal_mean),
                      +            u = (:regrid, :zonal_mean),
                      +            q_tot = (:regrid, :zonal_mean),
                      +            toa = (:regrid, :horizontal_slice),
                      +            precipitation = (:regrid, :horizontal_slice),
                      +            T_sfc = (:regrid, :horizontal_slice),
                      +        )
                      +
                      +        plot_spec = (;
                      +            T = (; clims = (190, 320), units = "K"),
                      +            u = (; clims = (-50, 50), units = "m/s"),
                      +            q_tot = (; clims = (0, 50), units = "g/kg"),
                      +            toa = (; clims = (-250, 210), units = "W/m^2"),
                      +            precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                      +            T_sfc = (clims = (225, 310), units = "K"),
                      +        )
                      +        amip_paperplots(
                      +            post_spec,
                      +            plot_spec,
                      +            COUPLER_OUTPUT_DIR,
                      +            files_root = ".monthly",
                      +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                      +        )
                      +
                      +        # NCEP reanalysis
                      +        @info "NCEP plots"
                      +        include("user_io/ncep_visualizer.jl")
                      +        ncep_post_spec = (;
                      +            T = (:zonal_mean,),
                      +            u = (:zonal_mean,),
                      +            q_tot = (:zonal_mean,),
                      +            toa = (:horizontal_slice,),
                      +            precipitation = (:horizontal_slice,),
                      +            T_sfc = (:horizontal_slice,),
                      +        )
                      +        ncep_plot_spec = plot_spec
                      +        ncep_paperplots(
                      +            ncep_post_spec,
                      +            ncep_plot_spec,
                      +            COUPLER_OUTPUT_DIR,
                      +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                      +            month_date = cs.dates.date[1],
                      +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                      +    end
                      +
                      +    # clean up
                      +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                      +end

                      This page was generated using Literate.jl.

                      diff --git a/previews/PR340/generated/sea_breeze/atmos_rhs/index.html b/previews/PR340/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..f4dda80af --- /dev/null +++ b/previews/PR340/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                      Atmospheric Model

                      Atmosphere Conservation Equations

                      Density:

                      \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                      Momentum (flux form):

                      \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                      Potential temperature:

                      \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                      Total Energy (possibly replace potential temperature equation with total energy conservation):

                      \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                      where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                      Tracer transport:

                      \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                      Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                      \[\rho\tau = -2\rho\nu\nabla u.\]

                      Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                      \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                      with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                      Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                      Consider components of the viscous stress tensor in three dimensions:

                      \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                      Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                      \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                      Which can be interpreted as, for horizontal-momentum:

                      1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                      2. Vertical divergence of vertical gradients of cell-centered variables $u$
                      3. Vertical divergence of horizontal gradients of cell-face variables $w$

                      and for vertical-momentum, as:

                      1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                      2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                      3. Vertical divergence of vertical gradients of cell-face variables $w$.

                      Model Code

                      push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                      +
                      +using Test
                      +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                      +
                      +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                      +using ClimaCore.Geometry
                      +using ClimaCore.Utilities: PlusHalf
                      +
                      +using Logging: global_logger
                      +using TerminalLoggers: TerminalLogger
                      +global_logger(TerminalLogger())
                      +
                      +using ClimaCoupler
                      +
                      +# set up function space
                      +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                      +    FT = Float64
                      +    vertdomain = Domains.IntervalDomain(
                      +        Geometry.ZPoint{FT}(zlim[1]),
                      +        Geometry.ZPoint{FT}(zlim[2]);
                      +        boundary_tags = (:bottom, :top),
                      +    )
                      +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                      +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                      +
                      +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                      +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                      +    horztopology = Topologies.IntervalTopology(horzmesh)
                      +
                      +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                      +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                      +
                      +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                      +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                      +    return (hv_center_space, hv_face_space)
                      +end
                      +
                      +function pressure(ρθ)
                      +    if ρθ >= 0
                      +        return MSLP * (R_d * ρθ / MSLP)^γ
                      +    else
                      +        return NaN
                      +    end
                      +end
                      +
                      +Φ(z) = grav * z
                      +
                      +abstract type BCtag end
                      +struct ZeroFlux <: BCtag end
                      +
                      +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                      +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                      +
                      +function init_sea_breeze_2d(x, z)
                      +    θ₀ = atm_T_ini
                      +    cp_d = C_p
                      +    cv_d = C_v
                      +    p₀ = MSLP
                      +    g = grav
                      +    γ = cp_d / cv_d
                      +    z_c = 100.0
                      +    θ_b = atm_T_ini
                      +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                      +    θ = θ_b + θ_p # potential temperature
                      +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                      +    T = π_exn * θ # temperature
                      +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                      +    ρ = p / R_d / T # density
                      +    ρθ = ρ * θ # potential temperature density
                      +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                      +end
                      +
                      +function atm_rhs!(dY, Y, params, t)
                      +    ρw = Y.ρw
                      +    Yc = Y.Yc
                      +    dYc = dY.Yc
                      +    dρw = dY.ρw
                      +
                      +    center_coords = Fields.coordinate_field(axes(Yc))
                      +
                      +    # spectral horizontal operators
                      +    hdiv = Operators.Divergence()
                      +    hgrad = Operators.Gradient()
                      +    hwdiv = Operators.WeakDivergence()
                      +    hwgrad = Operators.WeakGradient()
                      +
                      +    # vertical FD operators with BC's
                      +    vdivf2c = Operators.DivergenceF2C(
                      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                      +        top = Operators.SetValue(Geometry.WVector(0.0)),
                      +    )
                      +    vvdivc2f = Operators.DivergenceC2F(
                      +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                      +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                      +    )
                      +    uvdivf2c = Operators.DivergenceF2C(
                      +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                      +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                      +    )
                      +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                      +    Ic = Operators.InterpolateF2C()
                      +    ∂ = Operators.DivergenceF2C(
                      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                      +        top = Operators.SetValue(Geometry.WVector(0.0)),
                      +    )
                      +    ∂f = Operators.GradientC2F()
                      +    ∂c = Operators.GradientF2C()
                      +    B = Operators.SetBoundaryOperator(
                      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                      +        top = Operators.SetValue(Geometry.WVector(0.0)),
                      +    )
                      +
                      +    ∇_z_ρθ = Operators.DivergenceF2C(
                      +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                      +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                      +    )
                      +
                      +    uₕ = @. Yc.ρuₕ / Yc.ρ
                      +    w = @. ρw / If(Yc.ρ)
                      +    wc = @. Ic(ρw) / Yc.ρ
                      +    p = @. pressure(Yc.ρθ)
                      +    θ = @. Yc.ρθ / Yc.ρ
                      +    Yfρ = @. If(Yc.ρ)
                      +
                      +    ### HYPERVISCOSITY
                      +    # 1) compute hyperviscosity coefficients
                      +    @. dYc.ρθ = hwdiv(hgrad(θ))
                      +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                      +    @. dρw = hwdiv(hgrad(w))
                      +    Spaces.weighted_dss!(dYc)
                      +    Spaces.weighted_dss!(dρw)
                      +
                      +    κ₄ = 0.0 # m^4/s
                      +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                      +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                      +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                      +
                      +    # density
                      +    @. dYc.ρ = -∂(ρw)
                      +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                      +
                      +    # potential temperature
                      +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                      +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                      +
                      +    # horizontal momentum
                      +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                      +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                      +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                      +
                      +    # vertical momentum
                      +    @. dρw +=
                      +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                      +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                      +    @. dρw -= hdiv(uₕf ⊗ ρw)
                      +
                      +    # DIFFUSION
                      +    κ₂ = 5.0 # m^2/s
                      +    #  1a) horizontal div of horizontal grad of horiz momentun
                      +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                      +    #  1b) vertical div of vertical grad of horiz momentun
                      +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                      +
                      +    #  1c) horizontal div of horizontal grad of vert momentum
                      +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                      +    #  1d) vertical div of vertical grad of vert momentun
                      +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                      +
                      +    #  2a) horizontal div of horizontal grad of potential temperature
                      +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                      +    #  2b) vertical div of vertial grad of potential temperature
                      +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                      +
                      +    Spaces.weighted_dss!(dYc)
                      +    Spaces.weighted_dss!(dρw)
                      +    return dY
                      +end
                      +
                      +# init simulation
                      +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                      +
                      +    # construct domain spaces
                      +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                      +    center_coords = Fields.coordinate_field(hv_center_space)
                      +    face_coords = Fields.coordinate_field(hv_face_space)
                      +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                      +
                      +    # initialize prognostic variables
                      +    Yc = map(center_coords) do coord
                      +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                      +        sea_breeze
                      +    end
                      +
                      +    ρw = map(face_coords) do coord
                      +        Geometry.WVector(0.0)
                      +    end
                      +
                      +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                      +
                      +    # select boundary conditions
                      +    if bc === nothing
                      +        bc = (
                      +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                      +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                      +        )
                      +    end
                      +
                      +    return Y, bc, domain
                      +end
                      +
                      +using OrdinaryDiffEq
                      +function atm_run!(Y, bc, domain)
                      +    dYdt = similar(Y)
                      +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                      +    atm_rhs!(dYdt, Y, params, 0.0)
                      +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                      +    Δt = 0.025
                      +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                      +end

                      Coupled Atmos Wrappers

                      # Atmos Simulation - later to live in ClimaAtmos
                      +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                      +    integrator::Any
                      +end
                      +
                      +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                      +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                      +
                      +    atm_integ = init(
                      +        atm_prob,
                      +        timestepper,
                      +        dt = dt,
                      +        saveat = saveat,
                      +        progress = true,
                      +        progress_message = (dt, u, params, t) -> t,
                      +        callback = callbacks,
                      +    )
                      +
                      +    return AtmosSimulation(atm_integ)
                      +end
                      +
                      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                      +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                      +end
                      +
                      +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                      +    # reset flux accumulator
                      +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                      +
                      +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                      +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                      +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                      +end

                      Coupled Boundary Conditions

                      The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                      To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                      struct CoupledFlux <: BCtag end
                      +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                      +    # flux calculation
                      +    Yc = Y.Yc
                      +    uₕ = Yc.ρuₕ ./ Yc.ρ
                      +    ρw = Y.ρw
                      +    If2c = Operators.InterpolateF2C()
                      +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                      +    w = If2c.(ρw) ./ Yc.ρ
                      +    cuv = @. Geometry.UWVector(uₕ)
                      +    windspeed = @. norm(cuv)
                      +    windspeed_boundary = Fields.level(windspeed, 1)
                      +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                      +    ρ_boundary = Fields.level(Yc.ρ, 1)
                      +
                      +    # build atmos face fields on surface boundary space to enable broadcasting
                      +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                      +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                      +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                      +
                      +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                      +    dθ = @. θ_boundary - p.T_sfc
                      +    heat_flux = @. -λ * dθ
                      +    @. dY.F_sfc += heat_flux # accumulation
                      +
                      +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                      +end

                      This page was generated using Literate.jl.

                      diff --git a/previews/PR340/generated/sea_breeze/land_rhs/index.html b/previews/PR340/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..a18468d02 --- /dev/null +++ b/previews/PR340/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                      Land Model

                      Slab Land ODE

                      For our land component, we solve a simple slab land ODE:

                      \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                      • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                      • and $F_{integ}$ is the integrated surface fluxes in time.

                      Model Code

                      function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                      +    """
                      +    Slab layer equation
                      +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                      +        where
                      +            F_accumulated = F_integrated / Δt_coupler
                      +    """
                      +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                      +    @unpack T_sfc = du
                      +
                      +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                      +end
                      +
                      +# set up domain
                      +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                      +    FT = Float64
                      +
                      +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                      +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                      +    topology = Topologies.IntervalTopology(mesh)
                      +
                      +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                      +    quad = Spaces.Quadratures.GL{npoly + 1}()
                      +    space = Spaces.SpectralElementSpace1D(topology, quad)
                      +
                      +    return space
                      +end
                      +
                      +# init simulation
                      +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                      +
                      +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                      +    space = hspace_1D((xmin, xmax), npoly, helem)
                      +    coords = Fields.coordinate_field(space)
                      +    domain = space
                      +
                      +    # initial condition
                      +    T_sfc = map(coords) do coord
                      +        T_sfc = 273.0
                      +    end
                      +
                      +    # prognostic variable
                      +    Y = Fields.FieldVector(T_sfc = T_sfc)
                      +
                      +    return Y, domain
                      +end

                      Coupled Land Wrappers

                      # Land Simulation - later to live in ClimaLSM
                      +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                      +    integrator::Any
                      +end
                      +
                      +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                      +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                      +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                      +    return LandSimulation(lnd_integ)
                      +end
                      +
                      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                      +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                      +end
                      +
                      +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                      +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                      +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                      +end

                      This page was generated using Literate.jl.

                      diff --git a/previews/PR340/generated/sea_breeze/ocean_rhs/index.html b/previews/PR340/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..2c87ff8c6 --- /dev/null +++ b/previews/PR340/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                      Ocean Model

                      Slab Ocean ODE

                      For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                      \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                      • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                      • and $F_{integ}$ is the integrated surface fluxes in time.

                      Model Code

                      function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                      +    """
                      +    Slab layer equation
                      +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                      +        where
                      +            F_accumulated = F_integrated / Δt_coupler
                      +    """
                      +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                      +    @unpack T_sfc = du
                      +
                      +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                      +end
                      +
                      +# set up domain
                      +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                      +    FT = Float64
                      +
                      +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                      +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                      +    topology = Topologies.IntervalTopology(mesh)
                      +
                      +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                      +    quad = Spaces.Quadratures.GL{npoly + 1}()
                      +    space = Spaces.SpectralElementSpace1D(topology, quad)
                      +
                      +    return space
                      +end
                      +
                      +# init simulation
                      +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                      +
                      +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                      +    space = hspace_1D((xmin, xmax), npoly, helem)
                      +    coords = Fields.coordinate_field(space)
                      +    domain = space
                      +
                      +    # initial condition
                      +    T_sfc = map(coords) do coord
                      +        T_sfc = 267.0
                      +    end
                      +
                      +    # prognostic variable
                      +    Y = Fields.FieldVector(T_sfc = T_sfc)
                      +
                      +    return Y, domain
                      +end

                      Coupled Ocean Wrappers

                      # Ocean Simulation - Later to live in Oceananigans
                      +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                      +    integrator::Any
                      +end
                      +
                      +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                      +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                      +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                      +    return OceanSimulation(ocn_integ)
                      +end
                      +
                      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                      +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                      +end
                      +
                      +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                      +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                      +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                      +end

                      This page was generated using Literate.jl.

                      diff --git a/previews/PR340/generated/sea_breeze/run/index.html b/previews/PR340/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..80f812fbf --- /dev/null +++ b/previews/PR340/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                      Coupled Sea Breeze

                      Overview

                      This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                      In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                      import ClimaCore.Spaces as Spaces

                      Model Initialization

                      Component Models

                      Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                      In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                      include("atmos_rhs.jl")
                      +include("ocean_rhs.jl")
                      +include("land_rhs.jl")
                      +
                      +# model parameters
                      +const atm_T_ini = FT(270.0)
                      +const MSLP = FT(1e5)
                      +const grav = FT(9.8)
                      +const R_d = FT(287.058)
                      +const γ = FT(1.4)
                      +const C_p = FT(R_d * γ / (γ - 1))
                      +const C_v = FT(R_d / (γ - 1))
                      +const R_m = R_d
                      +cpl_parameters = (
                      +    # atmos parameters
                      +    atm_μ = FT(0.0001), # diffusion coefficient
                      +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                      +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                      +    MSLP = MSLP, # mean sea level pressure
                      +    grav = grav, # gravitational constant
                      +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                      +    γ = γ, # heat capacity ratio
                      +    C_p = C_p, # heat capacity at constant pressure
                      +    C_v = C_v, # heat capacity at constant volume
                      +    R_m = R_m, # moist R, assumed to be dry
                      +    # land slab parameters
                      +    lnd_h = FT(0.5), # depth of slab layer [m]
                      +    lnd_ρ = FT(1500), # density [kg m^-3]
                      +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                      +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                      +    # ocean slab parameters
                      +    ocn_h = FT(0.5), # depth of slab layer [m]
                      +    ocn_ρ = FT(1025), # density [kg m^-3]
                      +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                      +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                      +    # coupling parameters
                      +    C_H = FT(0.0015),
                      +)
                      +
                      +# DSS callback
                      +function make_dss_func()
                      +    function _dss!(x::Fields.Field)
                      +        Spaces.weighted_dss!(x)
                      +    end
                      +    function _dss!(::Any)
                      +        nothing
                      +    end
                      +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                      +    return dss_func
                      +end
                      +dss_func = make_dss_func()
                      +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                      Initialization

                      The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                      Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                      @info "Init Models and Maps"
                      +
                      +t_start, t_end = (0.0, 1.0)
                      +Δt_coupled = 0.1
                      +saveat = 1e2
                      +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                      +
                      +# Initialize Models
                      +atm_Y_default, atm_bc, atm_domain = atm_init(
                      +    xmin = -500,
                      +    xmax = 500,
                      +    zmin = 0,
                      +    zmax = 1000,
                      +    npoly = 4,
                      +    helem = 20,
                      +    velem = 20,
                      +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                      +)
                      +
                      +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                      +
                      +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                      Remapping

                      Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                      atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                      +
                      +maps = (
                      +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                      +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                      +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                      +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                      +)
                      +
                      +# initialize coupling fields
                      +atm_T_sfc =
                      +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                      +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                      +atm_F_sfc = Fields.zeros(atm_boundary)
                      +ocn_F_sfc = Fields.zeros(ocn_domain)
                      +lnd_F_sfc = Fields.zeros(lnd_domain)

                      Simulations

                      Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                      atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                      +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                      +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                      +
                      +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                      +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                      +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                      +
                      +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                      +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                      +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                      Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                      struct AOLCoupledSimulation{
                      +    A <: AtmosSimulation,
                      +    O <: OceanSimulation,
                      +    L <: LandSimulation,
                      +    C <: ClimaCoupler.CouplerState,
                      +} <: ClimaCoupler.AbstractCoupledSimulation
                      +    # Atmosphere Simulation
                      +    atmos::A
                      +    # Ocean Simulation
                      +    ocean::O
                      +    # Land Simulation
                      +    land::L
                      +    # Coupler storage
                      +    coupler::C
                      +end

                      step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                      function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                      +    Δt = t_stop - sim.integrator.t
                      +    step!(sim.integrator, Δt, true)
                      +end

                      The Coupler

                      The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                      After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                      Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                      Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                      \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                      where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                      coupler = CouplerState(Δt_coupled)
                      +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                      +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                      +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                      +for (name, map) in pairs(maps)
                      +    coupler_add_map!(coupler, name, map)
                      +end
                      +
                      +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                      Coupled Time Integration

                      Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                      Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                      Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                      \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                      where $F_{integ}$ has units of $J m^{-2}$.

                      function cpl_run(simulation::AOLCoupledSimulation)
                      +    @info "Run model"
                      +    @unpack atmos, ocean, land, coupler = simulation
                      +    Δt_coupled = coupler.Δt_coupled
                      +    # coupler stepping
                      +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                      +        # Atmos
                      +        coupler_pull!(atmos, coupler)
                      +        step!(atmos, t)
                      +        coupler_push!(coupler, atmos)
                      +
                      +        # Ocean
                      +        coupler_pull!(ocean, coupler)
                      +        step!(ocean, t)
                      +        coupler_push!(coupler, ocean)
                      +
                      +        # Land
                      +        coupler_pull!(land, coupler)
                      +        step!(land, t)
                      +        coupler_push!(coupler, land)
                      +    end
                      +    @info "Simulation Complete"
                      +end
                      +
                      +# Run simulation
                      +cpl_run(sim)

                      References


                      This page was generated using Literate.jl.

                      diff --git a/previews/PR340/images/canvas_coupler.png b/previews/PR340/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                      F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR340/images/cplsetup.png b/previews/PR340/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR340/index.html b/previews/PR340/index.html new file mode 100644 index 000000000..8989cd2c3 --- /dev/null +++ b/previews/PR340/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                      ClimaCoupler.jl

                      Coupling CliMA Models

                      ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                      • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                      • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                      The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                      Coupler Scheme
                      ClimaCoupler.jl allows for independent development of interchangeable component models.
                      diff --git a/previews/PR340/interfacer/index.html b/previews/PR340/interfacer/index.html new file mode 100644 index 000000000..34bcc8546 --- /dev/null +++ b/previews/PR340/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                      Interfacer

                      This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                      Coupled Simulation

                      • CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                      Component model simulations

                      • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                      • the current version requires that there is:
                        • one AtmosModelSimulation
                        • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                          • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                      Prescribed conditions

                      • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                      get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                      +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                      +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                      +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                      +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                      +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                      with the corresponding update_field! functions

                      function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                      +    sim.cache.area_fraction .= field
                      +end
                      +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                      +    sim.cache.T_sfc .= field
                      +end

                      Interfacer API

                      ClimaCoupler.Interfacer.get_fieldFunction
                      get_field(::SurfaceStub, ::Val)

                      A getter function, that should not allocate. If undefined, it returns a descriptive error.

                      source
                      get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                      Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                      source
                      ClimaCoupler.Interfacer.update_field!Function
                      update_field!(::ComponentModelSimulation, ::Val, _...)

                      No update in unspecified in the particular component model simulation.

                      source
                      update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                      Updates the specified value in the cache of SurfaceStub.

                      source
                      diff --git a/previews/PR340/performance/index.html b/previews/PR340/performance/index.html new file mode 100644 index 000000000..6955ee8b7 --- /dev/null +++ b/previews/PR340/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                      Performance Analysis Tools

                      ClimaCoupler.jl provides basic tools for analyzing performance:

                      1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                      2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                      Flame Graph Interpretation

                      • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                      • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                      canvas

                      • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                      • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                      References

                      diff --git a/previews/PR340/postprocessor/index.html b/previews/PR340/postprocessor/index.html new file mode 100644 index 000000000..888f9a268 --- /dev/null +++ b/previews/PR340/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                      PostProcessor

                      This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                      Diagnostics API

                      ClimaCoupler.PostProcessor.postprocessFunction
                      postprocess(
                      +    name::Symbol,
                      +    raw_data::Union{Fields.Field, Array},
                      +    p_methods::Tuple;
                      +    lev_slice = 1,
                      +    datafile_latlon = nothing,
                      +    nlat = 90,
                      +    nlon = 180,
                      +)

                      Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                      Arguments:

                      • name: [Symbol] variable name
                      • raw_data: [Union{Fields.Field, Array}] variable data
                      • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                      • lev_slice: [Int] level index along which the :horizontal_slice is applied
                      • datafile_latlon: [String] name of the regrid file
                      • nlat: [Int] number of latitudes of the regridded array
                      • nlon: [Symbol] number of longitudes of the regridded array
                      source
                      Missing docstring.

                      Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                      Missing docstring.

                      Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                      ClimaCoupler.PostProcessor.DataPackageType
                      DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                      A container for storing the tyoe, name, data and coordinates of a variable.

                      source

                      Diagnostics Internal Functions

                      diff --git a/previews/PR340/regridder/index.html b/previews/PR340/regridder/index.html new file mode 100644 index 000000000..14e285f33 --- /dev/null +++ b/previews/PR340/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                      Regridder

                      This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                      Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                      Regridder API

                      ClimaCoupler.Regridder.write_to_hdf5Function
                      write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                      Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                      Arguments

                      • REGRID_DIR: [String] directory to save output files in.
                      • hd_outfile_root: [String] root of the output file name.
                      • time: [Dates.DateTime] the timestamp of the data being written.
                      • field: [Fields.Field] object to be written.
                      • varname: [String] variable name of data.
                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                      source
                      ClimaCoupler.Regridder.read_from_hdf5Function
                      read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                      Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                      Arguments

                      • REGRID_DIR: [String] directory to save output files in.
                      • hd_outfile_root: [String] root of the output file name.
                      • time: [Dates.DateTime] the timestamp of the data being written.
                      • varname: [String] variable name of data.
                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                      Returns

                      • Field or FieldVector
                      source
                      ClimaCoupler.Regridder.dummmy_remap!Function
                      dummmy_remap!(target, source)

                      Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                      Arguments

                      • target: [Fields.Field] destination of remapping.
                      • source: [Fields.Field] source of remapping.
                      source
                      ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                      remap_field_cgll_to_rll(
                      +    name,
                      +    field::Fields.Field,
                      +    remap_tmpdir,
                      +    datafile_rll;
                      +    nlat = 90,
                      +    nlon = 180
                      +)

                      Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                      Arguments

                      • name: [Symbol] variable name.
                      • field: [Fields.Field] data to be remapped.
                      • remap_tmpdir: [String] directory used for remapping.
                      • datafile_rll: [String] filename of remapped data output.
                      source
                      ClimaCoupler.Regridder.land_fractionFunction
                      function land_fraction(
                      +    FT,
                      +    REGRID_DIR,
                      +    comms_ctx::ClimaComms.AbstractCommsContext,
                      +    infile,
                      +    varname,
                      +    boundary_space;
                      +    outfile_root = "land_sea_cgll",
                      +    mono = false,
                      +    threshold = 0.7,
                      +)

                      Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                      See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                      Arguments

                      • FT: [DataType] Float type
                      • REGRID_DIR: [String] directory to save output files in.
                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                      • infile: [String] filename containing input data.
                      • varname: [Symbol] variable name.
                      • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                      • outfile_root: [String] root for output file name.
                      • mono: [Bool] flag for monotone remapping.
                      • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                      Returns

                      • Fields.Field
                      source
                      ClimaCoupler.Regridder.update_surface_fractions!Function
                      update_surface_fractions!(cs::CoupledSimulation)

                      Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                      Arguments

                      • cs: [CoupledSimulation] containing area fraction information.
                      source
                      ClimaCoupler.Regridder.combine_surfaces!Function
                      combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                      Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                      Arguments

                      • combined_field: [Fields.Field] output object containing weighted values.
                      • sims: [NamedTuple] containing simulations .
                      • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                      Example

                      • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                      source

                      Regridder Internal Functions

                      ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                      reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                      Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                      Arguments

                      • field: [Fields.Field] object populated with the input array.
                      • in_array: [Array] input used to fill field.
                      • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                      source
                      ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                      hdwrite_regridfile_rll_to_cgll(
                      +    FT,
                      +    REGRID_DIR,
                      +    datafile_rll,
                      +    varname,
                      +    space;
                      +    hd_outfile_root = "data_cgll",
                      +    mono = false,
                      +)

                      Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                      Arguments

                      • FT: [DataType] Float type.
                      • REGRID_DIR: [String] directory to save output files in.
                      • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                      • varname: [String] the name of the variable to be remapped.
                      • space: [Spaces.AbstractSpace] the space to which we are mapping.
                      • hd_outfile_root: [String] root of the output file name.
                      • mono: [Bool] flag to specify monotone remapping.
                      source
                      ClimaCoupler.Regridder.write_datafile_ccFunction
                      write_datafile_cc(datafile_cc, field, name)

                      Write the data stored in field to an NCDataset file datafile_cc.

                      Arguments

                      • datafile_cc: [String] filename of output file.
                      • field: [Fields.Field] to be written to file.
                      • name: [Symbol] variable name.
                      source
                      ClimaCoupler.Regridder.binary_maskFunction
                      binary_mask(var::FT; threshold = 0.5)

                      Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                      Arguments

                      • var: [FT] value to be converted.
                      • threshold: [Float] cutoff value for conversions.
                      source
                      diff --git a/previews/PR340/search/index.html b/previews/PR340/search/index.html new file mode 100644 index 000000000..7bfe21109 --- /dev/null +++ b/previews/PR340/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                      Loading search...

                        diff --git a/previews/PR340/search_index.js b/previews/PR340/search_index.js new file mode 100644 index 000000000..e94acf971 --- /dev/null +++ b/previews/PR340/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing, turbulent_fluxes = FluxCalculator.CombinedAtmosGrid())\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation is not updated by this function.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\nif !(@isdefined parsed_args)\n include(\"cli_options.jl\")\n parsed_args = parse_commandline(argparse_settings())\nend\n\nif isinteractive()\n parsed_args[\"surface_setup\"] = \"PrescribedSurface\" #hide # necessary to stop Atmos from calculating its own surface fluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"parsedargs[\"dtsave_restart\"] = \"5days\" #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" parsed_args[\"job_id\"] = \"interactive_debug_run\"\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nif !(@isdefined FT)\n const FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nend\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\n\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\n\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# import coupler utils\ninclude(\"components/flux_calculator.jl\")\n\n# user-specified diagnostics\ninclude(\"user_io/user_diagnostics.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"components/atmosphere/climaatmos_init.jl\")\natmos_sim = atmos_init(FT, parsed_args);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"components/slab_utils.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/slab_seaice_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation, :toa, :T_sfc),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name == \"slabplanet\" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks =\n (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n parsed_args,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initial-Component-Model-Exchange","page":"AMIP Driver","title":"Initial Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"include(\"temp_fluxer.jl\")\n# share and update model caches\nturbulent_fluxes = CombinedAtmosGrid()\nupdate_surface_fractions!(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import using T_sfc, albedo","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"atmos: calculate Fradiative, tsatmos (, ρ_sfc - if CombinedAtmosGrid())","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_sim!(cs.model_sims.atmos_sim, cs.fields, turbulent_fluxes) # Atmos needs T_sfc (in ts), albedo for rad TODO do we need this?\nstep!(atmos_sim, Δt_cpl) # initiate state (TODO: this should be in the integrator init)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # update for ts (, ρ_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate qsfc (and rhosfc if PartitionedComponentModelGrid) in surface models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\nstep!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate Fturbenergy and Fturbmoisture (and Fturbmomentum) on atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if turbulent_fluxes == CombinedAtmosGrid()\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\n compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # update surface_conditions\nelse\n partition_turbulent_fluxes!(model_sims, fields, boundary_space, surface_scheme, thermo_params)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, fluxes\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate F_radiative on atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit!(atmos_sim)\nstep!(atmos_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update coupler and surface models for radiative fluxes, turbulent fluxes and precipitation","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # update for correct F_radiative\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes) # update for correct F_radiative and F_turb\n\n# reinitialize (TODO: avoid with interfaces)\nreinit_model_sims!(cs.model_sims)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n update_field!(\n ocean_sim,\n Val(:surface_temperature),\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),\n )\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface)) # TODO: change to SIC\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"exchange combined fields and (if specified) calculate fluxes using combined states","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\n compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: computeandsendpartitionedturbulent_fluxes!(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # step to the next calendar month\n if trigger_callback(cs, Monthly())\n cs.dates.date1[1] += Dates.Month(1)\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n isdir(COUPLER_OUTPUT_DIR * \"_artifacts\") ? nothing : mkpath(COUPLER_OUTPUT_DIR * \"_artifacts\")\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_OUTPUT_DIR * \"_artifacts\")\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa = (:regrid, :horizontal_slice),\n precipitation = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n )\n amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_slice,),\n precipitation = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedAtmosGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedComponentModelGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid\n ClimaCoupler.FluxCalculator.CombinedAtmosGrid\n ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","text":"PartitionedComponentModelGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedAtmosGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedAtmosGrid","text":"CombinedAtmosGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","text":"compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","text":"compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR340/siteinfo.js b/previews/PR340/siteinfo.js new file mode 100644 index 000000000..241872ad7 --- /dev/null +++ b/previews/PR340/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR340"; diff --git a/previews/PR340/testhelper/index.html b/previews/PR340/testhelper/index.html new file mode 100644 index 000000000..7f6c9cfe8 --- /dev/null +++ b/previews/PR340/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                        TestHelper

                        This module defines helper functions, objects, and constants to be used by various files in the test folder.

                        TestHelper API

                        ClimaCoupler.TestHelper.create_spaceFunction
                        create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                        +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                        Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                        Arguments

                        • FT: [DataType] Float type
                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                        • R: [FT] radius of the sphere underlying space.
                        • ne: [Integer] number of elements used in the space's mesh.
                        • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                        • nz: [Integer] number of vertical elements
                        source
                        ClimaCoupler.TestHelper.gen_ncdataFunction
                        gen_ncdata(FT, path, varname, val)

                        Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                        Arguments

                        • FT: [DataType] Float type.
                        • path: [String] location to store output datafile.
                        • varname: [Symbol] variable name.
                        • val: [FT] value to store as varname at all indices.
                        source
                        diff --git a/previews/PR340/timemanager/index.html b/previews/PR340/timemanager/index.html new file mode 100644 index 000000000..80a99097a --- /dev/null +++ b/previews/PR340/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                        TimeManager

                        This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                        TimeManager API

                        ClimaCoupler.TimeManager.current_dateFunction
                        current_date(cs::CoupledSimulation, t::Int)

                        Return the model date at the current timestep.

                        Arguments

                        • cs: [CoupledSimulation] containing info about the simulation
                        • t: [Real] number of seconds since simulation began
                        source
                        ClimaCoupler.TimeManager.trigger_callbackFunction
                        trigger_callback(cs, ::Monthly)

                        Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                        Arguments

                        • cs: [CoupledSimulation] containing info about the simulation
                        source
                        Missing docstring.

                        Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                        diff --git a/previews/PR340/timestepping/index.html b/previews/PR340/timestepping/index.html new file mode 100644 index 000000000..8441edba3 --- /dev/null +++ b/previews/PR340/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                        Coupled Simulations & Timestepping

                        ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                        Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                        • step!: advances the component model in time
                        • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                        • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                        ClimaCoupler.run!Function
                        run!(::CoupledSimulation)

                        A simple outer timestepping loop for coupled system runs.

                        This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                        source
                        ClimaCoupler.step!Function
                        step!(sim, dt)

                        Advances a simulation sim by dt.

                        Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                        source
                        ClimaCoupler.coupler_push!Function
                        coupler_push!(coupler::CouplerState, model)

                        Update coupler with fields retrieved from the coupler.

                        coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                        source
                        ClimaCoupler.coupler_pull!Function
                        coupler_pull!(model, coupler::CouplerState)

                        Update model with fields retrieved from the coupler.

                        coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                        source
                        diff --git a/previews/PR340/utilities/index.html b/previews/PR340/utilities/index.html new file mode 100644 index 000000000..c17ccd3d5 --- /dev/null +++ b/previews/PR340/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                        Utilities

                        This module contains functions, objects, and constants used by various modules in the coupler.

                        Utilities API

                        Missing docstring.

                        Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                        ClimaCoupler.Utilities.swap_space!Function
                        swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                        Remap the values of a field onto a new space.

                        Arguments

                        • field_in: [Fields.Field] to be remapped to new space.
                        • field_out: [Fields.Field] to remap field_in to.
                        source
                        diff --git a/previews/PR362/assets/documenter.js b/previews/PR362/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR362/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR362/assets/logo.svg b/previews/PR362/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR362/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR362/assets/search.js b/previews/PR362/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR362/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                      • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR362/assets/themes/documenter-dark.css b/previews/PR362/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR362/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR362/assets/themes/documenter-light.css b/previews/PR362/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR362/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR362/assets/themeswap.js b/previews/PR362/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR362/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR362/assets/warner.js b/previews/PR362/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR362/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                        Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR362/bcreader/index.html b/previews/PR362/bcreader/index.html new file mode 100644 index 000000000..7551865ec --- /dev/null +++ b/previews/PR362/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                        BCReader

                        This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                        BCReader API

                        ClimaCoupler.BCReader.BCFileInfoType
                        BCFileInfo

                        Stores information specific to each boundary condition from a file and each variable.

                        Inputs:

                        • bcfile_dir::b # directory of the BC file
                        • comms_ctx::X # communication context used for MPI
                        • hdoutfileroot::S # filename root for regridded data
                        • varname::V # name of the variable
                        • all_dates::D # vector of all dates contained in the original data file
                        • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                        • scaling_function::O # function that scales, offsets or transforms the raw variable
                        • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                        • segment_idx::Vector{Int} # index of the monthly data in the file
                        • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                        • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                        • interpolate_daily::Bool # switch to trigger daily interpolation
                        source
                        ClimaCoupler.BCReader.bcfile_info_initFunction
                        bcfile_info_init(
                        +    FT,
                        +    bcfile_dir,
                        +    datafile_rll,
                        +    varname,
                        +    boundary_space,
                        +    comms_ctx;
                        +    interpolate_daily = false,
                        +    segment_idx0 = nothing,
                        +    scaling_function = no_scaling,
                        +    land_fraction = nothing,
                        +    date0 = nothing,
                        +    mono = true,
                        +)

                        Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                        Arguments

                        • FT: [DataType] Float type.
                        • bcfile_dir: [String] directory the BC file is stored in.
                        • datafile_rll: [String] file containing data to regrid.
                        • varname: [String] name of the variable to be regridded.
                        • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                        • interpolate_daily: [Bool] switch to trigger daily interpolation.
                        • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                        • scaling function: [Function] scales, offsets or transforms varname.
                        • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                        • date0: [Dates.DateTime] start date of the file data.
                        • mono: [Bool] flag for monotone remapping of datafile_rll.

                        Returns

                        • BCFileInfo
                        source
                        ClimaCoupler.BCReader.update_midmonth_data!Function
                        update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                        Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                        Arguments

                        • date: [Dates.DateTime] start date for data.
                        • bcf_info: [BCFileInfo] containing boundary condition data.
                        source
                        ClimaCoupler.BCReader.next_date_in_fileFunction
                        next_date_in_file(bcf_info)

                        Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                        Arguments

                        • bcf_info: [BCFileInfo] containing the date information.

                        Returns

                        • Dates.DateTime
                        source
                        ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                        interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                        Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                        Arguments

                        • date: [Dates.DateTime] start date for data.
                        • bcf_info: [BCFileInfo] contains fields to be interpolated.

                        Returns

                        • Fields.field
                        source

                        BCReader Internal Functions

                        ClimaCoupler.BCReader.no_scalingFunction
                        no_scaling(field, bcf_info)

                        Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                        Arguments

                        • field: [Fields.Field] contains the values to be remapped.
                        • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                        source
                        ClimaCoupler.BCReader.interpolFunction
                        interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                        Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                        Arguments

                        • f1: [FT] first value to be interpolated (f(t1) = f1).
                        • f2: [FT] second value to be interpolated.
                        • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                        • Δt_t2t1: [FT] time between t1 and t2.

                        Returns

                        • FT
                        source
                        diff --git a/previews/PR362/conservation/index.html b/previews/PR362/conservation/index.html new file mode 100644 index 000000000..60d3e7fdf --- /dev/null +++ b/previews/PR362/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                        Conservation Checks

                        If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                        Only energy and water are currently implemented.

                        Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                        Coupler Object API

                        ClimaCoupler.ConservationChecker.check_conservation!Function
                        check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                        itertes over all specified conservation checks.

                        source
                            check_conservation!(
                        +    cc::EnergyConservationCheck,
                        +    coupler_sim,
                        +    get_slab_energy,
                        +    get_land_energy,
                        +    )

                        computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                        TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                        source
                        check_conservation!(
                        +cc::WaterConservationCheck,
                        +coupler_sim,
                        +get_slab_energy,
                        +get_land_energy,
                        +)

                        computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                        Note: in the future this should not use push!.

                        source
                        ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                        plot_global_conservation(
                        +    cc::EnergyConservationCheck,
                        +    coupler_sim::CoupledSimulation;
                        +    figname1 = "total_energy.png",
                        +    figname2 = "total_energy_log.png",
                        +)

                        Creates two plots of the globally integrated quantity (energy, $\rho e$):

                        1. global quantity of each model component as a function of time,

                        relative to the initial value;

                        1. fractional change in the sum of all components over time on a log scale.
                        source
                        plot_global_conservation(
                        +    cc::WaterConservationCheck,
                        +    coupler_sim::CoupledSimulation;
                        +    figname1 = "total_energy.png",
                        +    figname2 = "total_energy_log.png",
                        +)

                        Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                        1. global quantity of each model component as a function of time,

                        relative to the initial value;

                        1. fractional change in the sum of all components over time on a log scale.
                        source
                        diff --git a/previews/PR362/couplerstate/index.html b/previews/PR362/couplerstate/index.html new file mode 100644 index 000000000..498ea2fc9 --- /dev/null +++ b/previews/PR362/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                        Coupler State

                        The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                        The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                        Coupler Object API

                        ClimaCoupler.CouplerStateType
                        CouplerState()

                        Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                        A field is exported by one component and imported by one or more other components.

                        source
                        ClimaCoupler.coupler_add_field!Function
                        coupler_add_field!(
                        +        coupler::CouplerState,
                        +        fieldname::Symbol,
                        +        fieldvalue,
                        +    )

                        Add a field to the coupler that is accessible with key fieldname.

                        Arguments

                        • coupler: coupler object the field is added to.
                        • fieldname: key to access the field in the coupler.
                        • fieldvalue: data array of field values.
                        source
                        ClimaCoupler.coupler_getFunction
                        coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                        Retrieve data array corresponding to fieldname.

                        If a target_sim is passed, the field is remapped to that simulation's boundary space.

                        source
                        diff --git a/previews/PR362/diagnostics/index.html b/previews/PR362/diagnostics/index.html new file mode 100644 index 000000000..f4cf57e91 --- /dev/null +++ b/previews/PR362/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                        Diagnostics

                        This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                        Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                        Diagnostics API

                        Missing docstring.

                        Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                        ClimaCoupler.Diagnostics.get_varFunction
                        get_var(cs::CoupledSimulation, x)

                        Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                        Example:

                        getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                        source
                        ClimaCoupler.Diagnostics.save_diagnosticsFunction
                        save_diagnostics(cs::CoupledSimulation)
                        +
                        +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                        Saves all entries in dg in separate HDF5 files per variable in output_dir.

                        source

                        Diagnostics Internal Functions

                        Missing docstring.

                        Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                        ClimaCoupler.Diagnostics.operationFunction
                        operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                        Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                        source
                        operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                        Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                        source
                        ClimaCoupler.Diagnostics.pre_saveFunction
                        pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                        Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                        source
                        pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                        Collects variables and performs all specified operations before saving the snapshot diagnostics.

                        source
                        diff --git a/previews/PR362/fieldexchanger/index.html b/previews/PR362/fieldexchanger/index.html new file mode 100644 index 000000000..ee09c50b2 --- /dev/null +++ b/previews/PR362/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                        FieldExchanger

                        This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                        The FieldExchanger needs to populate the coupler with

                        • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                        • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                        The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                        • AtmosModelSimulation: albedo, surface_temperature
                          • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                        • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                        If an update_field! function is not defined for a particular component model, it will be ignored.

                        Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                        FieldExchanger API

                        ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                        import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                        Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                        Arguments

                        • csf: [NamedTuple] containing coupler fields.
                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                        • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                        source
                        ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                        import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                        Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                        Arguments

                        • csf: [NamedTuple] containing coupler fields.
                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                        • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                        source
                        ClimaCoupler.FieldExchanger.update_model_sims!Function
                        update_model_sims!(model_sims, csf, turbulent_fluxes)

                        Iterates update_sim! over all component model simulations saved in cs.model_sims.

                        Arguments

                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                        • csf: [NamedTuple] containing coupler fields.
                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                        source
                        ClimaCoupler.FieldExchanger.update_sim!Function
                        update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                        Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                        Arguments

                        • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                        • csf: [NamedTuple] containing coupler fields.
                        source
                        update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                        Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                        Arguments

                        • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                        • csf: [NamedTuple] containing coupler fields.
                        source
                        update_sim!(::SurfaceStub, csf, area_fraction)

                        The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                        source
                        ClimaCoupler.FieldExchanger.step_model_sims!Function
                        step_model_sims!(model_sims, t)

                        Iterates step! over all component model simulations saved in cs.model_sims.

                        Arguments

                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                        • t: [AbstractFloat] denoting the simulation time.
                        source

                        FieldExchanger Internal Functions

                        CommonSolve.step!Function
                        step!(::SurfaceStub, t)

                        The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                        source
                        SciMLBase.reinit!Function
                        reinit!(cs::SurfaceStub)

                        The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                        source
                        diff --git a/previews/PR362/fluxcalculator/index.html b/previews/PR362/fluxcalculator/index.html new file mode 100644 index 000000000..7bceed449 --- /dev/null +++ b/previews/PR362/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                        FluxCalculator

                        This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                        Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                        1. Combined fluxes (called with CombinedAtmosGrid())
                        • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                        1. Partitioned fluxes (called with PartitionedComponentModelGrid())
                        • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)

                        FluxCalculator API

                        ClimaCoupler.FluxCalculator.CombinedAtmosGridType
                        CombinedAtmosGrid <: TurbulentFluxPartition

                        A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                        source
                        ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!Function
                        compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                        Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                        Arguments

                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                        • csf: [NamedTuple] containing coupler fields.
                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                        source
                        ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!Function
                        compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                        A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                        Arguments

                        • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                        • csf: [NamedTuple] containing coupler fields.

                        Example:

                        function compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                        +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                        +end
                        source
                        diff --git a/previews/PR362/generated/amip/coupler_driver_modular/index.html b/previews/PR362/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..cfc3becb4 --- /dev/null +++ b/previews/PR362/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,427 @@ + +AMIP Driver · ClimaCoupler.jl

                        AMIP Driver

                        Overview

                        AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                        • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                        • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                        For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                        This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                        Start Up

                        Before starting Julia, ensure your environment is properly set up:

                        module purge
                        +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                        +
                        +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                        +export JUlIA_MPI_BINARY="system"
                        +export JULIA_HDF5_PATH=""

                        Next instantiate/build all packages listed in Manifest.toml:

                        julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                        +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                        The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                        julia --project --threads 8

                        Initialization

                        Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                        import SciMLBase: step!, reinit!
                        +using OrdinaryDiffEq
                        +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                        +using LinearAlgebra
                        +import Test: @test
                        +using Dates
                        +using UnPack
                        +using Plots
                        +using Statistics: mean
                        +
                        +using ClimaCore.Utilities: half, PlusHalf
                        +using ClimaCore: InputOutput, Fields
                        +import ClimaCore.Spaces as Spaces
                        +
                        +if !(@isdefined parsed_args)
                        +    include("cli_options.jl")
                        +    parsed_args = parse_commandline(argparse_settings())
                        +end
                        +
                        +if isinteractive()
                        +    parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes

                        parsedargs["dtsave_restart"] = "5days" #hide

                            parsed_args["job_id"] = "interactive_debug_run"
                        +end
                        +
                        +# read in some parsed command line arguments
                        +mode_name = parsed_args["mode_name"]
                        +run_name = parsed_args["run_name"]
                        +energy_check = parsed_args["energy_check"]
                        +if !(@isdefined FT)
                        +    const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                        +end
                        +land_sim_name = "bucket"
                        +t_end = Int(time_to_seconds(parsed_args["t_end"]))
                        +tspan = (Int(0), t_end)
                        +Δt_cpl = Int(parsed_args["dt_cpl"])
                        +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                        +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                        +mono_surface = parsed_args["mono_surface"]
                        +
                        +import ClimaCoupler
                        +import ClimaCoupler.Regridder
                        +import ClimaCoupler.Regridder:
                        +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                        +import ClimaCoupler.ConservationChecker:
                        +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                        +import ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!
                        +import ClimaCoupler.BCReader:
                        +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                        +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                        +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                        +import ClimaCoupler.PostProcessor: postprocess
                        +
                        +import ClimaCoupler.Interfacer:
                        +    AtmosModelSimulation,
                        +    SurfaceModelSimulation,
                        +    SurfaceStub,
                        +    SeaIceModelSimulation,
                        +    LandModelSimulation,
                        +    OceanModelSimulation,
                        +    get_field,
                        +    update_field!,
                        +    update_sim!
                        +import ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!
                        +import ClimaCoupler.FieldExchanger:
                        +    import_atmos_fields!,
                        +    import_combined_surface_fields!,
                        +    update_sim!,
                        +    update_model_sims!,
                        +    reinit_model_sims!,
                        +    step_model_sims!
                        +
                        +pkg_dir = pkgdir(ClimaCoupler)
                        +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                        +mkpath(COUPLER_OUTPUT_DIR)
                        +
                        +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                        +mkpath(REGRID_DIR)
                        +
                        +@info COUPLER_OUTPUT_DIR
                        +@info parsed_args
                        +
                        +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration
                        +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                        +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                        +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                        +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                        +
                        +# user-specified diagnostics
                        +include("user_io/user_diagnostics.jl")

                        Component Model Initialization

                        Here we set initial and boundary conditions for each component model.

                        Atmosphere

                        This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                        # init atmos model component
                        +include("components/atmosphere/climaatmos_init.jl")
                        +atmos_sim = atmos_init(FT, parsed_args);
                        +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                        We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                        # init a 2D bounary space at the surface
                        +boundary_space = atmos_sim.domain.face_space.horizontal_space

                        init land-sea fraction

                        land_fraction =
                        +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)
                        +
                        +# init surface (slab) model components
                        +include("components/slab_utils.jl")
                        +include("components/land/bucket_init.jl")
                        +include("components/land/bucket_utils.jl")
                        +include("components/ocean/slab_ocean_init.jl")
                        +include("components/ocean/slab_seaice_init.jl")

                        Land

                        We use ClimaLSM.jl's bucket model.

                        land_sim = bucket_init(
                        +    FT,
                        +    FT.(tspan),
                        +    parsed_args["config"],
                        +    parsed_args["albedo_from_file"],
                        +    comms_ctx,
                        +    REGRID_DIR;
                        +    dt = FT(Δt_cpl),
                        +    space = boundary_space,
                        +    saveat = FT(saveat),
                        +    area_fraction = land_fraction,
                        +)

                        Ocean and Sea Ice

                        In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                        In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                        @info mode_name
                        +if mode_name == "amip"
                        +    @info "AMIP boundary conditions - do not expect energy conservation"
                        +
                        +    # ocean
                        +    SST_info = bcfile_info_init(
                        +        FT,
                        +        REGRID_DIR,
                        +        sst_data,
                        +        "SST",
                        +        boundary_space,
                        +        comms_ctx,
                        +        interpolate_daily = true,
                        +        scaling_function = clean_sst, ## convert to Kelvin
                        +        land_fraction = land_fraction,
                        +        date0 = date0,
                        +        mono = mono_surface,
                        +    )
                        +
                        +    update_midmonth_data!(date0, SST_info)
                        +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                        +    ocean_sim = SurfaceStub((;
                        +        T_sfc = SST_init,
                        +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                        +        z0m = FT(1e-3),
                        +        z0b = FT(1e-3),
                        +        beta = FT(1),
                        +        α = FT(0.06),
                        +        area_fraction = (FT(1) .- land_fraction),
                        +        phase = TD.Liquid(),
                        +        thermo_params = thermo_params,
                        +    ))
                        +    # sea ice
                        +    SIC_info = bcfile_info_init(
                        +        FT,
                        +        REGRID_DIR,
                        +        sic_data,
                        +        "SEAICE",
                        +        boundary_space,
                        +        comms_ctx,
                        +        interpolate_daily = true,
                        +        scaling_function = clean_sic, ## convert to fraction
                        +        land_fraction = land_fraction,
                        +        date0 = date0,
                        +        mono = mono_surface,
                        +    )
                        +    update_midmonth_data!(date0, SIC_info)
                        +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                        +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                        +    ice_sim = ice_init(
                        +        FT;
                        +        tspan = tspan,
                        +        dt = Δt_cpl,
                        +        space = boundary_space,
                        +        saveat = saveat,
                        +        area_fraction = ice_fraction,
                        +        thermo_params = thermo_params,
                        +    )
                        +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                        +
                        +elseif mode_name == "slabplanet"
                        +    # ocean
                        +    ocean_sim = ocean_init(
                        +        FT;
                        +        tspan = tspan,
                        +        dt = Δt_cpl,
                        +        space = boundary_space,
                        +        saveat = saveat,
                        +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                        +        thermo_params = thermo_params,
                        +    )
                        +
                        +    # sea ice (here set to zero area coverage)
                        +    ice_sim = SurfaceStub((;
                        +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                        +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                        +        z0m = FT(0),
                        +        z0b = FT(0),
                        +        beta = FT(1),
                        +        α = FT(1),
                        +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                        +        phase = TD.Ice(),
                        +        thermo_params = thermo_params,
                        +    ))
                        +
                        +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                        +end

                        Coupler Initialization

                        The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                        # coupler exchange fields
                        +coupler_field_names = (
                        +    :T_S,
                        +    :z0m_S,
                        +    :z0b_S,
                        +    :ρ_sfc,
                        +    :q_sfc,
                        +    :albedo,
                        +    :beta,
                        +    :F_turb_energy,
                        +    :F_turb_moisture,
                        +    :F_radiative,
                        +    :P_liq,
                        +    :P_snow,
                        +    :F_radiative_TOA,
                        +    :P_net,
                        +)
                        +coupler_fields =
                        +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                        +
                        +# model simulations
                        +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                        +
                        +# dates
                        +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                        Online Diagnostics

                        User can write custom diagnostics in the user_diagnostics.jl.

                        monthly_3d_diags = init_diagnostics(
                        +    (:T, :u, :q_tot),
                        +    atmos_sim.domain.center_space;
                        +    save = Monthly(),
                        +    operations = (; accumulate = TimeMean([Int(0)])),
                        +    output_dir = COUPLER_OUTPUT_DIR,
                        +    name_tag = "monthly_mean_3d_",
                        +)
                        +
                        +monthly_2d_diags = init_diagnostics(
                        +    (:precipitation, :toa, :T_sfc),
                        +    boundary_space;
                        +    save = Monthly(),
                        +    operations = (; accumulate = TimeMean([Int(0)])),
                        +    output_dir = COUPLER_OUTPUT_DIR,
                        +    name_tag = "monthly_mean_2d_",
                        +)
                        +
                        +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                        Initialize Conservation Checks

                        # init conservation info collector
                        +conservation_checks = nothing
                        +if energy_check
                        +    @assert(
                        +        mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),
                        +        "Only non-distributed slabplanet allowable for energy_check"
                        +    )
                        +    conservation_checks =
                        +        (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))
                        +end
                        +
                        +# coupler simulation
                        +cs = CoupledSimulation{FT}(
                        +    comms_ctx,
                        +    dates,
                        +    boundary_space,
                        +    coupler_fields,
                        +    parsed_args,
                        +    conservation_checks,
                        +    [tspan[1], tspan[2]],
                        +    atmos_sim.integrator.t,
                        +    Δt_cpl,
                        +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                        +    model_sims,
                        +    mode_specifics,
                        +    diagnostics,
                        +);

                        Initialize Component Model Exchange

                        turbulent_fluxes = CombinedAtmosGrid()
                        1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                        update_surface_fractions!(cs)
                        +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                        +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                        +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                        1. each component model calculates its own vapor specific humidity (q_sfc)

                        TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                        step!(land_sim, Δt_cpl)
                        +step!(ocean_sim, Δt_cpl)
                        +step!(ice_sim, Δt_cpl)
                        1. coupler re-imports updated surface fields and calculates turbulent fluxes on the atmos grid, while updating atmos sfc_conditions
                        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                        +compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)
                        1. given the new sfc_conditions, atmos calls the radiative flux callback
                        reinit!(atmos_sim) # sets a nonzero radiation flux
                        1. coupler re-imports updated atmos fluxes, and sends them to surface models
                        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                        +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                        Coupling Loop

                        function solve_coupler!(cs)
                        +    @info "Starting coupling loop"
                        +
                        +    @unpack model_sims, Δt_cpl, tspan = cs
                        +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                        +
                        +    # step in time
                        +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                        +
                        +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                        +
                        +        # print date on the first of month
                        +        if cs.dates.date[1] >= cs.dates.date1[1]
                        +            @show(cs.dates.date[1])
                        +        end
                        +
                        +        if cs.mode.name == "amip"
                        +
                        +            # monthly read of boundary condition data for SST and SIC
                        +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                        +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                        +            end
                        +            update_field!(
                        +                ocean_sim,
                        +                Val(:surface_temperature),
                        +                interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),
                        +            )
                        +
                        +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                        +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                        +            end
                        +            interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                        +            update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface))  # TODO: change to SIC
                        +
                        +            # calculate and accumulate diagnostics at each timestep
                        +            ClimaComms.barrier(comms_ctx)
                        +            accumulate_diagnostics!(cs)
                        +
                        +            # save and reset monthly averages
                        +            save_diagnostics(cs)
                        +
                        +        end
                        +
                        +        # compute global energy
                        +        !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing
                        +
                        +        # run component models sequentially for one coupling timestep (Δt_cpl)
                        +        ClimaComms.barrier(comms_ctx)
                        +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                        +
                        +        # step sims
                        +        step_model_sims!(cs.model_sims, t)

                        exchange combined fields and (if specified) calculate fluxes using combined states

                                update_surface_fractions!(cs)
                        +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                        +        compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)
                        +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent

                        TODO: computeandsendpartitionedturbulent_fluxes!(cs)

                                # step to the next calendar month
                        +        if trigger_callback(cs, Monthly())
                        +            cs.dates.date1[1] += Dates.Month(1)
                        +        end
                        +
                        +    end
                        +    @show walltime
                        +
                        +    return cs
                        +end
                        +
                        +
                        +# run the coupled simulation
                        +solve_coupler!(cs);

                        Postprocessing

                        Currently all postprocessing is performed using the root process only.

                        if ClimaComms.iamroot(comms_ctx)
                        +    isdir(COUPLER_OUTPUT_DIR * "_artifacts") ? nothing : mkpath(COUPLER_OUTPUT_DIR * "_artifacts")
                        +
                        +    # energy check plots
                        +    if !isnothing(cs.conservation_checks) && cs.mode.name == "slabplanet"
                        +        @info "Conservation Check Plots"
                        +        plot_global_conservation(
                        +            cs.conservation_checks.energy,
                        +            cs,
                        +            figname1 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_bucket.png"),
                        +            figname2 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_energy_log_bucket.png"),
                        +        )
                        +        plot_global_conservation(
                        +            cs.conservation_checks.water,
                        +            cs,
                        +            figname1 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_water_bucket.png"),
                        +            figname2 = joinpath(COUPLER_OUTPUT_DIR * "_artifacts", "total_water_log_bucket.png"),
                        +        )
                        +    end
                        +
                        +    # sample animations
                        +    if !is_distributed && parsed_args["anim"]
                        +        @info "Animations"
                        +        include("user_io/viz_explorer.jl")
                        +        plot_anim(cs, COUPLER_OUTPUT_DIR * "_artifacts")
                        +    end
                        +
                        +    # plotting AMIP results
                        +    if cs.mode.name == "amip"
                        +        @info "AMIP plots"
                        +
                        +        # ClimaESM
                        +        include("user_io/amip_visualizer.jl")
                        +        post_spec = (;
                        +            T = (:regrid, :zonal_mean),
                        +            u = (:regrid, :zonal_mean),
                        +            q_tot = (:regrid, :zonal_mean),
                        +            toa = (:regrid, :horizontal_slice),
                        +            precipitation = (:regrid, :horizontal_slice),
                        +            T_sfc = (:regrid, :horizontal_slice),
                        +        )
                        +
                        +        plot_spec = (;
                        +            T = (; clims = (190, 320), units = "K"),
                        +            u = (; clims = (-50, 50), units = "m/s"),
                        +            q_tot = (; clims = (0, 50), units = "g/kg"),
                        +            toa = (; clims = (-250, 210), units = "W/m^2"),
                        +            precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                        +            T_sfc = (clims = (225, 310), units = "K"),
                        +        )
                        +        amip_paperplots(
                        +            post_spec,
                        +            plot_spec,
                        +            COUPLER_OUTPUT_DIR,
                        +            files_root = ".monthly",
                        +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                        +        )
                        +
                        +        # NCEP reanalysis
                        +        @info "NCEP plots"
                        +        include("user_io/ncep_visualizer.jl")
                        +        ncep_post_spec = (;
                        +            T = (:zonal_mean,),
                        +            u = (:zonal_mean,),
                        +            q_tot = (:zonal_mean,),
                        +            toa = (:horizontal_slice,),
                        +            precipitation = (:horizontal_slice,),
                        +            T_sfc = (:horizontal_slice,),
                        +        )
                        +        ncep_plot_spec = plot_spec
                        +        ncep_paperplots(
                        +            ncep_post_spec,
                        +            ncep_plot_spec,
                        +            COUPLER_OUTPUT_DIR,
                        +            output_dir = COUPLER_OUTPUT_DIR * "_artifacts",
                        +            month_date = cs.dates.date[1],
                        +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                        +    end
                        +
                        +    # clean up
                        +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                        +end

                        This page was generated using Literate.jl.

                        diff --git a/previews/PR362/generated/sea_breeze/atmos_rhs/index.html b/previews/PR362/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..f431b680c --- /dev/null +++ b/previews/PR362/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                        Atmospheric Model

                        Atmosphere Conservation Equations

                        Density:

                        \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                        Momentum (flux form):

                        \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                        Potential temperature:

                        \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                        Total Energy (possibly replace potential temperature equation with total energy conservation):

                        \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                        where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                        Tracer transport:

                        \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                        Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                        \[\rho\tau = -2\rho\nu\nabla u.\]

                        Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                        \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                        with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                        Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                        Consider components of the viscous stress tensor in three dimensions:

                        \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                        Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                        \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                        Which can be interpreted as, for horizontal-momentum:

                        1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                        2. Vertical divergence of vertical gradients of cell-centered variables $u$
                        3. Vertical divergence of horizontal gradients of cell-face variables $w$

                        and for vertical-momentum, as:

                        1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                        2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                        3. Vertical divergence of vertical gradients of cell-face variables $w$.

                        Model Code

                        push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                        +
                        +using Test
                        +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                        +
                        +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                        +using ClimaCore.Geometry
                        +using ClimaCore.Utilities: PlusHalf
                        +
                        +using Logging: global_logger
                        +using TerminalLoggers: TerminalLogger
                        +global_logger(TerminalLogger())
                        +
                        +using ClimaCoupler
                        +
                        +# set up function space
                        +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                        +    FT = Float64
                        +    vertdomain = Domains.IntervalDomain(
                        +        Geometry.ZPoint{FT}(zlim[1]),
                        +        Geometry.ZPoint{FT}(zlim[2]);
                        +        boundary_tags = (:bottom, :top),
                        +    )
                        +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                        +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                        +
                        +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                        +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                        +    horztopology = Topologies.IntervalTopology(horzmesh)
                        +
                        +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                        +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                        +
                        +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                        +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                        +    return (hv_center_space, hv_face_space)
                        +end
                        +
                        +function pressure(ρθ)
                        +    if ρθ >= 0
                        +        return MSLP * (R_d * ρθ / MSLP)^γ
                        +    else
                        +        return NaN
                        +    end
                        +end
                        +
                        +Φ(z) = grav * z
                        +
                        +abstract type BCtag end
                        +struct ZeroFlux <: BCtag end
                        +
                        +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                        +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                        +
                        +function init_sea_breeze_2d(x, z)
                        +    θ₀ = atm_T_ini
                        +    cp_d = C_p
                        +    cv_d = C_v
                        +    p₀ = MSLP
                        +    g = grav
                        +    γ = cp_d / cv_d
                        +    z_c = 100.0
                        +    θ_b = atm_T_ini
                        +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                        +    θ = θ_b + θ_p # potential temperature
                        +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                        +    T = π_exn * θ # temperature
                        +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                        +    ρ = p / R_d / T # density
                        +    ρθ = ρ * θ # potential temperature density
                        +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                        +end
                        +
                        +function atm_rhs!(dY, Y, params, t)
                        +    ρw = Y.ρw
                        +    Yc = Y.Yc
                        +    dYc = dY.Yc
                        +    dρw = dY.ρw
                        +
                        +    center_coords = Fields.coordinate_field(axes(Yc))
                        +
                        +    # spectral horizontal operators
                        +    hdiv = Operators.Divergence()
                        +    hgrad = Operators.Gradient()
                        +    hwdiv = Operators.WeakDivergence()
                        +    hwgrad = Operators.WeakGradient()
                        +
                        +    # vertical FD operators with BC's
                        +    vdivf2c = Operators.DivergenceF2C(
                        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                        +        top = Operators.SetValue(Geometry.WVector(0.0)),
                        +    )
                        +    vvdivc2f = Operators.DivergenceC2F(
                        +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                        +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                        +    )
                        +    uvdivf2c = Operators.DivergenceF2C(
                        +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                        +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                        +    )
                        +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                        +    Ic = Operators.InterpolateF2C()
                        +    ∂ = Operators.DivergenceF2C(
                        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                        +        top = Operators.SetValue(Geometry.WVector(0.0)),
                        +    )
                        +    ∂f = Operators.GradientC2F()
                        +    ∂c = Operators.GradientF2C()
                        +    B = Operators.SetBoundaryOperator(
                        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                        +        top = Operators.SetValue(Geometry.WVector(0.0)),
                        +    )
                        +
                        +    ∇_z_ρθ = Operators.DivergenceF2C(
                        +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                        +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                        +    )
                        +
                        +    uₕ = @. Yc.ρuₕ / Yc.ρ
                        +    w = @. ρw / If(Yc.ρ)
                        +    wc = @. Ic(ρw) / Yc.ρ
                        +    p = @. pressure(Yc.ρθ)
                        +    θ = @. Yc.ρθ / Yc.ρ
                        +    Yfρ = @. If(Yc.ρ)
                        +
                        +    ### HYPERVISCOSITY
                        +    # 1) compute hyperviscosity coefficients
                        +    @. dYc.ρθ = hwdiv(hgrad(θ))
                        +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                        +    @. dρw = hwdiv(hgrad(w))
                        +    Spaces.weighted_dss!(dYc)
                        +    Spaces.weighted_dss!(dρw)
                        +
                        +    κ₄ = 0.0 # m^4/s
                        +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                        +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                        +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                        +
                        +    # density
                        +    @. dYc.ρ = -∂(ρw)
                        +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                        +
                        +    # potential temperature
                        +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                        +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                        +
                        +    # horizontal momentum
                        +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                        +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                        +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                        +
                        +    # vertical momentum
                        +    @. dρw +=
                        +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                        +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                        +    @. dρw -= hdiv(uₕf ⊗ ρw)
                        +
                        +    # DIFFUSION
                        +    κ₂ = 5.0 # m^2/s
                        +    #  1a) horizontal div of horizontal grad of horiz momentun
                        +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                        +    #  1b) vertical div of vertical grad of horiz momentun
                        +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                        +
                        +    #  1c) horizontal div of horizontal grad of vert momentum
                        +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                        +    #  1d) vertical div of vertical grad of vert momentun
                        +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                        +
                        +    #  2a) horizontal div of horizontal grad of potential temperature
                        +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                        +    #  2b) vertical div of vertial grad of potential temperature
                        +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                        +
                        +    Spaces.weighted_dss!(dYc)
                        +    Spaces.weighted_dss!(dρw)
                        +    return dY
                        +end
                        +
                        +# init simulation
                        +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                        +
                        +    # construct domain spaces
                        +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                        +    center_coords = Fields.coordinate_field(hv_center_space)
                        +    face_coords = Fields.coordinate_field(hv_face_space)
                        +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                        +
                        +    # initialize prognostic variables
                        +    Yc = map(center_coords) do coord
                        +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                        +        sea_breeze
                        +    end
                        +
                        +    ρw = map(face_coords) do coord
                        +        Geometry.WVector(0.0)
                        +    end
                        +
                        +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                        +
                        +    # select boundary conditions
                        +    if bc === nothing
                        +        bc = (
                        +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                        +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                        +        )
                        +    end
                        +
                        +    return Y, bc, domain
                        +end
                        +
                        +using OrdinaryDiffEq
                        +function atm_run!(Y, bc, domain)
                        +    dYdt = similar(Y)
                        +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                        +    atm_rhs!(dYdt, Y, params, 0.0)
                        +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                        +    Δt = 0.025
                        +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                        +end

                        Coupled Atmos Wrappers

                        # Atmos Simulation - later to live in ClimaAtmos
                        +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                        +    integrator::Any
                        +end
                        +
                        +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                        +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                        +
                        +    atm_integ = init(
                        +        atm_prob,
                        +        timestepper,
                        +        dt = dt,
                        +        saveat = saveat,
                        +        progress = true,
                        +        progress_message = (dt, u, params, t) -> t,
                        +        callback = callbacks,
                        +    )
                        +
                        +    return AtmosSimulation(atm_integ)
                        +end
                        +
                        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                        +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                        +end
                        +
                        +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                        +    # reset flux accumulator
                        +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                        +
                        +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                        +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                        +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                        +end

                        Coupled Boundary Conditions

                        The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                        To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                        struct CoupledFlux <: BCtag end
                        +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                        +    # flux calculation
                        +    Yc = Y.Yc
                        +    uₕ = Yc.ρuₕ ./ Yc.ρ
                        +    ρw = Y.ρw
                        +    If2c = Operators.InterpolateF2C()
                        +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                        +    w = If2c.(ρw) ./ Yc.ρ
                        +    cuv = @. Geometry.UWVector(uₕ)
                        +    windspeed = @. norm(cuv)
                        +    windspeed_boundary = Fields.level(windspeed, 1)
                        +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                        +    ρ_boundary = Fields.level(Yc.ρ, 1)
                        +
                        +    # build atmos face fields on surface boundary space to enable broadcasting
                        +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                        +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                        +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                        +
                        +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                        +    dθ = @. θ_boundary - p.T_sfc
                        +    heat_flux = @. -λ * dθ
                        +    @. dY.F_sfc += heat_flux # accumulation
                        +
                        +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                        +end

                        This page was generated using Literate.jl.

                        diff --git a/previews/PR362/generated/sea_breeze/land_rhs/index.html b/previews/PR362/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..947eeeef0 --- /dev/null +++ b/previews/PR362/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                        Land Model

                        Slab Land ODE

                        For our land component, we solve a simple slab land ODE:

                        \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                        • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                        • and $F_{integ}$ is the integrated surface fluxes in time.

                        Model Code

                        function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                        +    """
                        +    Slab layer equation
                        +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                        +        where
                        +            F_accumulated = F_integrated / Δt_coupler
                        +    """
                        +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                        +    @unpack T_sfc = du
                        +
                        +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                        +end
                        +
                        +# set up domain
                        +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                        +    FT = Float64
                        +
                        +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                        +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                        +    topology = Topologies.IntervalTopology(mesh)
                        +
                        +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                        +    quad = Spaces.Quadratures.GL{npoly + 1}()
                        +    space = Spaces.SpectralElementSpace1D(topology, quad)
                        +
                        +    return space
                        +end
                        +
                        +# init simulation
                        +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                        +
                        +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                        +    space = hspace_1D((xmin, xmax), npoly, helem)
                        +    coords = Fields.coordinate_field(space)
                        +    domain = space
                        +
                        +    # initial condition
                        +    T_sfc = map(coords) do coord
                        +        T_sfc = 273.0
                        +    end
                        +
                        +    # prognostic variable
                        +    Y = Fields.FieldVector(T_sfc = T_sfc)
                        +
                        +    return Y, domain
                        +end

                        Coupled Land Wrappers

                        # Land Simulation - later to live in ClimaLSM
                        +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                        +    integrator::Any
                        +end
                        +
                        +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                        +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                        +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                        +    return LandSimulation(lnd_integ)
                        +end
                        +
                        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                        +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                        +end
                        +
                        +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                        +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                        +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                        +end

                        This page was generated using Literate.jl.

                        diff --git a/previews/PR362/generated/sea_breeze/ocean_rhs/index.html b/previews/PR362/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..80ac4e5f2 --- /dev/null +++ b/previews/PR362/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                        Ocean Model

                        Slab Ocean ODE

                        For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                        \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                        • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                        • and $F_{integ}$ is the integrated surface fluxes in time.

                        Model Code

                        function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                        +    """
                        +    Slab layer equation
                        +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                        +        where
                        +            F_accumulated = F_integrated / Δt_coupler
                        +    """
                        +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                        +    @unpack T_sfc = du
                        +
                        +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                        +end
                        +
                        +# set up domain
                        +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                        +    FT = Float64
                        +
                        +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                        +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                        +    topology = Topologies.IntervalTopology(mesh)
                        +
                        +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                        +    quad = Spaces.Quadratures.GL{npoly + 1}()
                        +    space = Spaces.SpectralElementSpace1D(topology, quad)
                        +
                        +    return space
                        +end
                        +
                        +# init simulation
                        +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                        +
                        +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                        +    space = hspace_1D((xmin, xmax), npoly, helem)
                        +    coords = Fields.coordinate_field(space)
                        +    domain = space
                        +
                        +    # initial condition
                        +    T_sfc = map(coords) do coord
                        +        T_sfc = 267.0
                        +    end
                        +
                        +    # prognostic variable
                        +    Y = Fields.FieldVector(T_sfc = T_sfc)
                        +
                        +    return Y, domain
                        +end

                        Coupled Ocean Wrappers

                        # Ocean Simulation - Later to live in Oceananigans
                        +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                        +    integrator::Any
                        +end
                        +
                        +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                        +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                        +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                        +    return OceanSimulation(ocn_integ)
                        +end
                        +
                        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                        +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                        +end
                        +
                        +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                        +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                        +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                        +end

                        This page was generated using Literate.jl.

                        diff --git a/previews/PR362/generated/sea_breeze/run/index.html b/previews/PR362/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..15324a1b7 --- /dev/null +++ b/previews/PR362/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                        Coupled Sea Breeze

                        Overview

                        This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                        In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                        import ClimaCore.Spaces as Spaces

                        Model Initialization

                        Component Models

                        Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                        In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                        include("atmos_rhs.jl")
                        +include("ocean_rhs.jl")
                        +include("land_rhs.jl")
                        +
                        +# model parameters
                        +const atm_T_ini = FT(270.0)
                        +const MSLP = FT(1e5)
                        +const grav = FT(9.8)
                        +const R_d = FT(287.058)
                        +const γ = FT(1.4)
                        +const C_p = FT(R_d * γ / (γ - 1))
                        +const C_v = FT(R_d / (γ - 1))
                        +const R_m = R_d
                        +cpl_parameters = (
                        +    # atmos parameters
                        +    atm_μ = FT(0.0001), # diffusion coefficient
                        +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                        +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                        +    MSLP = MSLP, # mean sea level pressure
                        +    grav = grav, # gravitational constant
                        +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                        +    γ = γ, # heat capacity ratio
                        +    C_p = C_p, # heat capacity at constant pressure
                        +    C_v = C_v, # heat capacity at constant volume
                        +    R_m = R_m, # moist R, assumed to be dry
                        +    # land slab parameters
                        +    lnd_h = FT(0.5), # depth of slab layer [m]
                        +    lnd_ρ = FT(1500), # density [kg m^-3]
                        +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                        +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                        +    # ocean slab parameters
                        +    ocn_h = FT(0.5), # depth of slab layer [m]
                        +    ocn_ρ = FT(1025), # density [kg m^-3]
                        +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                        +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                        +    # coupling parameters
                        +    C_H = FT(0.0015),
                        +)
                        +
                        +# DSS callback
                        +function make_dss_func()
                        +    function _dss!(x::Fields.Field)
                        +        Spaces.weighted_dss!(x)
                        +    end
                        +    function _dss!(::Any)
                        +        nothing
                        +    end
                        +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                        +    return dss_func
                        +end
                        +dss_func = make_dss_func()
                        +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                        Initialization

                        The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                        Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                        @info "Init Models and Maps"
                        +
                        +t_start, t_end = (0.0, 1.0)
                        +Δt_coupled = 0.1
                        +saveat = 1e2
                        +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                        +
                        +# Initialize Models
                        +atm_Y_default, atm_bc, atm_domain = atm_init(
                        +    xmin = -500,
                        +    xmax = 500,
                        +    zmin = 0,
                        +    zmax = 1000,
                        +    npoly = 4,
                        +    helem = 20,
                        +    velem = 20,
                        +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                        +)
                        +
                        +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                        +
                        +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                        Remapping

                        Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                        atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                        +
                        +maps = (
                        +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                        +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                        +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                        +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                        +)
                        +
                        +# initialize coupling fields
                        +atm_T_sfc =
                        +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                        +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                        +atm_F_sfc = Fields.zeros(atm_boundary)
                        +ocn_F_sfc = Fields.zeros(ocn_domain)
                        +lnd_F_sfc = Fields.zeros(lnd_domain)

                        Simulations

                        Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                        atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                        +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                        +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                        +
                        +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                        +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                        +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                        +
                        +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                        +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                        +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                        Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                        struct AOLCoupledSimulation{
                        +    A <: AtmosSimulation,
                        +    O <: OceanSimulation,
                        +    L <: LandSimulation,
                        +    C <: ClimaCoupler.CouplerState,
                        +} <: ClimaCoupler.AbstractCoupledSimulation
                        +    # Atmosphere Simulation
                        +    atmos::A
                        +    # Ocean Simulation
                        +    ocean::O
                        +    # Land Simulation
                        +    land::L
                        +    # Coupler storage
                        +    coupler::C
                        +end

                        step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                        function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                        +    Δt = t_stop - sim.integrator.t
                        +    step!(sim.integrator, Δt, true)
                        +end

                        The Coupler

                        The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                        After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                        Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                        Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                        \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                        where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                        coupler = CouplerState(Δt_coupled)
                        +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                        +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                        +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                        +for (name, map) in pairs(maps)
                        +    coupler_add_map!(coupler, name, map)
                        +end
                        +
                        +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                        Coupled Time Integration

                        Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                        Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                        Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                        \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                        where $F_{integ}$ has units of $J m^{-2}$.

                        function cpl_run(simulation::AOLCoupledSimulation)
                        +    @info "Run model"
                        +    @unpack atmos, ocean, land, coupler = simulation
                        +    Δt_coupled = coupler.Δt_coupled
                        +    # coupler stepping
                        +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                        +        # Atmos
                        +        coupler_pull!(atmos, coupler)
                        +        step!(atmos, t)
                        +        coupler_push!(coupler, atmos)
                        +
                        +        # Ocean
                        +        coupler_pull!(ocean, coupler)
                        +        step!(ocean, t)
                        +        coupler_push!(coupler, ocean)
                        +
                        +        # Land
                        +        coupler_pull!(land, coupler)
                        +        step!(land, t)
                        +        coupler_push!(coupler, land)
                        +    end
                        +    @info "Simulation Complete"
                        +end
                        +
                        +# Run simulation
                        +cpl_run(sim)

                        References


                        This page was generated using Literate.jl.

                        diff --git a/previews/PR362/images/canvas_coupler.png b/previews/PR362/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                        F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR362/images/cplsetup.png b/previews/PR362/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR362/index.html b/previews/PR362/index.html new file mode 100644 index 000000000..b89441c37 --- /dev/null +++ b/previews/PR362/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                        ClimaCoupler.jl

                        Coupling CliMA Models

                        ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                        • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                        • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                        The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                        Coupler Scheme
                        ClimaCoupler.jl allows for independent development of interchangeable component models.
                        diff --git a/previews/PR362/interfacer/index.html b/previews/PR362/interfacer/index.html new file mode 100644 index 000000000..11f460adc --- /dev/null +++ b/previews/PR362/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                        Interfacer

                        This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                        Coupled Simulation

                        • CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                        Component model simulations

                        • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                        • the current version requires that there is:
                          • one AtmosModelSimulation
                          • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                            • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                        Prescribed conditions

                        • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                        get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                        +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                        +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                        +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                        +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                        +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                        with the corresponding update_field! functions

                        function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                        +    sim.cache.area_fraction .= field
                        +end
                        +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                        +    sim.cache.T_sfc .= field
                        +end

                        Interfacer API

                        ClimaCoupler.Interfacer.get_fieldFunction
                        get_field(::SurfaceStub, ::Val)

                        A getter function, that should not allocate. If undefined, it returns a descriptive error.

                        source
                        get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                        Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                        source
                        ClimaCoupler.Interfacer.update_field!Function
                        update_field!(::ComponentModelSimulation, ::Val, _...)

                        No update in unspecified in the particular component model simulation.

                        source
                        update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                        Updates the specified value in the cache of SurfaceStub.

                        source
                        diff --git a/previews/PR362/performance/index.html b/previews/PR362/performance/index.html new file mode 100644 index 000000000..068bf9a88 --- /dev/null +++ b/previews/PR362/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                        Performance Analysis Tools

                        ClimaCoupler.jl provides basic tools for analyzing performance:

                        1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                        2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                        Flame Graph Interpretation

                        • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                        • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                        canvas

                        • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                        • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                        References

                        diff --git a/previews/PR362/postprocessor/index.html b/previews/PR362/postprocessor/index.html new file mode 100644 index 000000000..ce5aafd86 --- /dev/null +++ b/previews/PR362/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                        PostProcessor

                        This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                        Diagnostics API

                        ClimaCoupler.PostProcessor.postprocessFunction
                        postprocess(
                        +    name::Symbol,
                        +    raw_data::Union{Fields.Field, Array},
                        +    p_methods::Tuple;
                        +    lev_slice = 1,
                        +    datafile_latlon = nothing,
                        +    nlat = 90,
                        +    nlon = 180,
                        +)

                        Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                        Arguments:

                        • name: [Symbol] variable name
                        • raw_data: [Union{Fields.Field, Array}] variable data
                        • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                        • lev_slice: [Int] level index along which the :horizontal_slice is applied
                        • datafile_latlon: [String] name of the regrid file
                        • nlat: [Int] number of latitudes of the regridded array
                        • nlon: [Symbol] number of longitudes of the regridded array
                        source
                        Missing docstring.

                        Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                        Missing docstring.

                        Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                        ClimaCoupler.PostProcessor.DataPackageType
                        DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                        A container for storing the tyoe, name, data and coordinates of a variable.

                        source

                        Diagnostics Internal Functions

                        diff --git a/previews/PR362/regridder/index.html b/previews/PR362/regridder/index.html new file mode 100644 index 000000000..a9dfda18f --- /dev/null +++ b/previews/PR362/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                        Regridder

                        This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                        Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                        Regridder API

                        ClimaCoupler.Regridder.write_to_hdf5Function
                        write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                        Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                        Arguments

                        • REGRID_DIR: [String] directory to save output files in.
                        • hd_outfile_root: [String] root of the output file name.
                        • time: [Dates.DateTime] the timestamp of the data being written.
                        • field: [Fields.Field] object to be written.
                        • varname: [String] variable name of data.
                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                        source
                        ClimaCoupler.Regridder.read_from_hdf5Function
                        read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                        Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                        Arguments

                        • REGRID_DIR: [String] directory to save output files in.
                        • hd_outfile_root: [String] root of the output file name.
                        • time: [Dates.DateTime] the timestamp of the data being written.
                        • varname: [String] variable name of data.
                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                        Returns

                        • Field or FieldVector
                        source
                        ClimaCoupler.Regridder.dummmy_remap!Function
                        dummmy_remap!(target, source)

                        Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                        Arguments

                        • target: [Fields.Field] destination of remapping.
                        • source: [Fields.Field] source of remapping.
                        source
                        ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                        remap_field_cgll_to_rll(
                        +    name,
                        +    field::Fields.Field,
                        +    remap_tmpdir,
                        +    datafile_rll;
                        +    nlat = 90,
                        +    nlon = 180
                        +)

                        Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                        Arguments

                        • name: [Symbol] variable name.
                        • field: [Fields.Field] data to be remapped.
                        • remap_tmpdir: [String] directory used for remapping.
                        • datafile_rll: [String] filename of remapped data output.
                        source
                        ClimaCoupler.Regridder.land_fractionFunction
                        function land_fraction(
                        +    FT,
                        +    REGRID_DIR,
                        +    comms_ctx::ClimaComms.AbstractCommsContext,
                        +    infile,
                        +    varname,
                        +    boundary_space;
                        +    outfile_root = "land_sea_cgll",
                        +    mono = false,
                        +    threshold = 0.7,
                        +)

                        Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                        See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                        Arguments

                        • FT: [DataType] Float type
                        • REGRID_DIR: [String] directory to save output files in.
                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                        • infile: [String] filename containing input data.
                        • varname: [Symbol] variable name.
                        • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                        • outfile_root: [String] root for output file name.
                        • mono: [Bool] flag for monotone remapping.
                        • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                        Returns

                        • Fields.Field
                        source
                        ClimaCoupler.Regridder.update_surface_fractions!Function
                        update_surface_fractions!(cs::CoupledSimulation)

                        Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                        Arguments

                        • cs: [CoupledSimulation] containing area fraction information.
                        source
                        ClimaCoupler.Regridder.combine_surfaces!Function
                        combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                        Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                        Arguments

                        • combined_field: [Fields.Field] output object containing weighted values.
                        • sims: [NamedTuple] containing simulations .
                        • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                        Example

                        • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                        source

                        Regridder Internal Functions

                        ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                        reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                        Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                        Arguments

                        • field: [Fields.Field] object populated with the input array.
                        • in_array: [Array] input used to fill field.
                        • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                        source
                        ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                        hdwrite_regridfile_rll_to_cgll(
                        +    FT,
                        +    REGRID_DIR,
                        +    datafile_rll,
                        +    varname,
                        +    space;
                        +    hd_outfile_root = "data_cgll",
                        +    mono = false,
                        +)

                        Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                        Arguments

                        • FT: [DataType] Float type.
                        • REGRID_DIR: [String] directory to save output files in.
                        • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                        • varname: [String] the name of the variable to be remapped.
                        • space: [Spaces.AbstractSpace] the space to which we are mapping.
                        • hd_outfile_root: [String] root of the output file name.
                        • mono: [Bool] flag to specify monotone remapping.
                        source
                        ClimaCoupler.Regridder.write_datafile_ccFunction
                        write_datafile_cc(datafile_cc, field, name)

                        Write the data stored in field to an NCDataset file datafile_cc.

                        Arguments

                        • datafile_cc: [String] filename of output file.
                        • field: [Fields.Field] to be written to file.
                        • name: [Symbol] variable name.
                        source
                        ClimaCoupler.Regridder.binary_maskFunction
                        binary_mask(var::FT; threshold = 0.5)

                        Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                        Arguments

                        • var: [FT] value to be converted.
                        • threshold: [Float] cutoff value for conversions.
                        source
                        diff --git a/previews/PR362/search/index.html b/previews/PR362/search/index.html new file mode 100644 index 000000000..a753a1994 --- /dev/null +++ b/previews/PR362/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                        Loading search...

                          diff --git a/previews/PR362/search_index.js b/previews/PR362/search_index.js new file mode 100644 index 000000000..46859f7ad --- /dev/null +++ b/previews/PR362/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\nif !(@isdefined parsed_args)\n include(\"cli_options.jl\")\n parsed_args = parse_commandline(argparse_settings())\nend\n\nif isinteractive()\n parsed_args[\"surface_setup\"] = \"PrescribedSurface\" #hide # necessary to stop Atmos from calculating its own surface fluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"parsedargs[\"dtsave_restart\"] = \"5days\" #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" parsed_args[\"job_id\"] = \"interactive_debug_run\"\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nif !(@isdefined FT)\n const FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nend\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\n\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\n\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# user-specified diagnostics\ninclude(\"user_io/user_diagnostics.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"components/atmosphere/climaatmos_init.jl\")\natmos_sim = atmos_init(FT, parsed_args);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"components/slab_utils.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/slab_seaice_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation, :toa, :T_sfc),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name == \"slabplanet\" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks =\n (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n parsed_args,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = CombinedAtmosGrid()","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes on the atmos grid, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\ncompute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit!(atmos_sim) # sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes, and sends them to surface models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n update_field!(\n ocean_sim,\n Val(:surface_temperature),\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),\n )\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface)) # TODO: change to SIC\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"exchange combined fields and (if specified) calculate fluxes using combined states","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\n compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: computeandsendpartitionedturbulent_fluxes!(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # step to the next calendar month\n if trigger_callback(cs, Monthly())\n cs.dates.date1[1] += Dates.Month(1)\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n isdir(COUPLER_OUTPUT_DIR * \"_artifacts\") ? nothing : mkpath(COUPLER_OUTPUT_DIR * \"_artifacts\")\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_OUTPUT_DIR * \"_artifacts\", \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_OUTPUT_DIR * \"_artifacts\")\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa = (:regrid, :horizontal_slice),\n precipitation = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n )\n amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_slice,),\n precipitation = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_OUTPUT_DIR * \"_artifacts\",\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedAtmosGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedComponentModelGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid\n ClimaCoupler.FluxCalculator.CombinedAtmosGrid\n ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","text":"PartitionedComponentModelGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedAtmosGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedAtmosGrid","text":"CombinedAtmosGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","text":"compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","text":"compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR362/siteinfo.js b/previews/PR362/siteinfo.js new file mode 100644 index 000000000..784b3027e --- /dev/null +++ b/previews/PR362/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR362"; diff --git a/previews/PR362/testhelper/index.html b/previews/PR362/testhelper/index.html new file mode 100644 index 000000000..035ec59f8 --- /dev/null +++ b/previews/PR362/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                          TestHelper

                          This module defines helper functions, objects, and constants to be used by various files in the test folder.

                          TestHelper API

                          ClimaCoupler.TestHelper.create_spaceFunction
                          create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                          +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                          Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                          Arguments

                          • FT: [DataType] Float type
                          • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                          • R: [FT] radius of the sphere underlying space.
                          • ne: [Integer] number of elements used in the space's mesh.
                          • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                          • nz: [Integer] number of vertical elements
                          source
                          ClimaCoupler.TestHelper.gen_ncdataFunction
                          gen_ncdata(FT, path, varname, val)

                          Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                          Arguments

                          • FT: [DataType] Float type.
                          • path: [String] location to store output datafile.
                          • varname: [Symbol] variable name.
                          • val: [FT] value to store as varname at all indices.
                          source
                          diff --git a/previews/PR362/timemanager/index.html b/previews/PR362/timemanager/index.html new file mode 100644 index 000000000..bc83edf23 --- /dev/null +++ b/previews/PR362/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                          TimeManager

                          This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                          TimeManager API

                          ClimaCoupler.TimeManager.current_dateFunction
                          current_date(cs::CoupledSimulation, t::Int)

                          Return the model date at the current timestep.

                          Arguments

                          • cs: [CoupledSimulation] containing info about the simulation
                          • t: [Real] number of seconds since simulation began
                          source
                          ClimaCoupler.TimeManager.trigger_callbackFunction
                          trigger_callback(cs, ::Monthly)

                          Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                          Arguments

                          • cs: [CoupledSimulation] containing info about the simulation
                          source
                          Missing docstring.

                          Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                          diff --git a/previews/PR362/timestepping/index.html b/previews/PR362/timestepping/index.html new file mode 100644 index 000000000..c55774c35 --- /dev/null +++ b/previews/PR362/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                          Coupled Simulations & Timestepping

                          ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                          Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                          • step!: advances the component model in time
                          • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                          • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                          ClimaCoupler.run!Function
                          run!(::CoupledSimulation)

                          A simple outer timestepping loop for coupled system runs.

                          This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                          source
                          ClimaCoupler.step!Function
                          step!(sim, dt)

                          Advances a simulation sim by dt.

                          Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                          source
                          ClimaCoupler.coupler_push!Function
                          coupler_push!(coupler::CouplerState, model)

                          Update coupler with fields retrieved from the coupler.

                          coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                          source
                          ClimaCoupler.coupler_pull!Function
                          coupler_pull!(model, coupler::CouplerState)

                          Update model with fields retrieved from the coupler.

                          coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                          source
                          diff --git a/previews/PR362/utilities/index.html b/previews/PR362/utilities/index.html new file mode 100644 index 000000000..1200f5072 --- /dev/null +++ b/previews/PR362/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                          Utilities

                          This module contains functions, objects, and constants used by various modules in the coupler.

                          Utilities API

                          Missing docstring.

                          Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                          ClimaCoupler.Utilities.swap_space!Function
                          swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                          Remap the values of a field onto a new space.

                          Arguments

                          • field_in: [Fields.Field] to be remapped to new space.
                          • field_out: [Fields.Field] to remap field_in to.
                          source
                          diff --git a/previews/PR379/assets/documenter.js b/previews/PR379/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR379/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR379/assets/logo.svg b/previews/PR379/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR379/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR379/assets/search.js b/previews/PR379/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR379/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                        • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR379/assets/themes/documenter-dark.css b/previews/PR379/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR379/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR379/assets/themes/documenter-light.css b/previews/PR379/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR379/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR379/assets/themeswap.js b/previews/PR379/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR379/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR379/assets/warner.js b/previews/PR379/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR379/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                          Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR379/bcreader/index.html b/previews/PR379/bcreader/index.html new file mode 100644 index 000000000..b5d1aeedc --- /dev/null +++ b/previews/PR379/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                          BCReader

                          This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                          BCReader API

                          ClimaCoupler.BCReader.BCFileInfoType
                          BCFileInfo

                          Stores information specific to each boundary condition from a file and each variable.

                          Inputs:

                          • bcfile_dir::b # directory of the BC file
                          • comms_ctx::X # communication context used for MPI
                          • hdoutfileroot::S # filename root for regridded data
                          • varname::V # name of the variable
                          • all_dates::D # vector of all dates contained in the original data file
                          • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                          • scaling_function::O # function that scales, offsets or transforms the raw variable
                          • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                          • segment_idx::Vector{Int} # index of the monthly data in the file
                          • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                          • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                          • interpolate_daily::Bool # switch to trigger daily interpolation
                          source
                          ClimaCoupler.BCReader.bcfile_info_initFunction
                          bcfile_info_init(
                          +    FT,
                          +    bcfile_dir,
                          +    datafile_rll,
                          +    varname,
                          +    boundary_space,
                          +    comms_ctx;
                          +    interpolate_daily = false,
                          +    segment_idx0 = nothing,
                          +    scaling_function = no_scaling,
                          +    land_fraction = nothing,
                          +    date0 = nothing,
                          +    mono = true,
                          +)

                          Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                          Arguments

                          • FT: [DataType] Float type.
                          • bcfile_dir: [String] directory the BC file is stored in.
                          • datafile_rll: [String] file containing data to regrid.
                          • varname: [String] name of the variable to be regridded.
                          • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                          • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                          • interpolate_daily: [Bool] switch to trigger daily interpolation.
                          • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                          • scaling function: [Function] scales, offsets or transforms varname.
                          • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                          • date0: [Dates.DateTime] start date of the file data.
                          • mono: [Bool] flag for monotone remapping of datafile_rll.

                          Returns

                          • BCFileInfo
                          source
                          ClimaCoupler.BCReader.update_midmonth_data!Function
                          update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                          Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                          Arguments

                          • date: [Dates.DateTime] start date for data.
                          • bcf_info: [BCFileInfo] containing boundary condition data.
                          source
                          ClimaCoupler.BCReader.next_date_in_fileFunction
                          next_date_in_file(bcf_info)

                          Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                          Arguments

                          • bcf_info: [BCFileInfo] containing the date information.

                          Returns

                          • Dates.DateTime
                          source
                          ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                          interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                          Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                          Arguments

                          • date: [Dates.DateTime] start date for data.
                          • bcf_info: [BCFileInfo] contains fields to be interpolated.

                          Returns

                          • Fields.field
                          source

                          BCReader Internal Functions

                          ClimaCoupler.BCReader.no_scalingFunction
                          no_scaling(field, bcf_info)

                          Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                          Arguments

                          • field: [Fields.Field] contains the values to be remapped.
                          • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                          source
                          ClimaCoupler.BCReader.interpolFunction
                          interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                          Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                          Arguments

                          • f1: [FT] first value to be interpolated (f(t1) = f1).
                          • f2: [FT] second value to be interpolated.
                          • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                          • Δt_t2t1: [FT] time between t1 and t2.

                          Returns

                          • FT
                          source
                          diff --git a/previews/PR379/checkpointer/index.html b/previews/PR379/checkpointer/index.html new file mode 100644 index 000000000..3d3f5197b --- /dev/null +++ b/previews/PR379/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

                          Checkpointer

                          This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

                          Checkpointer API

                          ClimaCoupler.Checkpointer.get_model_state_vectorFunction
                          get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

                          Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

                          source
                          ClimaCoupler.Checkpointer.restart_model_state!Function
                          restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

                          Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

                          source
                          ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
                          checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

                          Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

                          source
                          diff --git a/previews/PR379/conservation/index.html b/previews/PR379/conservation/index.html new file mode 100644 index 000000000..e0d976a0b --- /dev/null +++ b/previews/PR379/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                          Conservation Checks

                          If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                          Only energy and water are currently implemented.

                          Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                          Coupler Object API

                          ClimaCoupler.ConservationChecker.check_conservation!Function
                          check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                          itertes over all specified conservation checks.

                          source
                              check_conservation!(
                          +    cc::EnergyConservationCheck,
                          +    coupler_sim,
                          +    get_slab_energy,
                          +    get_land_energy,
                          +    )

                          computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                          TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                          source
                          check_conservation!(
                          +cc::WaterConservationCheck,
                          +coupler_sim,
                          +get_slab_energy,
                          +get_land_energy,
                          +)

                          computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                          Note: in the future this should not use push!.

                          source
                          ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                          plot_global_conservation(
                          +    cc::EnergyConservationCheck,
                          +    coupler_sim::CoupledSimulation;
                          +    figname1 = "total_energy.png",
                          +    figname2 = "total_energy_log.png",
                          +)

                          Creates two plots of the globally integrated quantity (energy, $\rho e$):

                          1. global quantity of each model component as a function of time,

                          relative to the initial value;

                          1. fractional change in the sum of all components over time on a log scale.
                          source
                          plot_global_conservation(
                          +    cc::WaterConservationCheck,
                          +    coupler_sim::CoupledSimulation;
                          +    figname1 = "total_energy.png",
                          +    figname2 = "total_energy_log.png",
                          +)

                          Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                          1. global quantity of each model component as a function of time,

                          relative to the initial value;

                          1. fractional change in the sum of all components over time on a log scale.
                          source
                          diff --git a/previews/PR379/couplerstate/index.html b/previews/PR379/couplerstate/index.html new file mode 100644 index 000000000..a2ce3630e --- /dev/null +++ b/previews/PR379/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                          Coupler State

                          The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                          The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                          Coupler Object API

                          ClimaCoupler.CouplerStateType
                          CouplerState()

                          Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                          A field is exported by one component and imported by one or more other components.

                          source
                          ClimaCoupler.coupler_add_field!Function
                          coupler_add_field!(
                          +        coupler::CouplerState,
                          +        fieldname::Symbol,
                          +        fieldvalue,
                          +    )

                          Add a field to the coupler that is accessible with key fieldname.

                          Arguments

                          • coupler: coupler object the field is added to.
                          • fieldname: key to access the field in the coupler.
                          • fieldvalue: data array of field values.
                          source
                          ClimaCoupler.coupler_getFunction
                          coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                          Retrieve data array corresponding to fieldname.

                          If a target_sim is passed, the field is remapped to that simulation's boundary space.

                          source
                          diff --git a/previews/PR379/diagnostics/index.html b/previews/PR379/diagnostics/index.html new file mode 100644 index 000000000..d1f6f1b15 --- /dev/null +++ b/previews/PR379/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                          Diagnostics

                          This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                          Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                          Diagnostics API

                          Missing docstring.

                          Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                          ClimaCoupler.Diagnostics.get_varFunction
                          get_var(cs::CoupledSimulation, x)

                          Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                          Example:

                          getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                          source
                          ClimaCoupler.Diagnostics.save_diagnosticsFunction
                          save_diagnostics(cs::CoupledSimulation)
                          +
                          +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                          Saves all entries in dg in separate HDF5 files per variable in output_dir.

                          source

                          Diagnostics Internal Functions

                          Missing docstring.

                          Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                          ClimaCoupler.Diagnostics.operationFunction
                          operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                          Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                          source
                          operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                          Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                          source
                          ClimaCoupler.Diagnostics.pre_saveFunction
                          pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                          Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                          source
                          pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                          Collects variables and performs all specified operations before saving the snapshot diagnostics.

                          source
                          diff --git a/previews/PR379/fieldexchanger/index.html b/previews/PR379/fieldexchanger/index.html new file mode 100644 index 000000000..bbe93f2cd --- /dev/null +++ b/previews/PR379/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                          FieldExchanger

                          This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                          The FieldExchanger needs to populate the coupler with

                          • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                          • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                          The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                          • AtmosModelSimulation: albedo, surface_temperature
                            • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                          • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                          If an update_field! function is not defined for a particular component model, it will be ignored.

                          Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                          FieldExchanger API

                          ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                          import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                          Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                          Arguments

                          • csf: [NamedTuple] containing coupler fields.
                          • model_sims: [NamedTuple] containing ComponentModelSimulations.
                          • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                          • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                          source
                          ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                          import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                          Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                          Arguments

                          • csf: [NamedTuple] containing coupler fields.
                          • model_sims: [NamedTuple] containing ComponentModelSimulations.
                          • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                          • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                          source
                          ClimaCoupler.FieldExchanger.update_model_sims!Function
                          update_model_sims!(model_sims, csf, turbulent_fluxes)

                          Iterates update_sim! over all component model simulations saved in cs.model_sims.

                          Arguments

                          • model_sims: [NamedTuple] containing ComponentModelSimulations.
                          • csf: [NamedTuple] containing coupler fields.
                          • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                          source
                          ClimaCoupler.FieldExchanger.update_sim!Function
                          update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                          Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                          Arguments

                          • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                          • csf: [NamedTuple] containing coupler fields.
                          source
                          update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                          Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                          Arguments

                          • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                          • csf: [NamedTuple] containing coupler fields.
                          source
                          update_sim!(::SurfaceStub, csf, area_fraction)

                          The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                          source
                          ClimaCoupler.FieldExchanger.step_model_sims!Function
                          step_model_sims!(model_sims, t)

                          Iterates step! over all component model simulations saved in cs.model_sims.

                          Arguments

                          • model_sims: [NamedTuple] containing ComponentModelSimulations.
                          • t: [AbstractFloat] denoting the simulation time.
                          source

                          FieldExchanger Internal Functions

                          CommonSolve.step!Function
                          step!(::SurfaceStub, t)

                          The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                          source
                          SciMLBase.reinit!Function
                          reinit!(cs::SurfaceStub)

                          The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                          source
                          diff --git a/previews/PR379/fluxcalculator/index.html b/previews/PR379/fluxcalculator/index.html new file mode 100644 index 000000000..b12829913 --- /dev/null +++ b/previews/PR379/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                          FluxCalculator

                          This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                          Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                          1. Combined fluxes (called with CombinedAtmosGrid())
                          • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                          1. Partitioned fluxes (called with PartitionedComponentModelGrid())
                          • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)

                          FluxCalculator API

                          ClimaCoupler.FluxCalculator.CombinedAtmosGridType
                          CombinedAtmosGrid <: TurbulentFluxPartition

                          A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                          source
                          ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!Function
                          compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                          Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                          Arguments

                          • model_sims: [NamedTuple] containing ComponentModelSimulations.
                          • csf: [NamedTuple] containing coupler fields.
                          • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                          source
                          ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!Function
                          compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                          A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                          Arguments

                          • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                          • csf: [NamedTuple] containing coupler fields.

                          Example:

                          function compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                          +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                          +end
                          source
                          diff --git a/previews/PR379/generated/amip/coupler_driver_modular/index.html b/previews/PR379/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..2154b3a81 --- /dev/null +++ b/previews/PR379/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,412 @@ + +AMIP Driver · ClimaCoupler.jl

                          AMIP Driver

                          Overview

                          AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                          • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                          • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                          For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                          This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                          Start Up

                          Before starting Julia, ensure your environment is properly set up:

                          module purge
                          +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                          +
                          +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                          +export JUlIA_MPI_BINARY="system"
                          +export JULIA_HDF5_PATH=""

                          Next instantiate/build all packages listed in Manifest.toml:

                          julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                          +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                          The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                          julia --project --threads 8

                          Initialization

                          Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                          import SciMLBase: step!, reinit!
                          +using OrdinaryDiffEq
                          +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                          +using LinearAlgebra
                          +import Test: @test
                          +using Dates
                          +using UnPack
                          +using Plots
                          +using Statistics: mean
                          +
                          +using ClimaCore.Utilities: half, PlusHalf
                          +using ClimaCore: InputOutput, Fields
                          +import ClimaCore.Spaces as Spaces
                          +
                          +if !(@isdefined parsed_args)
                          +    include("cli_options.jl")
                          +    parsed_args = parse_commandline(argparse_settings())
                          +end

                          modify parsed args for fast testing from REPL #hide

                          if isinteractive()
                          +    parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes

                          parsedargs["dtsave_restart"] = "5days" #hide

                              parsed_args["job_id"] = "interactive_debug_run"
                          +    parsed_args["monthly_checkpoint"] = true
                          +end
                          +
                          +# read in some parsed command line arguments
                          +mode_name = parsed_args["mode_name"]
                          +run_name = parsed_args["run_name"]
                          +energy_check = parsed_args["energy_check"]
                          +if !(@isdefined FT)
                          +    const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                          +end
                          +land_sim_name = "bucket"
                          +t_end = Int(time_to_seconds(parsed_args["t_end"]))
                          +tspan = (Int(0), t_end)
                          +Δt_cpl = Int(parsed_args["dt_cpl"])
                          +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                          +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                          +mono_surface = parsed_args["mono_surface"]
                          +monthly_checkpoint = parsed_args["monthly_checkpoint"]
                          +restart_dir = parsed_args["restart_dir"]
                          +restart_t = Int(parsed_args["restart_t"])
                          +
                          +import ClimaCoupler
                          +import ClimaCoupler.Regridder
                          +import ClimaCoupler.Regridder:
                          +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                          +import ClimaCoupler.ConservationChecker:
                          +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                          +import ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!
                          +import ClimaCoupler.BCReader:
                          +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                          +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                          +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                          +import ClimaCoupler.PostProcessor: postprocess
                          +
                          +import ClimaCoupler.Interfacer:
                          +    AtmosModelSimulation,
                          +    SurfaceModelSimulation,
                          +    SurfaceStub,
                          +    SeaIceModelSimulation,
                          +    LandModelSimulation,
                          +    OceanModelSimulation,
                          +    get_field,
                          +    update_field!,
                          +    update_sim!
                          +import ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!
                          +import ClimaCoupler.FieldExchanger:
                          +    import_atmos_fields!,
                          +    import_combined_surface_fields!,
                          +    update_sim!,
                          +    update_model_sims!,
                          +    reinit_model_sims!,
                          +    step_model_sims!
                          +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
                          +
                          +pkg_dir = pkgdir(ClimaCoupler)
                          +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                          +mkpath(COUPLER_OUTPUT_DIR)
                          +
                          +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                          +mkpath(REGRID_DIR)
                          +
                          +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
                          +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
                          +
                          +@info COUPLER_OUTPUT_DIR
                          +@info parsed_args
                          +
                          +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration
                          +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                          +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                          +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                          +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                          +
                          +# user-specified diagnostics
                          +include("user_io/user_diagnostics.jl")

                          Component Model Initialization

                          Here we set initial and boundary conditions for each component model.

                          Atmosphere

                          This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                          # init atmos model component
                          +include("components/atmosphere/climaatmos_init.jl")
                          +atmos_sim = atmos_init(FT, parsed_args);
                          +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                          We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                          # init a 2D bounary space at the surface
                          +boundary_space = atmos_sim.domain.face_space.horizontal_space

                          init land-sea fraction

                          land_fraction =
                          +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)
                          +
                          +# init surface (slab) model components
                          +include("components/slab_utils.jl")
                          +include("components/land/bucket_init.jl")
                          +include("components/land/bucket_utils.jl")
                          +include("components/ocean/slab_ocean_init.jl")
                          +include("components/ocean/slab_seaice_init.jl")

                          Land

                          We use ClimaLSM.jl's bucket model.

                          land_sim = bucket_init(
                          +    FT,
                          +    FT.(tspan),
                          +    parsed_args["config"],
                          +    parsed_args["albedo_from_file"],
                          +    comms_ctx,
                          +    REGRID_DIR;
                          +    dt = FT(Δt_cpl),
                          +    space = boundary_space,
                          +    saveat = FT(saveat),
                          +    area_fraction = land_fraction,
                          +)

                          Ocean and Sea Ice

                          In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                          In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                          @info mode_name
                          +if mode_name == "amip"
                          +    @info "AMIP boundary conditions - do not expect energy conservation"
                          +
                          +    # ocean
                          +    SST_info = bcfile_info_init(
                          +        FT,
                          +        REGRID_DIR,
                          +        sst_data,
                          +        "SST",
                          +        boundary_space,
                          +        comms_ctx,
                          +        interpolate_daily = true,
                          +        scaling_function = clean_sst, ## convert to Kelvin
                          +        land_fraction = land_fraction,
                          +        date0 = date0,
                          +        mono = mono_surface,
                          +    )
                          +
                          +    update_midmonth_data!(date0, SST_info)
                          +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                          +    ocean_sim = SurfaceStub((;
                          +        T_sfc = SST_init,
                          +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                          +        z0m = FT(1e-3),
                          +        z0b = FT(1e-3),
                          +        beta = FT(1),
                          +        α = FT(0.06),
                          +        area_fraction = (FT(1) .- land_fraction),
                          +        phase = TD.Liquid(),
                          +        thermo_params = thermo_params,
                          +    ))
                          +    # sea ice
                          +    SIC_info = bcfile_info_init(
                          +        FT,
                          +        REGRID_DIR,
                          +        sic_data,
                          +        "SEAICE",
                          +        boundary_space,
                          +        comms_ctx,
                          +        interpolate_daily = true,
                          +        scaling_function = clean_sic, ## convert to fraction
                          +        land_fraction = land_fraction,
                          +        date0 = date0,
                          +        mono = mono_surface,
                          +    )
                          +    update_midmonth_data!(date0, SIC_info)
                          +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                          +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                          +    ice_sim = ice_init(
                          +        FT;
                          +        tspan = tspan,
                          +        dt = Δt_cpl,
                          +        space = boundary_space,
                          +        saveat = saveat,
                          +        area_fraction = ice_fraction,
                          +        thermo_params = thermo_params,
                          +    )
                          +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                          +
                          +elseif mode_name == "slabplanet"
                          +    # ocean
                          +    ocean_sim = ocean_init(
                          +        FT;
                          +        tspan = tspan,
                          +        dt = Δt_cpl,
                          +        space = boundary_space,
                          +        saveat = saveat,
                          +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                          +        thermo_params = thermo_params,
                          +    )
                          +
                          +    # sea ice (here set to zero area coverage)
                          +    ice_sim = SurfaceStub((;
                          +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                          +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                          +        z0m = FT(0),
                          +        z0b = FT(0),
                          +        beta = FT(1),
                          +        α = FT(1),
                          +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                          +        phase = TD.Ice(),
                          +        thermo_params = thermo_params,
                          +    ))
                          +
                          +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                          +end

                          Coupler Initialization

                          The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                          # coupler exchange fields
                          +coupler_field_names = (
                          +    :T_S,
                          +    :z0m_S,
                          +    :z0b_S,
                          +    :ρ_sfc,
                          +    :q_sfc,
                          +    :albedo,
                          +    :beta,
                          +    :F_turb_energy,
                          +    :F_turb_moisture,
                          +    :F_radiative,
                          +    :P_liq,
                          +    :P_snow,
                          +    :F_radiative_TOA,
                          +    :P_net,
                          +)
                          +coupler_fields =
                          +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                          +
                          +# model simulations
                          +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                          +
                          +# dates
                          +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                          Online Diagnostics

                          User can write custom diagnostics in the user_diagnostics.jl.

                          monthly_3d_diags = init_diagnostics(
                          +    (:T, :u, :q_tot),
                          +    atmos_sim.domain.center_space;
                          +    save = Monthly(),
                          +    operations = (; accumulate = TimeMean([Int(0)])),
                          +    output_dir = COUPLER_OUTPUT_DIR,
                          +    name_tag = "monthly_mean_3d_",
                          +)
                          +
                          +monthly_2d_diags = init_diagnostics(
                          +    (:precipitation, :toa, :T_sfc),
                          +    boundary_space;
                          +    save = Monthly(),
                          +    operations = (; accumulate = TimeMean([Int(0)])),
                          +    output_dir = COUPLER_OUTPUT_DIR,
                          +    name_tag = "monthly_mean_2d_",
                          +)
                          +
                          +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                          Initialize Conservation Checks

                          # init conservation info collector
                          +conservation_checks = nothing
                          +if energy_check
                          +    @assert(
                          +        mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),
                          +        "Only non-distributed slabplanet allowable for energy_check"
                          +    )
                          +    conservation_checks =
                          +        (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))
                          +end
                          +
                          +# coupler simulation
                          +cs = CoupledSimulation{FT}(
                          +    comms_ctx,
                          +    dates,
                          +    boundary_space,
                          +    coupler_fields,
                          +    parsed_args,
                          +    conservation_checks,
                          +    [tspan[1], tspan[2]],
                          +    atmos_sim.integrator.t,
                          +    Δt_cpl,
                          +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                          +    model_sims,
                          +    mode_specifics,
                          +    diagnostics,
                          +);

                          Restart component model states if specified

                          if restart_dir !== "unspecified"
                          +    for sim in cs.model_sims
                          +        if get_model_state_vector(sim) !== nothing
                          +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
                          +        end
                          +    end
                          +end
                          +ClimaComms.barrier(comms_ctx)

                          Initialize Component Model Exchange

                          turbulent_fluxes = CombinedAtmosGrid()
                          1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                          update_surface_fractions!(cs)
                          +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                          +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                          +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                          1. each component model calculates its own vapor specific humidity (q_sfc)

                          TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                          step!(land_sim, Δt_cpl)
                          +step!(ocean_sim, Δt_cpl)
                          +step!(ice_sim, Δt_cpl)
                          1. coupler re-imports updated surface fields and calculates turbulent fluxes on the atmos grid, while updating atmos sfc_conditions
                          import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                          +compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)
                          1. given the new sfc_conditions, atmos calls the radiative flux callback
                          reinit!(atmos_sim) # sets a nonzero radiation flux
                          1. coupler re-imports updated atmos fluxes, and sends them to surface models
                          import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                          +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                          Coupling Loop

                          function solve_coupler!(cs)
                          +    @info "Starting coupling loop"
                          +
                          +    @unpack model_sims, Δt_cpl, tspan = cs;
                          +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims;
                          +
                          +    # step in time
                          +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                          +
                          +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                          +
                          +        # print date on the first of month
                          +        if cs.dates.date[1] >= cs.dates.date1[1]
                          +            @show(cs.dates.date[1])
                          +        end
                          +
                          +        if cs.mode.name == "amip"
                          +
                          +            # monthly read of boundary condition data for SST and SIC
                          +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                          +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                          +            end
                          +            update_field!(
                          +                ocean_sim,
                          +                Val(:surface_temperature),
                          +                interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),
                          +            )
                          +
                          +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                          +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                          +            end
                          +            interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                          +            update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface))  # TODO: change to SIC
                          +
                          +            # calculate and accumulate diagnostics at each timestep
                          +            ClimaComms.barrier(comms_ctx)

                          accumulate_diagnostics!(cs)

                                      # save and reset monthly averages

                          save_diagnostics(cs)

                                  end
                          +
                          +        # compute global energy
                          +        !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing
                          +
                          +        # run component models sequentially for one coupling timestep (Δt_cpl)
                          +        ClimaComms.barrier(comms_ctx)
                          +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                          +
                          +        # step sims
                          +        step_model_sims!(cs.model_sims, t)
                          +
                          +        # exchange combined fields and (if specified) calculate fluxes using combined states
                          +        update_surface_fractions!(cs)
                          +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                          +        compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)
                          +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent

                          TODO: computeandsendpartitionedturbulent_fluxes!(cs)

                                  # monthly callbacks
                          +        if trigger_callback(cs, Monthly())
                          +            # step to the next calendar month
                          +            cs.dates.date1[1] += Dates.Month(1)
                          +            # checkpoint model state
                          +            if monthly_checkpoint
                          +                for sim in cs.model_sims
                          +                    if get_model_state_vector(sim) !== nothing
                          +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
                          +                    end
                          +                end
                          +            end
                          +        end
                          +
                          +    end
                          +    @show walltime
                          +
                          +    return cs
                          +end
                          +
                          +
                          +# run the coupled simulation
                          +solve_coupler!(cs);

                          Postprocessing

                          Currently all postprocessing is performed using the root process only.

                          if ClimaComms.iamroot(comms_ctx)

                          energy check plots

                          if !isnothing(cs.conservationchecks) && cs.mode.name == "slabplanet" @info "Conservation Check Plots" plotglobalconservation( cs.conservationchecks.energy, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, "totalenergybucket.png"), figname2 = joinpath(COUPLERARTIFACTSDIR, "totalenergylogbucket.png"), ) plotglobalconservation( cs.conservationchecks.water, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, "totalwaterbucket.png"), figname2 = joinpath(COUPLERARTIFACTSDIR, "totalwaterlog_bucket.png"), ) end

                          sample animations

                          if !isdistributed && parsedargs["anim"] @info "Animations" include("userio/vizexplorer.jl") plotanim(cs, COUPLERARTIFACTS_DIR) end

                          plotting AMIP results

                          if cs.mode.name == "amip" @info "AMIP plots"

                          ## ClimaESM
                          +include("user_io/amip_visualizer.jl")
                          +post_spec = (;
                          +    T = (:regrid, :zonal_mean),
                          +    u = (:regrid, :zonal_mean),
                          +    q_tot = (:regrid, :zonal_mean),
                          +    toa = (:regrid, :horizontal_slice),
                          +    precipitation = (:regrid, :horizontal_slice),
                          +    T_sfc = (:regrid, :horizontal_slice),
                          +)
                          +
                          +plot_spec = (;
                          +    T = (; clims = (190, 320), units = "K"),
                          +    u = (; clims = (-50, 50), units = "m/s"),
                          +    q_tot = (; clims = (0, 50), units = "g/kg"),
                          +    toa = (; clims = (-250, 210), units = "W/m^2"),
                          +    precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                          +    T_sfc = (clims = (225, 310), units = "K"),
                          +)
                          +amip_paperplots(
                          +    post_spec,
                          +    plot_spec,
                          +    COUPLER_OUTPUT_DIR,
                          +    files_root = ".monthly",
                          +    output_dir = COUPLER_ARTIFACTS_DIR,
                          +)
                          +
                          +## NCEP reanalysis
                          +@info "NCEP plots"
                          +include("user_io/ncep_visualizer.jl")
                          +ncep_post_spec = (;
                          +    T = (:zonal_mean,),
                          +    u = (:zonal_mean,),
                          +    q_tot = (:zonal_mean,),
                          +    toa = (:horizontal_slice,),
                          +    precipitation = (:horizontal_slice,),
                          +    T_sfc = (:horizontal_slice,),
                          +)
                          +ncep_plot_spec = plot_spec
                          +ncep_paperplots(
                          +    ncep_post_spec,
                          +    ncep_plot_spec,
                          +    COUPLER_OUTPUT_DIR,
                          +    output_dir = COUPLER_ARTIFACTS_DIR,
                          +    month_date = cs.dates.date[1],
                          +) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)

                          end

                              # clean up
                          +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                          +end

                          This page was generated using Literate.jl.

                          diff --git a/previews/PR379/generated/sea_breeze/atmos_rhs/index.html b/previews/PR379/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..851c1e826 --- /dev/null +++ b/previews/PR379/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                          Atmospheric Model

                          Atmosphere Conservation Equations

                          Density:

                          \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                          Momentum (flux form):

                          \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                          Potential temperature:

                          \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                          Total Energy (possibly replace potential temperature equation with total energy conservation):

                          \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                          where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                          Tracer transport:

                          \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                          Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                          \[\rho\tau = -2\rho\nu\nabla u.\]

                          Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                          \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                          with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                          Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                          Consider components of the viscous stress tensor in three dimensions:

                          \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                          Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                          \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                          Which can be interpreted as, for horizontal-momentum:

                          1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                          2. Vertical divergence of vertical gradients of cell-centered variables $u$
                          3. Vertical divergence of horizontal gradients of cell-face variables $w$

                          and for vertical-momentum, as:

                          1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                          2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                          3. Vertical divergence of vertical gradients of cell-face variables $w$.

                          Model Code

                          push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                          +
                          +using Test
                          +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                          +
                          +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                          +using ClimaCore.Geometry
                          +using ClimaCore.Utilities: PlusHalf
                          +
                          +using Logging: global_logger
                          +using TerminalLoggers: TerminalLogger
                          +global_logger(TerminalLogger())
                          +
                          +using ClimaCoupler
                          +
                          +# set up function space
                          +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                          +    FT = Float64
                          +    vertdomain = Domains.IntervalDomain(
                          +        Geometry.ZPoint{FT}(zlim[1]),
                          +        Geometry.ZPoint{FT}(zlim[2]);
                          +        boundary_tags = (:bottom, :top),
                          +    )
                          +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                          +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                          +
                          +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                          +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                          +    horztopology = Topologies.IntervalTopology(horzmesh)
                          +
                          +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                          +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                          +
                          +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                          +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                          +    return (hv_center_space, hv_face_space)
                          +end
                          +
                          +function pressure(ρθ)
                          +    if ρθ >= 0
                          +        return MSLP * (R_d * ρθ / MSLP)^γ
                          +    else
                          +        return NaN
                          +    end
                          +end
                          +
                          +Φ(z) = grav * z
                          +
                          +abstract type BCtag end
                          +struct ZeroFlux <: BCtag end
                          +
                          +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                          +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                          +
                          +function init_sea_breeze_2d(x, z)
                          +    θ₀ = atm_T_ini
                          +    cp_d = C_p
                          +    cv_d = C_v
                          +    p₀ = MSLP
                          +    g = grav
                          +    γ = cp_d / cv_d
                          +    z_c = 100.0
                          +    θ_b = atm_T_ini
                          +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                          +    θ = θ_b + θ_p # potential temperature
                          +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                          +    T = π_exn * θ # temperature
                          +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                          +    ρ = p / R_d / T # density
                          +    ρθ = ρ * θ # potential temperature density
                          +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                          +end
                          +
                          +function atm_rhs!(dY, Y, params, t)
                          +    ρw = Y.ρw
                          +    Yc = Y.Yc
                          +    dYc = dY.Yc
                          +    dρw = dY.ρw
                          +
                          +    center_coords = Fields.coordinate_field(axes(Yc))
                          +
                          +    # spectral horizontal operators
                          +    hdiv = Operators.Divergence()
                          +    hgrad = Operators.Gradient()
                          +    hwdiv = Operators.WeakDivergence()
                          +    hwgrad = Operators.WeakGradient()
                          +
                          +    # vertical FD operators with BC's
                          +    vdivf2c = Operators.DivergenceF2C(
                          +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                          +        top = Operators.SetValue(Geometry.WVector(0.0)),
                          +    )
                          +    vvdivc2f = Operators.DivergenceC2F(
                          +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                          +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                          +    )
                          +    uvdivf2c = Operators.DivergenceF2C(
                          +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                          +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                          +    )
                          +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                          +    Ic = Operators.InterpolateF2C()
                          +    ∂ = Operators.DivergenceF2C(
                          +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                          +        top = Operators.SetValue(Geometry.WVector(0.0)),
                          +    )
                          +    ∂f = Operators.GradientC2F()
                          +    ∂c = Operators.GradientF2C()
                          +    B = Operators.SetBoundaryOperator(
                          +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                          +        top = Operators.SetValue(Geometry.WVector(0.0)),
                          +    )
                          +
                          +    ∇_z_ρθ = Operators.DivergenceF2C(
                          +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                          +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                          +    )
                          +
                          +    uₕ = @. Yc.ρuₕ / Yc.ρ
                          +    w = @. ρw / If(Yc.ρ)
                          +    wc = @. Ic(ρw) / Yc.ρ
                          +    p = @. pressure(Yc.ρθ)
                          +    θ = @. Yc.ρθ / Yc.ρ
                          +    Yfρ = @. If(Yc.ρ)
                          +
                          +    ### HYPERVISCOSITY
                          +    # 1) compute hyperviscosity coefficients
                          +    @. dYc.ρθ = hwdiv(hgrad(θ))
                          +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                          +    @. dρw = hwdiv(hgrad(w))
                          +    Spaces.weighted_dss!(dYc)
                          +    Spaces.weighted_dss!(dρw)
                          +
                          +    κ₄ = 0.0 # m^4/s
                          +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                          +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                          +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                          +
                          +    # density
                          +    @. dYc.ρ = -∂(ρw)
                          +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                          +
                          +    # potential temperature
                          +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                          +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                          +
                          +    # horizontal momentum
                          +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                          +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                          +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                          +
                          +    # vertical momentum
                          +    @. dρw +=
                          +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                          +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                          +    @. dρw -= hdiv(uₕf ⊗ ρw)
                          +
                          +    # DIFFUSION
                          +    κ₂ = 5.0 # m^2/s
                          +    #  1a) horizontal div of horizontal grad of horiz momentun
                          +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                          +    #  1b) vertical div of vertical grad of horiz momentun
                          +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                          +
                          +    #  1c) horizontal div of horizontal grad of vert momentum
                          +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                          +    #  1d) vertical div of vertical grad of vert momentun
                          +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                          +
                          +    #  2a) horizontal div of horizontal grad of potential temperature
                          +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                          +    #  2b) vertical div of vertial grad of potential temperature
                          +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                          +
                          +    Spaces.weighted_dss!(dYc)
                          +    Spaces.weighted_dss!(dρw)
                          +    return dY
                          +end
                          +
                          +# init simulation
                          +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                          +
                          +    # construct domain spaces
                          +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                          +    center_coords = Fields.coordinate_field(hv_center_space)
                          +    face_coords = Fields.coordinate_field(hv_face_space)
                          +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                          +
                          +    # initialize prognostic variables
                          +    Yc = map(center_coords) do coord
                          +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                          +        sea_breeze
                          +    end
                          +
                          +    ρw = map(face_coords) do coord
                          +        Geometry.WVector(0.0)
                          +    end
                          +
                          +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                          +
                          +    # select boundary conditions
                          +    if bc === nothing
                          +        bc = (
                          +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                          +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                          +        )
                          +    end
                          +
                          +    return Y, bc, domain
                          +end
                          +
                          +using OrdinaryDiffEq
                          +function atm_run!(Y, bc, domain)
                          +    dYdt = similar(Y)
                          +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                          +    atm_rhs!(dYdt, Y, params, 0.0)
                          +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                          +    Δt = 0.025
                          +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                          +end

                          Coupled Atmos Wrappers

                          # Atmos Simulation - later to live in ClimaAtmos
                          +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                          +    integrator::Any
                          +end
                          +
                          +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                          +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                          +
                          +    atm_integ = init(
                          +        atm_prob,
                          +        timestepper,
                          +        dt = dt,
                          +        saveat = saveat,
                          +        progress = true,
                          +        progress_message = (dt, u, params, t) -> t,
                          +        callback = callbacks,
                          +    )
                          +
                          +    return AtmosSimulation(atm_integ)
                          +end
                          +
                          +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                          +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                          +end
                          +
                          +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                          +    # reset flux accumulator
                          +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                          +
                          +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                          +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                          +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                          +end

                          Coupled Boundary Conditions

                          The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                          To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                          struct CoupledFlux <: BCtag end
                          +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                          +    # flux calculation
                          +    Yc = Y.Yc
                          +    uₕ = Yc.ρuₕ ./ Yc.ρ
                          +    ρw = Y.ρw
                          +    If2c = Operators.InterpolateF2C()
                          +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                          +    w = If2c.(ρw) ./ Yc.ρ
                          +    cuv = @. Geometry.UWVector(uₕ)
                          +    windspeed = @. norm(cuv)
                          +    windspeed_boundary = Fields.level(windspeed, 1)
                          +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                          +    ρ_boundary = Fields.level(Yc.ρ, 1)
                          +
                          +    # build atmos face fields on surface boundary space to enable broadcasting
                          +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                          +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                          +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                          +
                          +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                          +    dθ = @. θ_boundary - p.T_sfc
                          +    heat_flux = @. -λ * dθ
                          +    @. dY.F_sfc += heat_flux # accumulation
                          +
                          +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                          +end

                          This page was generated using Literate.jl.

                          diff --git a/previews/PR379/generated/sea_breeze/land_rhs/index.html b/previews/PR379/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..557e3a85b --- /dev/null +++ b/previews/PR379/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                          Land Model

                          Slab Land ODE

                          For our land component, we solve a simple slab land ODE:

                          \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                          • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                          • and $F_{integ}$ is the integrated surface fluxes in time.

                          Model Code

                          function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                          +    """
                          +    Slab layer equation
                          +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                          +        where
                          +            F_accumulated = F_integrated / Δt_coupler
                          +    """
                          +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                          +    @unpack T_sfc = du
                          +
                          +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                          +end
                          +
                          +# set up domain
                          +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                          +    FT = Float64
                          +
                          +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                          +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                          +    topology = Topologies.IntervalTopology(mesh)
                          +
                          +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                          +    quad = Spaces.Quadratures.GL{npoly + 1}()
                          +    space = Spaces.SpectralElementSpace1D(topology, quad)
                          +
                          +    return space
                          +end
                          +
                          +# init simulation
                          +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                          +
                          +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                          +    space = hspace_1D((xmin, xmax), npoly, helem)
                          +    coords = Fields.coordinate_field(space)
                          +    domain = space
                          +
                          +    # initial condition
                          +    T_sfc = map(coords) do coord
                          +        T_sfc = 273.0
                          +    end
                          +
                          +    # prognostic variable
                          +    Y = Fields.FieldVector(T_sfc = T_sfc)
                          +
                          +    return Y, domain
                          +end

                          Coupled Land Wrappers

                          # Land Simulation - later to live in ClimaLSM
                          +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                          +    integrator::Any
                          +end
                          +
                          +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                          +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                          +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                          +    return LandSimulation(lnd_integ)
                          +end
                          +
                          +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                          +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                          +end
                          +
                          +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                          +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                          +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                          +end

                          This page was generated using Literate.jl.

                          diff --git a/previews/PR379/generated/sea_breeze/ocean_rhs/index.html b/previews/PR379/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..799957695 --- /dev/null +++ b/previews/PR379/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                          Ocean Model

                          Slab Ocean ODE

                          For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                          \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                          • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                          • and $F_{integ}$ is the integrated surface fluxes in time.

                          Model Code

                          function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                          +    """
                          +    Slab layer equation
                          +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                          +        where
                          +            F_accumulated = F_integrated / Δt_coupler
                          +    """
                          +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                          +    @unpack T_sfc = du
                          +
                          +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                          +end
                          +
                          +# set up domain
                          +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                          +    FT = Float64
                          +
                          +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                          +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                          +    topology = Topologies.IntervalTopology(mesh)
                          +
                          +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                          +    quad = Spaces.Quadratures.GL{npoly + 1}()
                          +    space = Spaces.SpectralElementSpace1D(topology, quad)
                          +
                          +    return space
                          +end
                          +
                          +# init simulation
                          +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                          +
                          +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                          +    space = hspace_1D((xmin, xmax), npoly, helem)
                          +    coords = Fields.coordinate_field(space)
                          +    domain = space
                          +
                          +    # initial condition
                          +    T_sfc = map(coords) do coord
                          +        T_sfc = 267.0
                          +    end
                          +
                          +    # prognostic variable
                          +    Y = Fields.FieldVector(T_sfc = T_sfc)
                          +
                          +    return Y, domain
                          +end

                          Coupled Ocean Wrappers

                          # Ocean Simulation - Later to live in Oceananigans
                          +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                          +    integrator::Any
                          +end
                          +
                          +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                          +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                          +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                          +    return OceanSimulation(ocn_integ)
                          +end
                          +
                          +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                          +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                          +end
                          +
                          +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                          +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                          +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                          +end

                          This page was generated using Literate.jl.

                          diff --git a/previews/PR379/generated/sea_breeze/run/index.html b/previews/PR379/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..b64b07a53 --- /dev/null +++ b/previews/PR379/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                          Coupled Sea Breeze

                          Overview

                          This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                          In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                          import ClimaCore.Spaces as Spaces

                          Model Initialization

                          Component Models

                          Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                          In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                          include("atmos_rhs.jl")
                          +include("ocean_rhs.jl")
                          +include("land_rhs.jl")
                          +
                          +# model parameters
                          +const atm_T_ini = FT(270.0)
                          +const MSLP = FT(1e5)
                          +const grav = FT(9.8)
                          +const R_d = FT(287.058)
                          +const γ = FT(1.4)
                          +const C_p = FT(R_d * γ / (γ - 1))
                          +const C_v = FT(R_d / (γ - 1))
                          +const R_m = R_d
                          +cpl_parameters = (
                          +    # atmos parameters
                          +    atm_μ = FT(0.0001), # diffusion coefficient
                          +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                          +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                          +    MSLP = MSLP, # mean sea level pressure
                          +    grav = grav, # gravitational constant
                          +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                          +    γ = γ, # heat capacity ratio
                          +    C_p = C_p, # heat capacity at constant pressure
                          +    C_v = C_v, # heat capacity at constant volume
                          +    R_m = R_m, # moist R, assumed to be dry
                          +    # land slab parameters
                          +    lnd_h = FT(0.5), # depth of slab layer [m]
                          +    lnd_ρ = FT(1500), # density [kg m^-3]
                          +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                          +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                          +    # ocean slab parameters
                          +    ocn_h = FT(0.5), # depth of slab layer [m]
                          +    ocn_ρ = FT(1025), # density [kg m^-3]
                          +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                          +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                          +    # coupling parameters
                          +    C_H = FT(0.0015),
                          +)
                          +
                          +# DSS callback
                          +function make_dss_func()
                          +    function _dss!(x::Fields.Field)
                          +        Spaces.weighted_dss!(x)
                          +    end
                          +    function _dss!(::Any)
                          +        nothing
                          +    end
                          +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                          +    return dss_func
                          +end
                          +dss_func = make_dss_func()
                          +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                          Initialization

                          The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                          Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                          @info "Init Models and Maps"
                          +
                          +t_start, t_end = (0.0, 1.0)
                          +Δt_coupled = 0.1
                          +saveat = 1e2
                          +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                          +
                          +# Initialize Models
                          +atm_Y_default, atm_bc, atm_domain = atm_init(
                          +    xmin = -500,
                          +    xmax = 500,
                          +    zmin = 0,
                          +    zmax = 1000,
                          +    npoly = 4,
                          +    helem = 20,
                          +    velem = 20,
                          +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                          +)
                          +
                          +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                          +
                          +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                          Remapping

                          Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                          atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                          +
                          +maps = (
                          +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                          +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                          +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                          +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                          +)
                          +
                          +# initialize coupling fields
                          +atm_T_sfc =
                          +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                          +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                          +atm_F_sfc = Fields.zeros(atm_boundary)
                          +ocn_F_sfc = Fields.zeros(ocn_domain)
                          +lnd_F_sfc = Fields.zeros(lnd_domain)

                          Simulations

                          Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                          atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                          +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                          +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                          +
                          +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                          +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                          +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                          +
                          +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                          +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                          +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                          Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                          struct AOLCoupledSimulation{
                          +    A <: AtmosSimulation,
                          +    O <: OceanSimulation,
                          +    L <: LandSimulation,
                          +    C <: ClimaCoupler.CouplerState,
                          +} <: ClimaCoupler.AbstractCoupledSimulation
                          +    # Atmosphere Simulation
                          +    atmos::A
                          +    # Ocean Simulation
                          +    ocean::O
                          +    # Land Simulation
                          +    land::L
                          +    # Coupler storage
                          +    coupler::C
                          +end

                          step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                          function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                          +    Δt = t_stop - sim.integrator.t
                          +    step!(sim.integrator, Δt, true)
                          +end

                          The Coupler

                          The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                          After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                          Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                          Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                          \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                          where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                          coupler = CouplerState(Δt_coupled)
                          +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                          +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                          +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                          +for (name, map) in pairs(maps)
                          +    coupler_add_map!(coupler, name, map)
                          +end
                          +
                          +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                          Coupled Time Integration

                          Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                          Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                          Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                          \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                          where $F_{integ}$ has units of $J m^{-2}$.

                          function cpl_run(simulation::AOLCoupledSimulation)
                          +    @info "Run model"
                          +    @unpack atmos, ocean, land, coupler = simulation
                          +    Δt_coupled = coupler.Δt_coupled
                          +    # coupler stepping
                          +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                          +        # Atmos
                          +        coupler_pull!(atmos, coupler)
                          +        step!(atmos, t)
                          +        coupler_push!(coupler, atmos)
                          +
                          +        # Ocean
                          +        coupler_pull!(ocean, coupler)
                          +        step!(ocean, t)
                          +        coupler_push!(coupler, ocean)
                          +
                          +        # Land
                          +        coupler_pull!(land, coupler)
                          +        step!(land, t)
                          +        coupler_push!(coupler, land)
                          +    end
                          +    @info "Simulation Complete"
                          +end
                          +
                          +# Run simulation
                          +cpl_run(sim)

                          References


                          This page was generated using Literate.jl.

                          diff --git a/previews/PR379/images/canvas_coupler.png b/previews/PR379/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 zcmagFbyQSs`v$6lAW9?MAR!DO-6hR{fJjLRNJ|YM4FXDc3?U^*N#`)MGz=l#ISfe4 z(0#`5`(E|^t#dqU?LSz<-p{k|c<#9FYlo^oQ^2`TasSq>TR2LJvd?ebx(mB?3vKTn z2I?0o4{-mjTXeUSWTjuY8*QiGbtl%D{NOexF01G`Y3l0cmalI0NlL#sSIU27cZMXt zI(K*1II&iJZa%$^@ajb5B=aLMHRe4=9sQQKS|%Q7eK5_#vaQN;K*YA;9wt`It-oC_ zKzBG3FE2gLA4%Q$+eOD2Eq0_PA^i8%Vx-KOr79YEjD0dh|F&z)J9?>#G{HN6y+QtHA-*yR3%Ry3ZW6w-Twc+{FPPTnR?_lUy6DBf8X@;d3@IAfK0LM&<>{8N){Fw zd=6BsP>-{b!bzLZ&|@&>UMXAT7G_9U^vCUmBzj;{XRnSVm3XMd`dj|bdO5d33s#td zqcdV^DC5kBXT1glM&$()LmauBoCuVFLy6VZR2%$O;$;|rRq!pWG~PRMVF;iFghWSY zHjU0|PcoUFcWpNz7L8KLsysMND3-;V9J)3{=HTZdC2_G(5zje8i!R?3oG}<`E228ypMEAY*%=u2(pR7rfxY)yS?PE^bTF|FV|9n=~=Kb zRUDp#s1>WLcXjHVx83_Ui;2vE-7_6KMO+W!?Wt{*pFL}?_Or+}nBvjR@T-sdoQLSk z8m2^i-v_|uY0pe$_BB|}lM82G&*!~1u@H6;`@8-v8Ptn)eHqx*GPa?85;{U{lw(Ip z%S5$3YdeLxAjn~~lJ2VlAvknmnZjusonchChrcmDb z+i4H}s%5F+6hw$g=wv^V25n-RU?9WAAN_7Ua8kndkuX#D^?{M04UEa|>FdFj`H@P! za)U88T_eM4ecvnI!R7(gN$pq`ni9^ID`J*1z?>@T(9ryKw|ANZtP^@hx&Yb|T;$Bn z9^E2Tbl#T`4EJ9BTrzSVKnET8Ds69f_@jxt%jr6{tG=5JF9c>2HkwOZDg zsRzpaR?myt%yR`c(+VO*xKsJ>CtQnfrAk7)JaY{^O+pU6ztmDi!{VCT1r+lH?%-fM zCOHLC0z(AQ(w{gt6u(S*_>3#FRp?5*U}szYmKgvc$Y$u zjXktXU{lO{_5Ew}b)^^YliWS)``jdHeFdnq!iV=53lB=e_acA-1FOrQW~qoJRC>XQqLUS=jg+)6m6EJG|w&3UVu@3&i^0 z;xsB$I&$7i1MB*7GWVIq{Z+b{))WS*ic6JPgzw)EC>!?eFa+`1bEoXTZ*3WNs}sp9 z2fkqXiznSCEO>%$z}BxKtnv2~N+=|Q&I-Idz-gEi=Htw@fR`w?4?f?gp-1Jw!D#C1Hk2wJxBZRmy?1LWa%2&vqBkv zOXv9V&f{1k_720BngF*MU`J@|zwMG{d*>l+=!ke}|F<2M`iZi1eb>kj?)@K$h|^F? zzVCZm*yr~Ktanic%6-?N`hTJv2TNY5s6sCmSUpz1`aR<2 zRxt9)`SAJCx?;5DfpiAbza?!YXK`fiK#ClB zf3}H8x;%C^h4xGG^&6%NoFpCDYBEW1<{KRMrvI)OP})|f??5VPQUKx1w?VT5e&Ny4 zMc&9WxytQ5S#mL}Dya6*Q6UFpfyAW6UXx`np{zyZWlAaIP~yMS#}YQ75RvIwc%ZG~ z)&sQ9#(O)Jww7yt8CUZsAAk)}8pt)L^N87(F;3$u!4v@@o zhdTe(zvKNo&)C83(h{%K#hsj-V#B$xz;kondd&chws!GcdvQtOw*X+Roof91_WPoU?^(l;~7%)EKqN&OLG zg<7-v=S?qU1im+Cn~CKf^^L;)wo!vEJTZQa?YzgA;6yhX)4-h)!Qh#A(GFVP7#|{YkN0MWf4Py8i$1 z?*xA-y-s9^B3=r2gMZxy`~ib@W0N6M{g?bl9qWoi`H;RW6Mn7JV*)NNQel@Tz_@tO zYVNgYt~2Bd=)mri#rSqbjvgVw#^c>x&PrEcJ@#gUCU5W6>+c0Gk5kP2fPQKtS9QuC z!_giIP0b&Ai1_m9lMITo&epz8SO!2J|90CK_CE#EPs#;OQXpGphDWL{Jf|BUYmso+ zo7^8zpfx%xV^^qX1TFT9dHuF7s@@aQMDJq*8~YfRyX;Z3+iK_b6?|$KsLt3X>}$v+X}~pMcI)PlC3g3lkh*((IMUV@m=1~e9No@6tY3oy&bE? z{(L9DzaPo#dIUB8XD9!@r>z^Epw)Q6;k69NqN(lf*}f%diV#T=G#~yUTh~a>UO$87 zw=}4em1cOyoES#QhfLIf+kPCc@Z(SgoBJ^pm8Y9#zbJP4f|1Fge*si12tGZ7_U^cS zP|~dncJVQ-dJ(zLV|q3-UdRIqQGE}==tNd|sr|6}<>>3QxATc%#@}@mOideAC4|8b zOO4V25}T|J-@YwAOw$+0@0)d?jxqORnJK&9i9FcDK#>2-=&l6289}a3pVkueTMkSy`Ejb2ALQ#A#X86hrvK|4 zr6sj)gdl_{I|{P&EZOavJ(ijL<%Kezct!(mL=ncO!nHoG(lVo;4;sqgs_!3U_?+Vw zeByLIiBCg3gr%PtE%*P5sBD}+RpNh`_p#_6)f#X9UfhtRChg;ZM+)3sbC(6NK_lQm_6ge&_cufEsyazN4$qbxh| zi+-wcL6JV@t93JRU@!|ce@75;9iZ_L7E|{e~{Fe*8aR2E- z4o!^xe24vgeS#hc#{^?{r>r{b`o14YZ+p*ctU)*JTC1_$3{3p|IupeziPmhXTxVIK zPT;+H=cha_t{fBrD|=*2o#kV;ON?gB6Wm3Pg2ll2yUw_Mp91xWGsM;YsPG0!Zs(K0 zf+MZyN@me}(;*zZV$GLprUR^MG0QR#lHPnE1a&q8hk1PG-k$AWz%9e+qhMKMXP%@&D&^&@a*AvI#;3UdUP#LCuJ#w}| zwtwQryExq-s)-}RfC`Z?O=h`P-W6zUXN$0bDJks~NvF|6k#j4zV6Gf!($ra%gDT`6S+tPM_snZGuFn(t2GK zY?d%qg|POnSiIkB)yPOo@H&rQ6a1BvQA_p7qT0q3M<=s?JpaEHlz*RM7V5BY?oQbV z=(sOec$lR&@&rPc6Zeglg@09$FAPxi1N&|by#LQ7QL7FT`j3X12m>|YCV#$eUnr`C z0Nv@G|DBuvQ;?*!{4BUyCc&2SzZFh`Dj^z4|9t%C-&yFWEj_}2FVK3XM#t1=mRkp{ z71{iFuAil*?JJe1lYFtJ8~y$=Ybj)#=ynm~h?ptU!aUb7|6;y$$mxZJgCQSVt%*mx z)8jpAkl$}T|G#$p>cjWc0cBP?5eI*-FInC0aJosw!Zo$FA@Cp3=eZgRhtcBC_&6oKilyY}DrT z;H37mCEnPJ%UtxG9ebJdPWcUlv0c{S;AE(j=Tb#8Th})a%lYO{QJ$&2GldcvW_v5W zs1QT-j6{Y+&p!MPQ-e?Z<-4QGe)PcXR4XpA1J`!{WyP#VC`|(yTu3DIb$v-p4%B}y zy+nnwmuR=^65wCvkwX1AtSVJ87s`o||Ma&dErX?UAHo9f%;(CxI!spyYR1JmhcQL& ze3AF+&Ev2}c=CVg^n?*7VZat|9`z0yk|XN(ZYrz5r09z6=f22sNVi&V?hkHGD63+s zz;Tjc1Mg~gCj18W@Y&gX&pkEhCK4a(J}Bu#QsjA_a7KlaQ}^#zRgXgN(*!6`hkMpG z+D?PS46BMn?XgG&1xe2iVP=S?t(#g&R0+F6O0danxQho){K$hST7;cI3ttc|$^UB| zw)eUVP_qbAX1=pYzrfGyU~(!f@@1`kLJ29)_A9cBEH&%T=BgzvZCa zxG_)-jY3vBG?-ZiMSQFTMo|q^-V|$~NqQjn$qIG4b*jI{ea=Pn8N=dVpR;@2xJJaS zk&tZC4}3g_%^VdHl4ja9`)Ci@x(5|i!%7Z><<7PrpYET&7iM1_7^Yss5IJxkx-o7Adas5#Zxj5Y+LADsf z&AW=c5M5hO5!0OGofR}K<*r%N5Uou3ki(z@8x2h<(lNMZ(Dm_S@XeN|6q&>5l>YT} z@?!@f+&HY$2EGP(8b&miH3iK zNfyPSvQzq+OXil5jQT3AIG70vohe!{ky=`)6INYP&JZc}KfP#B@_rh%J(b9Lv~^Aa z8Q6zUBUgDTw-;YlW~HE`*D1a9ETs}jV{(1*+RcgJY`e&e=cWdYWe3%$&*wAvcE8m^ z)Cl7BDV+cCcWMqnxD%9Hy(JQMVo>W+U0`C@&QI7sX1`hk$K1@0$olj;{`j0knY;J^ z^5}Qhxz7AwwR#-jn6Rnq@Umd>_FSW-jAVOci9kAwY0{cr-6-8s*B|oB4Mn$#jM(p- z?0&tQ9lvFG*~m9*l1sma$$L+Q-Y^q|_l)x|G~AF}*z`e21bDlxFIGh^#84;fM0`W2 zp?mLMoROW(>vMf9x&mZbsFrR9+S*5fAL0u zb4NpFv(Jm7eSb|f82e;7aPuC6?2KEj@K88~<5a7ER4_(e952rSy6N87KF%XuGjZmD zDaMxT3{=;kEw?nKq&krJj4jJd6o9jn-RUbYztBR(#Wb+vO#)jU%gnnJc%vMDTLzLo zyy*XxYXba0|1P-q$XA}FBmGz6h-oFK`>&#e-7L&P!wwVn{KDc>s_Zz8g&MtFia0|< zg^_ioV=hz$P8wS;bA&2T+L?D&cwahL%tn;AtIgt-9YLuvl&ty6y#iH4@;Z*DbsCZ| zfipYX{|r=)U06aTy0|CGnHl_@a%Spuaci4wEySD5cz6d-oY=bImFC@pE-5_D(Gj$I z#$R*}z+N*73O|`QZ5O(b1nx4igG!>nDBY+EGroNE!RYJ)}oR=5hw7 zkjHLhjYVGZOEvr6v%Il1rl}DfT7FW0v#VHD zW}$k?l=meGU<6W^xExz+bfc=nv#=Ti$`Y%=ce{ZRhY6Kf9*%i6#2;@0jCDBoBx{6El`dd$mnOY{>1>{N zQ7Og{v(nt+MzN4&gWkbAM9EovM2WMOqkPAyE`EKsW|XJTOD25jv>340VE{L0s>`UZQGKLp`V5g8Jj z#a~r6VN-BXsa0$@X`NnpL2WBCme^fgN+Vzq9Gd1ojdo;JU-}b-7mVd~DEbz4Q(8AR zae}cH#i*c`3_m@av03WQeCco;sg$M4CvI`KUe1 zt$=AGB0SjQ77was{Dwci*ewS-bjq47kYSV0WIcAfB@7Q&ctL#W*A?omqy*#j>q_2# z8vwW#>kT=q!jzjnxot9|Ru&kY6rM5)55)UYNBvs%M>(BfC~%~%4=&7O?bNujU+t({ zeOb`v+hVPN;2|E%FZh8=6Sa=!-*hq6Zc#d9({&b~>Kf%QoNG2-wo7Uj(Ja;q{LoOg zpG0riHXv+2<@D5)aehDmf6gl+e*@8YrV!2Y&$)Rfk3t?m;iE)5H6Ho(2IsglZ2Gmi zu1M_+weyi{L6bb$Gn5biuNY8`EddA)v7ypd@cyBJzgi2^gOiR@s z%B@mcw6%Ul3L(?BiaCF8QDmlTdX`2W*)J10u2Pi;+MIx<-d}ewpSDEz=(mL4Kh^ea zg=R)-8Vb*uCH$$4kRVJ3Vu^%{2)y*3Nd9+Q@4o69@NQw0Gdb$$|Zpf%i65E z>vuKP^xYbCeggkv6lzKD_=OA{XQKu~e?A74s-}@NhgkPSIgK8fj5OKu?+iIV)!DG) ziQ3KXK#tf4`(!g47Zni)M=h9~V@b;@h=N3lUF0jz5qeIO7dye>lKA>Y#740<9&@&gzbSyT`H7B$kBkQ>>X@QTI*Hb3$Sj=6itB(dg;M-|?i zaqb=mz>o0Dqgbt6C2BQBBbg3PwxGNAo(dInYxUEu|8N0Px4af}drl|cI8)E?8|>E4 z7;6`)FIb<_H|RFsSVg%|fz%1(4nDW1OOG53;~#*Q$ce{G_8Kqk1H>Qryj)cDnO*07a z!@K}5+N+KozPwtqj2{ohPI>@#rJ20J-|=q*Vc(l{OloW@NSV$nuR^b24B_x6Yf_w_ zCSw}FnN3p$D15!{YYd3mcPJ>rz)_$dn;f+w+4id;`5_}eO>^&wgaOFkX|UzX`uh-~ zh&5HT2wMz1N!`A%+nl<%4^G_QwKP=w@y&2{=tqFG{#OeC8gzJav|C?AN3=Q*C-fE>UhL9?2)G645eomSjZrhUy4^Wm#R}hOur} zgEEs(8P%*o>w?@j_q#YFc(X+@(q;sWR#;lBihB;?qbdAP;tMO@o*W+gOd}or^kr89 zJ`Im#`zJ{mEHrb$F8hHw&(5pyP>#OUu$$OoRQA}T{s1PjEo>cz|7H1ygccyQ=4O!X zxv0oD4*JF`AZBDZ)gW>nvkGxddOw?zV3x+ybBPH}UNNi4`{awoR*|DGeAFv<>+0)>+znbFmmiRy0B{=phpq=7 z{e(`v#5E1Sd?|uHvonrAYkKSRLpynuD)q{qAE=`vF6&ed&|`1dXN?2srrLi_ z9j`Q1lsOJmOf7HVR8Q9n0T`8ijGuZ+j-CsseOou zi8#ry-h;0bu=uDk|luZeP2%MDboxW(-4A+yJm<0iWQh zA2BTRTjD)klXw0HsY3P5>Hsbr5Bpy*rK7-4EHJ5-Q{DkwI#W(G?7UOG2BLbBlm(XO z2=cZ+1by9RKWen^R=i=ftqJ68m?A-FjFAa?B*_!nlu_E*hXIb-&}s_u^NUD=LA zGhruEZ?A(?bkf17lv(TP9QuKk7ceH&gq)x2nZ$J_M>jS6M2`P(0VarYo+m2bON2L4 zGwpFY+WW7b3};*!X_L%l{63n>3`^Cf!eFDPbMnWo^=lWO3UkKs@0~3QL(h0Dzxq~< z9qfuSsPKiDt<^BCirk0vYzDmw!@T=&&v8<>l(^6^<1w0J=@TO-hr;T_90@=vA6${XVq+Z6o><4bJw>nRJ9^H~+UJe2JSr zbA>360g43{{?iU_6yPO@dr(w%j~|ahI}NBY2m-VWjNBs=>Y)zKfzO3?Jm#vH+yAtI z0%HcyG?x28sNwyUX6w)|C@;-lO2gE{ddpNc8k<_Tdza2lj1~sCEz<*}xC$<4(!>$^ zW+L|3S~QvUTitwxQ+{nRH#1hzS8>n5SBbRp9$|>@x8J{{;XHR}<_htw7<}MbP7Dn= zC6TRo#redpl`h~VpOQ`zL-r8&Lg!%aL)2j7gV~Jg)&WcKG{ZA0g{Pp>ZLL^Jc)An! z^RoJquZ4)QuFOR$LoJGNB;TM*$W|1Z#~!7dMem}+7+=sQSfFj9dXY6xW@7HNmn@t>USkB{SyJvjtDb*Cdi=199`nDq6=6i0SeOx(Tb$y zo<&j)G;_Y8wlXzT{{h*1W6Sd*6}sG@O>zpUe}8Ch_%zG}>(DA8H22E{Yp-6^j#0{t zqN!P9MEiW7p=@!_cv5grAAc`%*Ig%Wc5NoukBZs|`>iy9B{T=v(?`)_V2m&IT4AAq zSTDdrF(n1coJrLl)+pWICmvnQ$x}7gN1(u{!57|EK4r!)MLQ4=;6jxyx9C=f3|(6J za@xwX%~-)GaFqBrW1w}KPTc?-XlF`?&7bM0d{eq3sVvh+_wUMRBWmms(+LXOJES=uA+PsCPV&u7}RBMUHhn+q=H1X|V<@hd&ITh>S)TME@ zyytR2&eK-*W`i;FD$a)LJ6QBOCzDUqr)QAG@^CP1{?%w?0yg zTDuP>D=$-6oub;&yVmU5+(m7{tMJJ!99Et2Ikt)kwWgd!X}qp6LC(un5xlPQfv z-r)o>fw@M$KXjC7gw;}8_l+&SftYBfVw2UEC{|EKiY;%;e`<1Q;UK|0iy?FWettF7 z0V0A8$2{a>bOeZvot@Rs%&R?w!7eiI??(RIWCUT9a(0;hGZkg{6us?rJkG~PRWn0QttC-)vSZV_)1eky z`RrhLo$i%hQz`^S1rw;TN8ve)@Au}D9;0ASk|K?QBVkjTz(70ka6nZA@%r;R%UD#~ z8T<|BtEj@3gHSu~_^Z+4(us*a@0hSfg%!~2!6hrZyc90HBT+i7qB>X+T2B8WJ(U@N z?4_1-yJ7#ya&l>jsmHs_BHipmI~^;7zELgo@$(Fs={#;rYT}{gl|9KOsX5Ng`mX~L zeu~wnwk6m}q8WH!kN6358E`BL;GGR=t(G1n*xOPjQ1 zbmU~XdD9<*HPg!b=-bX`j7+Ol;m^Q2i{h<=zT5iP3?0r9{=Ct>Cw{q!sNxqLc0_u1 zKU?S9Wp(`^)Le$E_uH9)69w)?)&2#{>=*v_!u!rM4lv%PKJcXxzLf(>=o-C^3lUae1fETTUNrhF%$@h};MZ5d%q%Y6;Ei&E z(@myKsLx_<%Bp)W0r|4|sdUWEAuQ)DOXCqfCW)?qeyT|)+-0k#cYBD!o%7>l zX{4rfwn%QDduYK;yOjqsd;}k0Q_!&Wi>wtx8tGceqyYQP1*y0fffZ<1p0CuUcfwO$ zueu&GzL$wnXcAGkbvj)7y4mxZAG|%4VsB&A{nDlNLCy92X;Xr!@Y?O}qboslG8R4t zy>AJiuPmX+iOF7hgP@+v&5KZ;8@OzsOULLk=pyl29(`AMIV6%r~=bP5*d z?!*n;KcK|zD?11qS)>8t?y&bUCf3`0;o9^|@An47Ba_L=L5(1lW7^(WCbKV_-lMO} zuc>o(O8k-EBK--8Htb1Hzpk{?+By3u8?Mcd*+uQ_i`!oELFx(G9rh}Q_%5ktYQjv+ z#NpE3wBk2)#nUf;h&hV1SYG1(CKo(ZXf5nSRvHO}tPQ`!&vDAn$$IH7$(lM`u~0#8 zrP1BSGl1`!kx*@@x2|V23-{(OU#+e?YxgjkTR+7;_V1F{_EvRrMhlOteSA3|w`OS< zowg6;#O5S{&Baw zF{}g>DJA3JOTvW+PQ|5x2a(mP8-e_=B{d%iM>f|VDT3Lin`nt;Rsqdqu zgr8I5Ve>*+)aY4b{ly>C$28Q!zR&g#mVU2+n!Kw^{hU|N8+N&Nq78X0{RCt*}A(_lm1nI6d6^juk>E`g}s4XPM{c{0vcng=@njj=?)0HDO2fvZx_jI454b7L4%q-ryl<{={!uFCOgw93uVh^6)5D z6ZF_S0-W?-F_8IorGrlW<^JgY4bKNnUqP`EAZIhri#q{gt1vuVuyqtdym02|>d}^L z#`a>o#zMo|^)EZIar+}5!WfG@fl^ss(8)@Kk4I^X_)~*jmSe-m`I6N|hg zDvFR2dHdE`3D_H};Uky|1Kq$YKwIL&az@!HW{}=gMCe-8W{nSGquG^-VFuQ`lR>?K z?0dfhy6nNa7}^v#ObX5{=B(K~4-GF;MDZqz&)KC(2Ir2-%o6w@F;DQUrvT~#WkB$I zA^rWgaKl(+$nH(M;4w^xmIjonzg4)7BJk@3_jY{!=-T`^H+3>(LzO8nD0=$sQKf8( zu!VkMv(7{$XFbCU6i(26UGu4FBB?=rekJ?W#9fBkxi1**FohzR z#xtZ`XMKi22vw~|41L-MYlzUx1BJ%^l*SyzxFjPY=5)^qflQyPUiz~iM_2hx^K*E! z$@NyT69YO6_?*-kg-lULr*}y)KKke%315p{9f4O$k4CGaOC3|$4O2RiBCg`*Q$G}) zInIxT9|hx)I&gx59=wH>+(zm)yzxmG*MkDzxTA7W6hod2+sU!+_p_0m%&zAPuTnYo|h77Z#0FhBiH}5IIF{?Tj-qzW&k1cfFIC z-!!fS`gV7$*F=qsSi%u?>z9YVeHw1hCNUqpKS8Dn{!UMh*Z8bT0ItI0MrAo9?$8*Y zlsXsnOy=WAee|%8A`rjx^8!Fh)%qjdf)bYghSo7QGD%-2*@aX;P*Zqjl0^fCDjNDh zAUXO`s+K5@pKqWKKO#anWF_%(?yZ#TE zi#S^913rx2h^4Sq{PVh}t2L(LVk`~q&gFB@{W`^q_klz*w*AML8{ z{-%sqX*`Pd>pvy>T3Hk8#aHj$1Zw0-***xKzIl$C|G%^;J=|)Xc@v!b$u9HDr@Lmq zSqStG@zO_RYwcBH_t6A1hZ|ZZfk&S`J}&V<7hocvXaYBt9=M8%U-aB}o?mZVlz(dn zjCVp4Ofih~se$Sx{`gWVdunMNa5mk#ANlzin%~*#4jS^T0W)0e(JsrJj-&bjnU6)< ziMhCrz1lzNZYd3283opU5%1o(-_N$mdb4w3hMa*l3@EiN&sTVHC_U>3uZxsQY;vhV}rcmbvH)0QM6uk~P4xjs9 zrfxmE_a8b#pQg`dNRdcAeOwzi?s_F+O;ug+)IL%@Mbb66QK+<{!v@1+{Q^u1tm~E{ ze#&nFFY)kN?dFP}fiwWqJKTzL+{YI~d4P=iB1J%IpoXO8@_{C?RLSjbRb65=f8Mq4 zU;CdA;Mlted5DP{Mp6oM2rI0q&RWm)gqWPcyWwojo*#qnX~DZ3_{n8(6Q^Q4;52*PjJzWT#`*Q3v#TzXcBJbX~UiaQpN+tF(}70TMdvDE?uy#_pStl=tP_>zc5cI*V5( z(4LmF)0j{z6j?n+aNR{UwV`-0hmXpOrFvI#lWcwE|>2A0zL88yz9IknC46TX_ug{Eob`3m}U4KK`F!t+hS0@oRj z=_x^>-l&YHq_LcKNq@{2E%AOggClyo^(a7!C`)NaGMLfJULJCiD!eR z`|5*QT^w5%kLD-?Z>@sY+6I$>MzqnyV;scsRfFORoCXN(=wYlmx@(jVgm@Mni30 zudg`sPZq`XOvppDA|)U1d6oI#`eL1n#JpY9bfvNiIgSl_nin-?!(bWlRoYhIFz%}_ zzVN}csExPB`a6Q}s*98*>rvM8!9n>?6kc7dyJ)c;M|$E^gu^k3ixU9hy4NEy_pHCQ zg7NUao}BI*q;Ov)M^Ka6Q9OGp1d*TZ4!9d2yrO!2DsD*9qM`c1ayB1pA6maMuDZ@e zNSegn7r(W4JiSS056qZk%yd1)yrk~BagjgisXeC?oP3*B{$!SSI@8bQ zCSNZ<%EsfzCpzfXZfk(>2DB;1)Wb$O<8VV?E|aqQnOco_Jc`MgDjZ1u-bX=VW8rk9cjA#!j9@@@WQ(W*>o$yfb~>KWq?>J=amf7*0utP*fNp7CMApsK*F+Q4 z?^8!qz_TCKrUt8gv?0nu4ce=!9Jk(nrjmYvD0_47s3`*3 zTJM9<`YPjD%Vy1yx$*(j6bx|W4IiIBwiU2*0**R9eCjjc>1%Og^(ZtbenKj$wjnsY zkz4(dH4Q=Ldngg0q(>`jrb zeLB&xZIhU8;j{guBl_O`^OpnS^yiF~x!q>9YZ)IfJ6!Af=EtNR#5;%=xmupH%Yf3fG$(A4XDaB2XU z3eSzGy{$enZTmhZ{Gt>(p|&u_3U+7__TZOVzQ8mUrdl=>A@!zxDk#6s^1%1FZ<~y0 zf8pVMhVYkDRYl8}(ZxGXISZWd)ym|VyiujqH26w@oz$DSSu8yqx#Bf7 z#{68BQPOC$Vld-&)Lxqhnk7!h4ho?GibE>-POA;3qfF0?Q_-TnlVabycAOv;EM`r4 zwz&dTqz(BIvm^wlnEMYgVn!bh#HTdFg7w@4wNv1cOxzk`O1+2@N^CQQ@=L-#t-5db zKG08|bEZ1z63te@20Ae~YpkCbcOpqeN(9)kpEw!?GV_syAgrFvoR6r7j&-H$YP<`f zo+EW%Y8SsFc!}XkB`mP_9)@*70>&gAtc9%EL;EUJmlZQduk8?|zf#Mf*Z&Ig{cPGM zU3~G$t$i()iU273il9veCT$sW($*KrV%!d8S?o*dJA&EU3&T@VArnIOO0!y{r*Rjv zI=uVLPYjo)3VJIT2<-Q%^`EQaVCaa-TT^%=v(S3)f-C1{(DzJd5mS#L8cfxM`|^4nppGc9$s#%sV%O^q!XGnG znFCCEeVyh}A#k8P8E_5M%-7*}0^q}z`SuPICR$BrpDKUbRh-KE4Je;COotAH@oB+nlkDF(kbZ41%RxOp#Zfy}VL~s2` zZzsCu0r+HLJoT#T4)=BAO?Lo`;y*pGqx{eAG%7a<9}?>mc`423S`BK7y}|ik`%Qt(tlc-;}~9S|8UD){RbZM$u0$~Ccxt31It~W0eXGg(X6)VHGCcV zN>s8X1zN9RmEmHbZSBW8`cgA|BM{cYsjrOL~lk7>g(E-7cr7kD{V{h$PNxc=b-x^ z(K7UGhazi1(3@+1qqS$#Cea#B{To3SZa+Gh2}zc%-Gt2^vvmB(3FdF9n0@K&&-u-a zVd5@><6gI&YLGIop!a0ootvWuv&z%Nc?& zSE=HjPMx6Mb1fwb_=?GjDOHYSv2$eyNFga^+=Vc}3DWGU%54*hunI!2AUj(n(_Y1) z5EOS^L^ANgN~oOp2<56+vDw=&O6^{|q13kES1pihLztzid6Jr2MW&lESFYFELg7uq z0%i=ldvcq>5qv|yRmHOVgv=;w3RI2H^hzTEGtEz5>2_{|ekEVjJ@+OPGYBGVR|A0Tweb zqg0&j?X?DfiIcrFhcl9#9IQ0IaYMltnT%MT{HR7^10bmOwhbYw9N>+pe_s@y$M%VgP1M#gyFwTh8 zZZREVVV+^Gb&roHzRmq-(s7lUrCHhm7(3kNmMIaD?YUa@;8@rCv)?@jQzHRm!7tB% zPpq@7Wt-!*Y|YE#-eBT4IHGtTGs0NloDrugq;&HC+e#2bg=oZW>&o~oJK~lyyaSKo zLre-3Fq-P7Q8N-Z-+2bksn79d-5!9m>|-sqUQ#_d@7Nl+E4B^~jsv(Qp6sJ&0z@UnwgO9vH{PrXj~A|4@s&LjR0+JV$ur-A!< zhZmA4K5Z8zd6pyQ_-7ft^N8ks}V3Z>6U zgQ5C2&ooK6u`y!ajP$>EFbY~~QXvQI4y(Gpns=qZ=UT$Y(I&Ee1?79O3t*i}MJGzD z>~L8Lh`iAW#sAMyQ$8EySbVrO@$cnAC`R0GKO~_`uZ_gB=bMS$Jv=|^4I8x|{QBeP zb??G*r1+~QqxCKcTN<3rVTVR9Vx;g*u@v$RJT;rA8vf0gHbJ9$vO)5)aRhe#>0(OU zE8>bKlKmzme@;ue@k?`Vj3$w!D*L#VzB+CGq8C!}qu1h3)ji)WurRMgKl+r+ltUR7 z+WcJSYM2u!PTz;|4**_`L}MkS_+1L4P(9RJ@LL;;i#Pk`RujD@!vq}svKgP<%IfrQ zya2p2+5dex<*&7sn!dR;{%y~zo@|LyD8u3ivTKXeIQ4piU&bVCYU7eVPHygspW|?x0_T}!|CA5@w0Xi52z$xG0By@x9}Se>EO|~U zToMRB{tfEwJbSP~8F?}3gD>Hw;>bvBFg^DQmbMG^fxTVa&dR2q!9BLZkhYWzI(-z! z#|(4*Q}XFMOy0M2iM zP=j*gXwqUlzj>NDn`NwS!xdGe5%e$I!bF{KNb7!N@BMGv3v6?bps7?e1rKRNieDsl z5u@%ZRShNMt|`aw-NG_w2fp+ zqU^QsvPSk!UWU$x4|%xfxP9iIt{Wi(a#7Zi)C%Oi0?1b;LCRlm&N1?;^N#VI&U){J zf>jgAo2;4$xsL$6szv{BfN9*`0`2kWw!keIc z`w(gQrB|N9%G{z3{#)@a9j(_piZOaUeagP${}))pD01`_0TH&cjVQsk;P(n0g^Fy< zd<#7|mi@Y5;d?c$_O}+SVr@qi0IaLq9C*6KX4en^aC`^Zi=WQbS+_6>OvwM?RJ@aA zK0sPam!qyYI2W6Z`O}T5w6tT#U!dxm{68u3u;f|?-U!pUl^_uGO8H!YTcNQvbX3VE z(9AW+2tDsVlGzQQRn0TM0f?l>2HeBTy(;NQIWy!l>_*^_xZ6QWbro;e_LVT-ARDl^ zcK%^3!^`mMa73hflRtL*dlOR7r+@tPupFEPfjHFlFKQil>Io-bfzuK&G*~Uwa>i_1 zWuM*vE@P6Dzm(N8Y0&281O^A?v5d$5yOsYNhJvgG;r~ZzJx!LTdeqI^?ps2?pbVY# z4aCaEdvs*v!Q+OszWAusY59Gw$|IpDH)&8Q#0u)y_cy1`e+r|2-K1u~`4~O~ociwn z7Y^gEC;sQ}Jcz7G%k4t>@Bg!J^yj9a0q<9A!acRG!+I9Kmk~o{by&LbzsteEYoMPemIjD*tdr8ryDQ9h!I1Y z;JEa<;y>M7V}3agSO}JOs!?!=-L^sC!TIkw>HhFVQEowGwS^c|P#!W;4C@d@bGw zO8HXz0BP&(p8Gjqg5S^Zg?wsHEx4exD7D5DCVUU5BJ653 z9_-{`9=hQgN#gHKIDZQ+i1$x7TbTT!#vw<~i?(~3*}uHZXAu^tbW7}vx1 z8&B1J+_3O0(RvWu6ZLlov`rqj38^nGYih0B9~A^#$?iq?LjVT7cA9j)RJ^M4m zf7Tx!f-}Q;L_qF)@Y&9f)6-xUC7kh9{P((r4vYPPihbhD9-gG8qY)O?(Qih7?d?sd z*CL>|;v1O%<4{+Lgcp-*&i3xNW+uN~G!5N$1`y82)N1JEnK9$M#&&ZH?1U3iT;BLw zLasdSxE(#!>c9a85i<_E&Oy!oHf;eXR|pGbiF;XaBnW^IIy`X6fM+yoU_X1Bdg<`R zYNO22yvy6a1WsW?cXLB!!24~OH=i<@yHYuqzy|_{RO}HHs#ixP$z)h&o@c<$oKCO2 zQYXJ=XYea#*BMP2mSOpsnG@8esL)`nqEB!?%T1`cWGovU9w0Tj=2KgV%n^N^M;$Ja&*Vk+cxJ`uV&9&RWdPXF_PYBs?bQYRL zm4b}O=|rnyz7kSQ-nBS=_VH_#OB2~FvE0hAFsJ+rcIeXlhk5Gp_PJwxMqIB5`&)xB zNg+kosN~vC_l>637qb%c(k-DG!cN!Pfa`{rdn?})8Rp;qc#aH+tHo%gQ{EbCRH;gX zgG}uF#0xs!m*wHEYG}CkD*m&Y2sT5$HQOY~eiAMGIDIjH%{d_Ge2~s2BJz;~lng(h?C63W7PdUL zN;tMaEgIzS)j&Re#YUL)myNc1>%v%nU-?dF9=dTYRUI1Mg!=f@#-{>ZX}!kBd%bTJ zv7p6hjYHIET%(Qg2U?FDoYW6Q^`_T?;%d|F>NJB>T ziHZK*hAzKwR_5d`{`C#}-A^bF@X-^Dw()YZ-ckKSGsT=V;{9@hs-W$GpI&X4 zzglr8#WA}uh5aN=wZ((#w7t>CF~DjgwkEjN{O5gMxb_IPj`S}~l{wyX-v*c{V&Oxw ze?_LzCh@v%PM&wn_i`g%XO-j?IR4+$x_tLVp(r8mxaRs+*n(x+@L?GSq1}d%EKXbUOJucqvLgpR0MI=7k@^mpNLT zInlMX6V+%Bonn*QS(85JYYzXV%MwfsajDQ zeN5aBn)b-vPZrtn!^#6n*EkZeI+7q0(|#)FcN1bzcpccJf^vyitf3c_)cP0Y={?~e z-k28TSxh$cWa9@-w7L4V+2u3fagstYEdqzFCDNwI@sv|4*v+Qohc*mm!uY69bue$I zRHE-mnaLB>et+&=WTg4H2j9(exuR$U+T>NTq#F@42H%s=0q=dlF~cs-Dx@vTM!=)QoT1!L02m@$tpH|P>q>~o+mzeXoHGrujQ;7|u5(Oq4` z(T-KI-ve%Y-U6-$81c%ep0?PREN4aK={|v-JDXLyZbx_KDcB2>XKJ7}p!382JI!CU zbPM{b<5?YjXj6QYIfPQj>BjT6t2iJBa2<;bxYlS+2R1zq8pqpT51SV1+({D*eu%_F>`fTC9%vv_NKI>#lHie+i~?JtZiRAv<2|VZB!YCF?FCz2(=_BcC;RnNzmq zv##ey3t;rj9u~aHwRti`dRXJC5dV14E_pUgWe`3DY5$GSx4>K0*D+q#ByEfr^T=O8 z)tC9AMSyH=TDIwZ7!0#-Za8t-j>E>B>65C?m0vb*CZrNCE56=@Dj4FgWu+>sMwDW#GgcHgjX)nN# zT11e&Mm{+!-2!8`U*^cNuFz(~O3|~-6AvrKnFNv&E#^K98dz-ec=iW(U6gg49wNBQ zwKf-DSPd5V8f*>k6z)&eP%Yt-QCfXiXNQPNW787*?zvy;Z%f{jkpDt(; z3_mU8&^VHy$^&H`M$`fU?5Z&Io;GRWF%oBk!4qdu`!V3pv+u{{PC1(y_&Fz`!|q=B zr90AcgY^#aE+(4RH`h+s2{DhLr0A_;6GzyBYM|LfNg6PqpjRj>4>V1P>{2Ak5ArfG zoMTk1u_LBcxI{q|v9Z3nIbkCj5B>MH6%L{@TU!1^(LMt~Pj&rTwRTu+*K{${Q&MN+ zv!spNqU#~+%_C(zw9qwH6bzQg*NkGW^fmp|Sr1-6AR9wc48Ti%35wECX` zVc4Y95)ycb9e05bB-XMkf}HIO_dBBihLN=DN@Qv`Di0@5S}S5nQ@U7^^=+&Lg;aKB zgac@^76ItO=@3*Z7?<~I2ycxN(?8bOOg9gA>j>-X*o>*ah0Qq=l^;qff{gIiF7 z(SZf6KgRPrHc^JUOel3Mty#zuzVzA;nSp;}0ZLqcqDuxR@|w{J6C(L1+O1FV_2vsD z_LPb1s9zNV)LbCiB_R`rWKi|OSYk!R8S^7Y0fEV!jrS$v-%=jH9j`;}@YQ=Bz2k;^ zl8ZEDrn`Jeqt>z77KDSYEZ?){VG^9=#&LhZ9HASd$5vspKzNuIfO5ad&pp#}&_%Q1 zUq!pNYCL<6u!^PI(1zDLv^SkZ_S8^tDpzCjafAQoMaFcS}A54CM&(2~4$|V}Kg<&W2$7Mxb&ZYuwt=hmScW?n= zf5WcDJkGH9l`m4qn(Uiw3q>L>PM07Fi_Pm-UM}gSF zmp3|aSiR=m$5sLeAx;d5K~4gTMR~a{Hk3k?84Wn7m-k%VG2iCYx>_090ybzi)V(N` z9V>=Zm%rq_U%Mvs%5OC2ItDWp`Py06-GBd-`cp*b&_9JE&8=TaHM=O32pkMM7p@{T z5I;EHe?TK^mk721V<^pGY4x5FvWf%#XJO<};Oi7RS0a`iy)7P!u{%4Hl+8Fz=w9Fq z(G2M_l}2%MfMV!^o&juvdFR!Tr<# z#nMzBzOJpHH{8GqN4E!XyhfR97PU>~Tt4MmNvPxMO8kJ}<>xSs6cUTLgKl{faRP zb;}9TN?fzMOA`irod2;iiCGsgl=Xp1{oN**-#wSwRr_&`Wy6#x%^?qUB0j-6;6w=( zeZ*wC-GoB>U-I}r!>0Nsrd$WkFVZHuu(u!FUqsYxIr5~kTDa|>HIsZ{6}63(8-2lw zE*tx1NEa)M|LG3O+Ar+{>)0+|WuLC8{A6|mivhaiyR*xg2m=}Ot_KS4CNvu{fLGH~ zB)#uen#YF-!HZ)euCE41DyG_IfW%s;+>8dXS_U41tl)J+5?zp3PETtomn%z-f{5dz zXZ!&~o}G(_Er1P#Ho{$VA8+BOr5lvNF~jd|ps^|FtLoMIDP%imv)a|dT~R*wER8D6 zY6+-PpL_O`o1H}%*v?G0o<*`aVDxO)s+}@+)ES!@GRJ>r1y16nUozYa=IUU1FjAEn zsvob~aq47q8=dZT^J;IgUwcEP$)T-X2k!ZRgZVsl=!_3%cPJuR!MVUpiwWUGi2)-j z?kP_&kQ$i@z3!as9rL)l#7)@$R_#Ai8ClhB@O*?jnTZUJ#&IbK*}$@A`m&^t|g+2;-wLu z2^vr+|0NK-%AxmB+gZO-8`C9RK2wPX?E2f>y=E;l9+GHn2oJM39V=_#3y$Of*_4QM zW@xvLn(_l5mr4bw@`b9WbJK0M`5<$x?0YlGR%;LR7;)O)+IqPM&rcIxhvZsl`5fG) zSb>@>@^Q2uONey2>V#NyA=^0?pxVR7P4t@N_N?r%DEx?rOSW6y{$3Ym4B44i1iFvJ zHt}C8{V8(^6BX;Z=OmB$F~}glUMD)4J?9@RwEeKjm)~&Jtea%U|CHa@vycno-|R~_ zBy?rK>RBLoTMNkI7C`fm4*p(`C> z;3V_cY-=~WEbo3i9$s1>;SBThV_eZDPKrFp}wJiqs)c7{VV18I}@mYO<%y0 zr0+{^Be*z)ol%>oZ#^7=iY+%TJHaiDfBXhq{@J6h!{0>c9(*wLn!`a;IqafyW1`!j?S zr5Bo-n|&Hwu2bTuM04Wawg~no9$b$-Pp^qIf8-@t*P4F5Jw>w~O2#-XF6ni$u>8t8C4MFROj;A}A_f zz#GhYKkCioBsa$Ql>uW1Z=d%E?nJJM#jn+hPW-GEuaJB;>HdrMoSGgwUX06kEkc5w z{3KCN^QLId<`u7989&X;Lngy*-MZ<}$y?nvnb{0_G`TLe>T^pw+$flM6}Lszt(ChN z!25Q&+pIOH8FGN_sHjDALsu>ee_7$(sr1u_88lCFZi#JDq$#~eft8iBjK3o$d5kSy z=6v2J#9^N-s*oPus4Z|zU3zy z)Db{3L^alD{kR`%1Hea^3tf`tJz4!kxIB7KGFZ%2WfNDnDe+U<*t|+{i2Or$K86un zjC?xohYj_E5=8W#*AyX+_%aux3F%Ouj5b-$A(6GcEZLR24W3@s5Oegh8hl67)1z+E z+Vvzr5HbrC_CrW>C&RGGBAw(pz*@a%!LhzzL?LwBYdp^}g8VMQm8}(`8k-LVfzE%h zGiTHL8>V;NiI&V2Gf=KBuc(rJRX`ds_}wDAghT#P9CEyo`=0sL#4<);7d>r}DaG}d zl?&Jhc^him^HuE&0m(BIq>+%@h>hOE_Ytbr!h)j+s)GZf!@A&-W>|CZ}NIvp7*)y5KyYYF=r*8Vb+vJe} z0Jh8iX#e7B$i~auz#vv>vinLDcJt}5p>hQYtop5uKfbIU&lxsDhf1m~`btS^&Pfe? z0`~ZtyJaXu_ngkH-Z?<=lr|Z0#T_e-^#P&JeJcm}9r@P#o!u_%8d4GR~1yQJPFi_XyU?&U*ZnQ#MWJtZ%8aMOaK3(uz zO#zM;ZdPi(Vj3=E|MD%0oS5**5y6eWL>>mrpMrRiruN52(w)n&oYn+dz3piqvLC#@ z6sKeSE2R3LY5VMr(h$DwUzYh@G;}(zPlI&ES-qwf)oWR`-`e>EC?&_B^t$vJw8Qr`V3)t}s4A5xcbO7x&Yg9C8M_2ODQ1TvMxbzFMewfO%E|Vs zp4wygj#;ocDIZhC*VCmb?6Cgukqs=sIPg1amf^uQh5X&7T*@hvGlrZXj01Om%&r~f{$2D^fx;MT7P7klB!I;&V!SXel;M2c zQ>K|Mk+B4q@;o|sh0m3nrhP=Nix!^H{b#ic#9q-))!l1ZkDk&Qva?I2HkPLwv2C(q zxVOg>?~}3gy*R4cNt=eURXR99GL|k)yvW>y{}Vv`Y34W#aiQl-CsTAV#lbk zPXkwxfZPGS8rK1c$Hy*&ZWY5FE?B(#Fg9~=s{7aJX0lwW$I?Rnjt`k%%;+2&Cq6#G z&&f30>{!jIwAbbgWKTnDIb;FVfBA0p(0jN;iQK+Bc0G!!*P$Jccf$Y^Vt`ihUK9O?Y+nnE<+xTDZ82P4&Bfl!V`f3(K%Omfi# zB1N%8)Bim;VvL_L;m?ihF@tm<*Xgs_$D1?0-+C;?QzEue3M;_h|EqgNwILDP(obYV zxPMuoe4_{~tpsLDZvvW9B;v;DUpf z6a-SfS;OopQY9taPWt>8*VCL-Mw>j$^gU!4WvTv;KIdbA+s%Af+11)H3TB(Cnp^5y z7AqWL5-0O2p~Bwvi|?-=%49bar`rFE#ttP z&i|)hd`8sI_ip{docgb|0V3*r&Ao5Z)aR)Urg1}_4d`>K4Edt|saHd6Y4(h2MxOxl zIOg~&84(LfMfiuG?&h*~;hIgYfX@AA#`&tC9?HE-vYuz-FDjafNIUY1fj%?WXZ%T0 zOz5~?Di`tG4l;|kIdQX-T6916mgt@@=t-dtLbp27z5THR75X*@luMh=4I*i1BBOPe zRWqYAY0C54h~LpwYPw$aJZH(fo{eE=N6R2<{|(0I;fQ(%j7-1#`j4K7F{(!Lh2|dv>p_ zd8G2U+;(Sw6C3>b!bb87cEtzXN9$Z(e*JQ>PzJb|gvw__$rW_-9EOa2k>IJa9-Pq# z{#wJKR7fg3-)r>nT~zHo6B$2JL+=fhIMt6G<@E=`UBe?bA%~%qIYmsYd(+*otM%o(DAh;R-9wD zwVbkC$P;K4L&?cVRxo3>EbQbw9rt|AH7_xn^6uAkD5eW_-q+^Bw?)Tbw(jCzMhbsL zBeaYsGTmo+xd*3u7EB&{!AON>pLF5J!KkS4*aN173jvwsJOkJ)QR?ro3#ZhT!;c&J zMsr{kqkV)eYzmxUb@ZsE<27K@=197*z`}ET50i1z3eBCwQv)ixGwO zesMLeL6@NZdb(W_lfs_rre@ajj5@_d)9kL0FW!J4A(Z9f{fWW@^PsS|0hacGQef@t zUF6k*T$|@3m0dO=W*SxX2kl~HZ~4wHZ53vmOd~)_6yHYcB%R&4oUEC}_;sk3C55hl za?IJ}Daw&GNG!Gnk{KE0Vwr|MF1!>5I?-zzdl|fP)%V2qUUl$;@s3zG`Z!F#2R3$x zq%QVKfJNZMP#gE`pVW zsdYs@4r1p7ljSuWSg<)LI_V=?quSTUvoEC5;qJCICoj1+x((NlGtztKp$L&Ob6u%Hv^o!lHgW|e(T9#6C% z61$CE2)jT3qD08q6&R*rL&X`W5l_AsLQ9z)H@EV%>(}OqL7E0TvW*Qj8arWrkBhw| z%mC&+br8~bGQ05(oGCN@fccz_#%w>T$~mnQgPFI+kb)J-e{HBD|E1pn7ny$`iU#5= zuOD`}IJ!=&5)tjIc0p@_jr)5{Y2lFpY}2_elsw1P=2An{c`9x!j^zJFA zuYk2SX*tWN>DKnAU(lA%FUf9u?TssUs3U#^w^?(JLTAGyTfBUJ*uJA;H6(!Qb5%WG zO3Rn9D!5;P>xI;>LW`5-AHpVs4Bmgm7~R>G-J}R3Hp(utb}C2#3pXT0KF)gEk(`9R z?2aJG!uuk&fa&=zwI}*E4(kfXMRH= z{Cw5VeLRN@pji;|>eq|3C$1GDEup6M*>|sGes-}{arO1Yq3?3bhN2&m?uUi8QSjRX zuE-JwPps5-#YX(OX8p~6)_7qs7FQlrS{kwz>2#1 zXp6%{>Ud$lPVKdnvnHSIWGzQ!aUS_~azfjoP=Y(q7PoJ)ksr%ojy~A*OvJ~;5a+nR z53EjFy0hh#s66mlS>@&HFP)qM-}yW2YT=4y5L6hxlfQ3z6-HzT$crGxzcjNdmsl;t zV0Qkk`Mf%74{eOiSU#eeN3|=yc_QcSHCsD@>95b7PAuH!=%4d}DQMJ^R>C#kDlJ^^ zXWBP?KC+g#JP zT9XthX2W;aZHO=IdlSrz<-Z zck9r|?HXl!MWThe_&XJ zEKKHQ%4sW+^fr$X`ZOQvAV0dkS!Rs-CcGx#SJ2AP&HMZSX#Z}l)f$U-mZ=9|!dtI2 zldy!CLYm5g62vLG)Ro@6WMT`ErjYx`k%t!jOCf^w)$~J75Q>irB#5aMDUYKZ{qO7T zmN?fLS6i#NsEWV5x4b7m-Gy&V@O-C3Q2B7NKj+U?rIQ1*-72*kl;cF;k^2{)f`n?=E`G`A}YUk+sK z8Hn7KCYiMDw_C5t98%85@gv4~TDB zQPv`*83f%U94vB2k574`2?kQsSUm45XsvX)a_7I=eb(58p^L|v-rs8IEs7wDR-N@M_J5;cPM_=2e1nO?(d#D35ix%3 zOal(1)Km{w9O2t!ndXj_2~z|YX0|1f?t{gJlJyANmAlleX&@B9D9i~{wwNtm zx(Y*ZoO@eK4F?~x*gHpu(AOpu`EDEhSl5r6ye>~Pzy2xY$dGKgcM#yhh`O4LBFp+8g((l)86Ch@k14)@NPq+W<~C&b8vt0+y2@N__qWgzOg%b zjPay3D!guA+0Bda&N_CUOD5Z_l&jbWDCA}>?k*Xr@J&IOgS@Fe!TWuHe0-Y6S(V@^ z{lZtwQi$~{b;plRTr$N=mwj>iBNVC4iNiM@m4^|cHK=F>HRYbU!^Lft3%)!7$_8Ol1ABxU2!@*q8D`UKRwP>1zj^=LUF z_@PtCplmLlzC~;V-A>la^O^vDq!c!X7z?`I^@lf?sA;G*cQ^f;!%ena_uW6__(pUB zZQ_CxrPkZ6-e&MGVx*4jn~$$1!#8@^a}JyK$lk4gUtYgHrR(=y$rFLJw{R0cJ4~jZ zeT#)oOtTL0$pJNF#;_Fm$NS^T*$XQ9?X{%#xF(;l=%kCO1J6ZZ9^-<)rpCbe%tub5= zPT(2!?L$mZC7d|vF_=09(#|ivSm*}(sm~Ub*29{gD!9LxTdWIPAY2&bu1hGN zyXfnT_q;%*IGQM8Gnj-?#u5=Gve!F2p!AL#g&nI1s_%f5?VzQUZ?{g+ua6&*aylKC zHZvLZbzcU7M?vvKDRjQEo zR9Rc?@(acirN&h9(sOJ>Qf^#FVx*Rxi;%vO0Z?W!3&fKn`g!oQ?s~jv@%k? zHrq10{EKnh_rc@_4sH#icy~OEoAS{8*mGRh?I_*BRzo{*E*Gh*%B$&T&;t=Wz73=> z7n`jakGYKd=)blij!O}xU#AH!Ld_rJ@u<8anbO{lj6!mAp&jj$Y(C0i+a!(RyjN7__bGZQ@<;(C2*! zO_zetq?nDqg}i}(1&>_0d&gwM)VwG%wDWT9sG?V8Y2ySE>iu2Z)4HxhiNJpy6;kC^ zb22YgSYO`7vs)aUXDI)Z{E7aDiT_??W#aPAxqezyjecaQ0%*-uZikoR7HER?u;Se_ zU8fuHgFg7&BW}asEvK%CMGl2XRVDb@hmu+~wVw@2@u`#NHkc+*!C-}Mn1XS@)H<|A zV0TG6`nHc|bF+Ea1{;!hK32S_G%a~5+CmglTF@cXURqFFWB?!KhOX>Pr32NoS`Hvh zR{k0Jmrd=BJ;Cj+RSDJR_|R)-P=Luyg}iCzh7Ka)rZm}z0OGD)9PDyroMHog0M~+I zqYu^E_V&{P{7ccPXz|X5rqRJKWG&`-5p+dYUu&V6x}!wXil;jr5eq-%E=O!MQQXm* zzZABcsSL-Hpi}}17VTOygge#PVTRW`njkYXd~txP`_F6q)REKu5|hi$srCt4{Dd4# z_C34NE~&rn;gbo~ZGt~-VzM6lGZT(w8L%z-H`1oXlq5?<-XQ+7(!pOgeBSR~Gojzl zRaDVAf$r3%?fl!stCS?OfsDuw&81gVzgU=$!Mc%7`L-65AgKd^FA>s6GxR2g3IVlt z0z3pqa4V61?S<%Z`0-~7Ae1iLkN^m{UcDHQQ>JpH_v;d^qic&_<;WLOzr z_XzPM?H)6s3v916&hA19P5B2uyO5#xSvtFQaDrJytZ2xW47+VaCKpp0f8xGNdR_H0 z5gOmU+@;~58=$K*n)vDIWWHcEC5!ZLYPMjn2xcCj?X znw4v6P!?Oyn=UP?9?+(n=HsT7J$=HB@(jdS9o!RlxHH}<(^`F*hAhY@c~|c(RGQ>N z+we=&$xJcfE6WK`l&ap%={6%YAs7&IaL8&$64e!m0pu&LGS_8Hof|ko@SE?VGv?Yj zn3X0x27VuqbBp7AuV~;1oDo;Dzqhkf?hfUKQ@81z7l{YY#Wm2KhkRDSj+rQB$vuGM4;-E&> zeDL8(uh%q}TJM?x(<=}ESQ4lf8<#`A1$5#nDBT~j{muW7&~_PjDShOtKj<3-%{9Wp z%>R80~%;_()}PFkju80y{h_@e$b`P#h5Oev1(vB`l{WWS2ut5^Nb2 z{360^AB!@cbXyl**DJ)IBzmug@EBLBA5OlkK(Fs`Q(E^*_wm{eQ9zxUP;eX`1N2Pf z?I4E1C=Qd@FYXF0+%3pTzsKJu=s1yy#{ax=P`_|5ddBif?9~-zVlSe-@z|SABT*BC<%Q+PX)1p*e*A>wX$_;} z8l6T#~5NEXcJ6^Ij?>DUmoJO4EQ%qgK2x*+Z0T>0swWjC#X>@N8nVFitt6k{f#F$#0YXl(r66~Bam3&B_ig3S^Avd0=TBS=0f z*>o3Nl?LG(G6ER$W2e+4L1LZfXi!{Vg2xmac}l&D8w2yo7rFIQ=OM&>1TNTmOL6Z zc5bHAvItg`n*Avfh&moQoh&tB^7R}PlH-Z>jTEit`3vgyQ8%Zfp#)J%kP&JltRfDz z65RT=Wu$6;`G_YdCgdO~y+-hoY~2n9)R}!){hh!&-O1RcUpRl!3;5UE9573Y&neW13odlmqA**ftcQM?Ek3xbD1Ga8lMLIQIrs`i zw#rHZ`@+c_V^PzVvUVl%b0Fwj7hvBWm90YHVJZPLq%_ zL+?z_F%0j^i;|r@mMLD?y)!V~CqHW1X0ybZV)J4_Zl=O4!kLzT8lQ$S;O;@=;EozO zt2A$Y{gdtNW1{V?-i#T4-$$h%=zX?PQ_tx|tbWaeywU~LGsn#_bTZ7#KLV?j(P#;M z!+(p+i@oqn)V;|Jk_8u%RvY?V_;T+%xUX~7&P~ywqAGNp~dAH#zB*kjp zaXlO}c@2ub)A2KieQ7}ijQ6u_k^1v&Suw&G)^7+OWVo>%?%@{su6)=vOMq4*1?@WXxMLn>H;Cdnfrx zX0o2%$#(~9JoI{oA=XicS?15iPN`tPOiW3?Tv%aw#Ke1WzJM&>2!QL(w15m+47S`t zBVLKh-DyEh9N~idE6yTad~(F)gN%sLs#xe70CG->uE$NJgt^as z+jR)U+`9j(Ea=0J63fg?2_8fz>sRj`6AOt@n4=o%uaFqRL%n#e&*8M1Fu*pmbv_z7 zb3eJGR6WsI+!^DL$pd@4JzUyVnk)&g@U*|*(m$?2BsRPGsfE!mBojYo^73;#h0GZ> z&Jl}WT;GLUsTc=!JNIM}oB57aEZW|`6-ROl&sNjWciJ5S9jj9?7T#0~%C`ov;I;?* zv*)LWZhWVN7TkOnK+J%>t2??B>dR3KpIPIKGVe_xVmJQ2O(@_|Ot>ptveu9rx5zMz zmF9e)p4aeGi>fv!^lBm6jH&TDIZ7x&4cvKMPS+=VQ9 zhSDRu?hpES{U)lQ$MdK>;=zfsE*|U2E3$8sh0gK6IDprplF3FO;vKs<&i}>MTL!iH zZT;UZP`tQ%aS85j1=>>Ff?M(8?(SAf2^I)a3KR=YaHkZv;!g15uK)bbGxvR;bLM%I znPldg*>h#DwbxqT&suwEIo>YcF531+LgkrAF=#mPIt3rJxVUFF>0@v5G3nHTt9g1! z694*0WBRSDWc4AtRigB{T4!%*a`k=sS7?K#Wq9twQ=URF;X3mNZ+!ZiCaAea~!Xc01!TDbnzgy z!0rR0z$+yU09Mag`1A_{!jZ4@F!t454NQQVe|h<68HYm5U&9?bzF*QsEctw8x2YAU z8pg;8&s^voPpM*DqrfV;jsr|2P-8Ada)>}%IYKs@@A^EkCW+tEeM)y&XKf>BQA-Rc*XvnFVl+%jNv8-hA=Q-K~s6W%HJ|5h2!{dOQm84kSRqZ(xobCaYx4 zR}FQlj25)g_?f${xJgmw)bpa1Y$oZ{@PN@zmSYchjG+6J|IvXv7Yk)lBH^_xEmO3P zsNM6wj;NoK`G3LWF|EmR&nSvqd;S~;?)H4I6P?K*8GUTb!uaB9ab3T|f%&k{)w%j{dM zo=t#0@VkWt%c)F=Xh!l|_Q(^M%c_WpDhct?lUHAe`d+NEKD6?^6}Z7JoK<^Dmm)B~ z^i>l@_)c26Qv!)JD+)p}!>&6!u&XcB6vRt16(#L2-WxEe|0x2VD5bv1kF)|J zF`(}em5?AOA*$-ma_@J?w(6%9PYbCKFYU4k6ztxU0E=a>khgzIdJ|(6(+_d#tLx(B zEFRM$T!QaG0t|Rp)j#Fiko-OS+7rB~JA^(&Zt^_Q@iS!8NLJ%CrjT;&>PPdIViER= zOCRj+_RReR%KKIn&628#9KB;_=(e6qkec^riukBBj+$%HV&<;-dFF+SlPe{6z^+|v zni8#L*Ry7!(25AYsYNHbIm`xwI4Gk?N!1u$3+@szooe`Fuwkuk3*@7bP*tol=cS)r z0{s~x8>(?>rlFXgP<1V$os%8a^n(Q46iuF_#ur9CE!(j=0d$;=T!cdr+5X0nU&gs3 zFGb^7TS}LR0!`0?0jJ+uL=@A;>81!a#nTH8P*Z++x@=sy5ra(`Hz)6>5b7s!f~4c^ zl$L;E8_} z_|H7ETM&~M>p^L}U3{49fr;O&$TLo}9|xBn6l~-Eq(+)TZn}9s?EES5&>?A*Qw3_P z!m9fOzBA6FdT@vJdV(Dx-K~ zoPZtXZ%ZiC8E(yi!k>|CA_pX~@Fuv7?5MY}_XN{6L?CS$6fR;|h#mp`#kqHHbKe@Z ze(>FrX1~w)sKM>TW%10LJh@7@^NVQ3d12UX^odKT<~!v}aO06g9?RcF z0c9JQYf+60`BHZO>9@}7KcrkvDh;shSGl#ku!#|SoyfSnfbpm2HKjyV{%*H+HnZ7E z*f=Dl+>4f8s4a4kXdj`XR zs7P61_FD-P#`x#H+ix6+p(5d@ ztCe?_)0Kv7Lmjun$ebMW>(^y3$zTV}4Ob($p75cO&7>gGFE` z3jIFl;qoWC%4Nlh!oj?}$iHQ;Pli@dJ{H>&t2mleCf5{cXGlrobUbAFX?ZNN2Y#d9 zt<-Nn6qjt(Gp6kLtJd2@K9)UyHKkDe$KI$z;dUyJ@75|s&BBJbr^d<>V`ArrZ}uXq zY~|TyS)AqdirK`lmewJS4e9O7!Nl&=s<_qdzf_LWWZGY@?U7VFtE%4kuAFv5W#3)` z0CgHw>z)%4x?0Xyh+}Pds z-gLvOEPqc%Sl;bAR$f6%Ma3vqe%7mdWJEhxLMP<`N|;aSX~Gn$QIg>T*f@3{Wr5~J;x-n1FjUuBTG4c9L+uT-kZ24 zE7#u|9GRMMc(+g6M>SJ(V~FcV1awteF7N@>d7ivOzk1BM16D-9j~@iNU;UB|9X7k& z;zHe>en&dO{C4f9H$4uwK+!e5>z5vD0sDH6}`6_n&MibJN&V?Ibwi$qbIT$ zpZMBqrxyW*&tC?5K;9&&C*5>bSKB^DQV>S%Tl~Iuom0@?%GzI2OkAIyORdr}Nv~S` z>Cr~wK8aLBo#%SMij;+?BGp)-xh8ItelCvK`X6>zEZ<>s8NIh`8{NT88#aTz2?RaD z8i`cFah)Zu$>R_1SP5kI&tc)<*~Nx=`QBQItJuQl4UJ)a(xfCY`t~BjD*qGQcdLim z{12y=R1@E;$@hbNB$pFbNPtK0)%|;r#P6`D=xuykU(EIydzyU^1~yKO%#;$Xe>DU? z>C4LxlUXr20sOS&_kH}_dc&^`;LL@xog2CGs9RFN zgnJ#S=oSTC4he|=6ZhjLRf@wX*D2#&(ZG?X6mvQ%$T0Yn_p^b30s;JsEB5PfAE&0l zYQd#EfvZ^Vx@miRv;Blme%kA!yLRgMz1+MGtszG#=~bzglGw~!JT^9>!Yc6XQdB0R zbs_T%TeIJ=ZG@J1kY*reXs7uh$u}N%zq8$)GUZ_O_9)A3e~Mfpm`kdiIZhEk=U6l( z0g(p7kN!6qJc(lehitzw?^B1h@)~%yFmEkaS7KXzi?;j|HXY?|GX0RsU|920G8o0; z@`pAWepRD`y#9?;e9tU{Q%8QW3XUPWx(g;ktVn+?C?^?bftd7h%W%11z)#isZrnw7 zJ9$R9qfoYf^&@<(wZktl!R#YX*unav z&u1fogfh|^wX)kj zj&BDYVnThKqfYK#=`F-s7-qeFBa))+R`Xfj%ID=~w<+d=u8YzH%R(lyD#HBbw?C=c zAMd4vazD`Gt5-$5ntMO0A}&ZQ1KXZ@Zi)|fVpRoJns|aIiYu|OJv1x2gdqwRyH}Lo zLQPzfcG7(zr2S%um2FfS%+-&+7@8fhoNxBQKFkl#HPv8Ptej}Nrh8PW$)!%4#V&!> z{veBS{~=>Svc5y0eNE_Fy;iSoPvm#sRl&IXweOa};+K0Vqjb?HD zG(A?sAf8j=EyqXUslDQGtTRQb>J~K{pliALbx$Pa#ya%tV(xskn^+ZCdZj%RL!<}% z##ct20OW|-*UD_~VpTNc17$PC|fU~h!BE~8CB@uR z$>)Knrg3`fh{jj1ujjyN>mM5U*s9S$$vQ8jO z^7mS)HC(={?We!aDf}z|7yBuV-BuH$U2s}UX!;+(btwJoA^6@uIVPql;;i&tPnM%e zA^wF8+EF0KwLko!@<>ZoX``oFY2Qm2v*rWxu184sz7qu~qV_XO9%*ZSx_vlCs5=Xv z60d@QE|rU|2_4XeK}^uj)r}X*5MsdBh_q+}QyIItql}p`E@@!*s-Lj0!E1zYF<3E* zJtsN~rVOdcmMF7G7u7TPlDlXLw|+#34{o)%CbLm|Bb%2Ij;AKVIKUYRh4nXD~jm2ukYyW(4J^HfKzdPBa`^rhb)EJ{lV&LaLow$f&Yk~ z0npfpf?EIUVXpP>hB1au)*aLiH1!J$FoqUu>Pt%H-kmnenKRV3?M2%vB|bbQL>f3R zzwJ>DHbLMlzb^mR^Zi5AZ|T0o7;-PmFfwI70df38$%}R&%J1=`32{&F5P&i1V6)=+Il#Qpy~CCw*3Ar z;5tZ0Tl^mu00G>q{sY{LkClPbwCTqFVW@5P&I08zhR%&Ask~XueUk{_2bct)oiecg z(MJSkKB15JnEBU-A&tuaF=vQ=yp{sQB9DJ(g3iBTwth#D=^fwIBcWLl@JKqhDEa@w zymt^ypiFPNk79GHt+U@5Lfosxn)f3_0`Irz#N&Uh-ISld#q<_axU#(iMGYk8e012k zeo<5_(LtQ{pV0h?HQR}f+`W4jPq|!Mf6GFqKe_y?s?>N-v=e~T{mB{8o#|P7@Q@nk zu0ES__l(E#f>!sw*%~VSH@^D+YXSNHeWD=bPjqvLenuK+3^JLtP7bs^ z$B3gikdj{Jn`!j(^3n0-5YsB;(xCy(i+v#q)FUOyxK<7x!an+lUGG z-Vo})s+1|v8MIVCXidM8VG7jouCLQ(vcP}-)j0ghKTURn@{~0w^MruZ^Xm*TmQfuQ z4qiIZt*M;b;eD%tQO(tqgI@#AL#=Aavw8UVn%}z`iHZ+gy32~hp5t%R#@F)U%Oc3x z_QIFl-Bb_t1s5I+*a<1$&qr4}6DQ&&$Q`M)`S~;BBby-O?9X;I=Ofoz_yL}|zgg)HPxQ_^(yi0JBTh@c2 z&RiRD*)!Sg?1?or#EBGD)om(t#YXsI2c%%ydMYY;k*_HH6&bS{x7F|b7dA0lIu_ePg6V(31n^vvy zTadac=Ye&cX;9(3c_nc-e1B~Vl|3h-7)0FKXM;_!(f5p0z}_3BzdSxg|QX$pC>Lst%&Ue%PSz`}pi2@cmt^Ul* zt3h7Uiw_4K!%r$BNH`R`N^l>p$BReY{-2hU6~(GTKA#G8_?LY?LKGl%fp}SGFk*;7I?Zf@*=0bv#Lc8f7S(wp<4 z904k+g@4`a)nGOMrl2F-Q72_#2)jm^>#a)J)A~#QOPpi1Z^H-u$;|XoMT*zsY$5Eo z(-f)y>UDXzG~u@zB>>F&Q9~v6n@Q?gF)goNVGhYcjT+6&U=xHDghJlxJWwMA=#mD) zJ2gG=i7SR##abGO`R$p*Aa^(ugt!Qg=B2ywwE%~SabS95GKZ0LxgmN|_hpqQ@tbV2QH!*yGUK=y;sOW8g-x5>3xZS$59}DJp}yotCT5WuJyX6q%i)ydaV`-G?47(({o$zHe1`W(Rc3S&t6gile&n_(${ zBD`&<7UD142i2}{#Hl)C_Hp6HjJ`%|&kMHw*wyJ)Rr8}MND#1m`UxBBM9vzPVD4K1 z!EmMrGz!khLz0)Ow~qbM<6@L2s&+qtc7m~$&yz3K)_)`xWf$NPYeCaL4kcgaRlNRu zFG(TsFRw;>-Q4wa!ltqqz2-z2weFdNxk6h-T$SIcweZeJ zC9|kK6mzIiSMH++!CgZe9cawJ0Cltybz{e!MUE$UVVP8W5Pisa`E~W$0Q*ThWo&-n zSaG?tRYkmxG)Lf6bAwduI9^c-$!tNI&f11`ObRmB+UN*+fMhQ+B)}=z`gQVmaTCNU zYTFs^f_4)eiyz+Yps^hYRawZ3wWN;n-ndN^eS^#Gxatt+*yN}*9uHdpbv<1={f|(| z>Xvcu_nOD253L(+TEVoJz6;)$s zf{~f6hK8h5Y-Xbm`3J2<1trE84o&hmJ+NN#pEyRrpUWFVUIv0kO(`R(gNXqpbB&W! z&GwuEMzPd?m50O{f|y?I^th>{|H{k_#eT4 zrpOy<2l9@=)7*ZW;^G@U?3mcL;TV z`t;HGo~*dCxcj$W8>aPzn_@*xzlD*66xWDP6{3xAElm3)YpNQtJ1>PaszNZ&25n~PmIa= z528n4tnalOyALJhOzjQ_vSLaFQ*qOjuO18#+~dQ5?ymMSHsx+?RAz8-^FA()TVz|Q zP=Fl4_(`<3@Wgku@`?N`w*IGmZkgsEi~zNif?v0=Rdz{#9=SH}a=@$J2(QO& z?HJ-Z^1<@=mBYzvl~)7K{D9-BQ3U^7#_QmV@(^Bv>-AFC0C=>K*L^~xDB{mVL+RZC zE(-jEZuwS$#d3iFes^zK54#CYr4jA%GEwVxBk%cobq2~r91DE4M%Ezd*YRplPgX}t z{9_vlahJ#{JGTq0M7vvqYKMu07uP#Y*N+l!joMJh?6mSM?Lx~Q(c&EjOSP1Mf)6qx zzZs5~-k?^7I|L~<-D7zw5qxTZ+e+IgB~#huGwb%(%aNf*`F+-WaMsTXEyI-7e!fftR^ zAH;Vp-KB-W{&HnZ*J<_Y$Mh^TmX4?Ki<%GLWb;dp_ebPlnVwg(@vB!D3Rb5yf$v zGiQ+0L&uBZ%*tKOvP$B9)uK%!tbvkH#P~9Z*DR9!^&gd_B5@~cUO+Lko}Ndpo0!#d zhoUZXPMYZG(m~?iVu)q1@q;U;_vQv#c2N+o+Ng4L5^glM5033jFbhf)Awb_ zqmgFPC4Sf00Llo=YjPx?@2c6h{fyV?rbv+sk%PkFT3aSQq-MUl1sx;MRvzxUI;ezn z5{J3(k+$|~8dRdff&j!}{|<E?$<9_Xa6g{!23tFXt#xO{MJn9n6#8W-s-?#M=ctC?3{5)SSlC}oSJoF z-7HC#a-c0>?@OsGv%=7dQ&@*dW2to>lgd@!&;|>XSwt}tkMssPsHxyW`NQF<+us!5 z$D!T^O**b)dou>waC2w#)lVsfSMT}~jS6G6t*JJTQTSsOu@$zSk~Z-0{UNb5yS|+W zMy_^j!%a}B!^f{|>VqM+L5_cOzLmet;lg&fC&y9zrO;ss2EY3&Gc>fmcvg~1n#Z`! zcu>+@!ybO6F-~6yelC=`qRGt-bS~!L4|*e+!0WQ9GAa7aL#Q(;6t30py=H*77oao& zbJm}nkMU@KNy;I4D3MB${}nOc$B`@1v)Dla3l2G$j;!pcP9&NYo4x2jg6`FAGj|KRgZO>D`ZED{8n)BI6Gax|qyym)nMz61F^5^-fZSEyvD z^x(}-Hp7w8l~b91TSjAX*}$?pKZ>uiZ`f1Y^yUF+!{zWZI`fEfA_2k9R|q%{ydBuXn2neJ*4ze5S_jzj-=hea|b6uMvB3OqcL%68kDkZ~-~(cZL~fVy$@M>f}eX zP@?nN=XZ45mD(#q^?Pmnjy@OK6Xx9*h zqTw=!Ks^C==XlLJNK6I__!`l=yezzj7>K<9c?r5M4_lGW?b*zmHabKUCabte5TG1x z@B?8IbE1lwMY)`h55cHWOn-y%2ijM9q}15^mXQaI7Us@nQQ2i&l_tqu4@IFRni{mU zf;=SmF~uxaPD@FBSCaWY8)Zvo8|;P#xO&dt#g?!Nx^^<86iZA@5@|NO%^Zr5S{l`i zVxn7Wg?{^$;47!^9zF7kxCznpG?P!(|4jT<^6B)LT$wmp*e1pML5_CuIiU}&-a}(p zBN8R6zf}1Y*d&Gd#yrkavamLw3x$wMj9g7^pLM6$Nszkk?kz1`GL5phv6b+x)Ge$m zj`_ekn_f&P^K7P&*AtpT#ywlx$+*-EiQ#pp*Q^^lMB76oL=t~J-QZ_c@YT4<4yS+`!v{|4P!a{w2;$0NgL?i@M*Foqn<;u)LjVI{K(=Y-DXMdE&e zWWoaugJ|bNYKLaO8V2yf`da?fcIWjA&8fXOl}GY7N7<7G7Y*ka@16==i%mHdZ2E(2 zjeDs2%59HO(vNQXHcZ`&?@WH8-9_Jmf#1j{7hxYs(0^{YSw^y=HN;> zSS2?sgI(g>w#qteLStf3E*z?wVDpi=U%n(D?hM&X-EOd*nJKOncJ zW_jvQpzOO9!aiUJP+R>0>Qmy36}~DiE0^A@Y2yhHtrBXDH$#fF9lq%k%bU zsm9^9`6Zd0``PT*xOH63j)eyx6GsJI9pjhFR@;II)TTJzEN#S)WlBo04aRneqiAF3zVR&?p|so zai5KW?KdR75$u_hLXk9_c(vF-*Yi=S*UNnlPbdQ;i5`7-p(tCFBO>&4_Y3Vh6K+qj z9w7+XP0B0dwS+ROA3qsR;h3_r`@YHh%duyAsINb3tHdRbJ@hPdh?pQNVrr+r<@5t~ zRDk1azVSDFns!^ZpT5%@6Y^U9;g3*K4~|n)LBw1QMT!YTC;*7`%G*x2(U*mHN>;QW5KP10vbUNNzE+>&){5U)v{U$rgh);d@3 zn6Y3C1^z?d05MQBU|yJ6Q^+XM0jZI@~^b1eyI~7 zXlsI(FH_hGur=_|!jSPa-dYjsTOF%}YUcSDIcDV?2ads+?cQg5$YSl>oGWFwK>Ux| zMxG_EeepqRV93Cg`4!OFMP9|0vaY=NL)a`yzlF+B_+%@Dg{8HuLd3?G1CRgHMJz$QdJf)#j$DfWHu!rA>4UpbVl{oE^{iMJ{55ZS;KpH; z3yvT-DICx8$4s*WpC#0ENOd&*s{IshEt!Yglp%F*7Sf4@T-5be~9&L=t~o2 zaXO}mPjfQ)HMOLcGP{A>B$UPhDSg^dqlY*t^`qHje2}imtk#V#6vy_%DOU-VBsO zAN*=?P?JPo&z_jtqbww%dq%5DVBIJGB;PVg{F0e>S;nB&rGMDs+EH(lbXd*LU0^6d zE#ZQ9uoF3wDIWOyL3udki9oDY&8&KX^qFOA=(@A3Fj;BV(yUeII*_j0Eo`sO6 zs<|(7|DFf}-1c(sUZk_&zy+}Ad3U_Jug1;H<7n=*X`B1@_c%P&TPD>& z3L8ZDk@m6&V=mByY))UWmD)Xr`{|khuox5>cr~-8JKlhpvR8k}=U(GtqWqTxT^6{>CeGkJMCmuoR`h8?;Iz;hsDxcAvJ!ucG5hW5c!oytp1|O@0{~ zeELW@N2D@~f4_0ESo?uG6P?rM@zla}r! zs}MM2y?4Adp5TV@JCha~P5cC{A5G8lxb$StFJ8jb9g64m;`MQSyT2BFsePuq2b@f( zs&Cfo&5ga6eni^eWXW4ku`|BY)2!_ef zcYr0|-eV5(7wB;1RwOec4Rnp(K!q9Et5wCw%rg)FZLm~Bk2_N9BZHR%TG#%QOF(K)i`J%+wuCL3@ z;Ho3`wM^1L(6e>|`mMT%ms@g2c;$KMu9#_!j>wfT4bCTh_&0sk5qtpYbrEm#2I9`u zHMIomYUd;~QI+TYSrDCqjAY3*KCnU8<>y!bhe$n#&f49tCh_5zP9k|HpJ@{^I^R+K z1{80jgTyBbMSxOPx>~j~e{iM9e39H8{}K^+WtES4DF^4{;R#)n)>!u4S0j%;7vu z(ByOw*xn)lO#mtNq5v-JXGiXQjA%1yfF49H)^U8#4NbS5b=Tu@TSXGHN zIRh`GMW-wC!`#!)%=Z!$$1$>C{|^h`=>|HM`iAVB zL`ro~H;j9p&GYUV6)C`e%VQN<{>l)yLM;MrDTOc7Hm5u6nBdAM_1Rbo$kCZu+bRMK z^07p7894YxZ*`TIErq}NxmTA4D7DV=(mMX{!JCSFm2b4I=OY> zxlMM-A>ufHhCAO8SEpd*(Cc}D-$z5PjKZ0a4ZF<~jLGY!b<09f<5@@Ha+);LxYz80 z0MllA!VR1Sdc*!UQta0Un=iJyJpwMN54h-1idoZOrgIn1ezLE(*`J?SBHD#llbom3 zU;Z^HTl?jT$d3x6(YowCil5`TJgb+vfbGvs_==-=cLlpIidl)=e6-56omAIoi%SBGIO8?*~QbWc!p9 zY(%5sjY~g_??Mm+2A?aCYq!f1c$7;p3gv zlRU5tRlPO~Xm5LzK8VzD?{vT$-+NPz?QEgyinTJWlOobC%kXQ?sr)WB(BwL>i(Iu& zqAH*r@4{{mFbf9n2^?qQABVpgx&lC({|PXjX}!~0JbHHcUH{u^afhURYf0(`mJW%5 z@4i~-zbzJddECcv08MalqZ1wo`x*-!A0UWu)KLt;OkbLmKPxi|&@* zjmk}|Chrqef*LKYa3%O>KB$;q+rDqBVgx?*an!GcqUJ(&~VJK zF%&H86nE#m*R7gDcv+^Yy3T|$W+X~&M5ded!L^ssk;@Z(U1t-t3i4RPKBnR7;D46o zL!=n{@v$5q+`pMdZ<{1L@D$;#Do@{>P%0V*PvjXg%CQVN@VY%gJh}2{-|Y~7(3zzZ zoAKTxybpG9%p}sM_n4GIhyEb+8k(Uc@>kfZmpfvk3J zKYMIJqWc9U%;DK8Yn@htzfR)cABe4tdrx3Y&!ax}x*JjfiudlJpNCx7s{6#dWV`!5nd%HX9b8DskcS+r-|hrvxl0TSGu591(CSn^J|;B6>B@v~rzM z#u_l9=Yzq~H$+rsGQg+ViBB0fwLI@+^fwQbmh}!{A`mdz0q#-=@0dWy>*%j$zbVW+ z^KChlv4_58mVWud+Qe1*I-rl1=5V)*YJJw3j0~{qFN16v$PsXg+jn@DnJOQ@JllJK zdgGjoY7*3y&M7~HxEr#|ZDLSmk*QG_*3MQKutfE82@UPtT4P^OW2YO^21=VrlO9x3@y^6?h$?>&d5NNcphMfgk6)C(&oX!iO+;{DkK!EEJ7s%~yNf_pted-KZx>6Ag{) zDX0Z>c|J179bHu|8rkQlO$F}JyGzx*px`b{>TWutu5%^&#mPAM2DQvb%N zsUWlz3zL+qXj8e#q!aTKS1t{*>l_POq9?X(u)!Sm&N+(P7l?#2^1>Dc%k@pjM6qlb zvJyNLPQ)$G%Wq+L_nyHgFOeG?5`gndJd-AwYcB8*HvfuXdZc!WC84L^+wzd z0|tgfQaM69Bu39PIMh0?v>NDZ<5z4ku4iyV@K9K2Nl2RMe1l6`2vUum(7j&83GKSUwd=BPN#RA_I_ z9dMzqX?>eS`>3z#H#>_dKJ-^@yA5S1_<33Ag*=4|u(H*SvDWFaLF%kc-vnc#9knrd zw!C~5Qn$Bqa7PuOo9uP-f@57CXXury2%zc-3Z~cl6Z8j_=tvXTAxM5@spzZNKqD1Y zg%2?Bgc(64ZUzV5>{eF-eF#^dy0Ytdg-Mql9y5@azE42q!1J#6K#w@|Uv@NZIa3`1 zZKq+r=nH}C7bp0KwcD!!uP*S2f=Rij7J61tR~stU`}ZMl9w8%#mStsB>4mqxn~2Q$ z-vd(!lFo|0s)AU@eaMWvMHPe)Z>*o*b-Lf&>B`bEaBfWd!kwKYpC}u#<*!?#hS%@= zS<>m=DBu!R)%a)=McfUM18nrS$?n52PZ%6cuHp+f=6AF|QU#^$g!b!Eqjy!DC*B#`rNd>v=Eg?Z%X3u1UJ9o%=;%tECr{ zmhl0r!U`f+J5n7e>8@Y$Y&k~%S?Er{%=FJ^XnJzKxKT);bG{d@*&m_$z>L~9mu;p4 zd+M$;Vj#*zVTuicEUGIw{^RjN+JjKbkmo?+^S$1SIb#TRnmXV5qInOKeX?>A?yRjMh9AxKxFotDtb*ScjA_!&3)NTihR)VXX;bmbE zjp^rjhIu{!fxX2NdVR7`QO~}-TyTxE&MVNAA@&x^v(GwlgFo{9+s+u-l=2KF(V;#h z$Q2Y^GjRR9l1mIHa__a%&uVsL!GG?@UHRirpC5FmdZXQrcP@8?olo{I4ql1gneBuH zJ*`yTXY~x?azxh2TG&Hbf!&guu_XB?Z-><9{G|w=WRz}IhXKOtBcKfH8MH-ubJ6jhmn)W={{9DxuVSAyI9O`g$QR>Mt zvR4EV3XE(Pkp;TFe@cslKl-(y-d}1(EK~9>$bClSVZ>|S<-mx-gQD$wx|LPKeiHn6 z@1$O;qoeEFP#WXTEeX8>h>9P993Qt*;%i&b8T9hZ6L*sEW*p z(!fmD9kbcM`4c&CLj7JB5!3lfJ-3VApfz{R47~#KXvBEr{dt+}Jty*VJNR4y>GSg< z=z13&q?SdAyt+vj!7=J)u#@qg_e7?cF2S>|b4YUI#M9qAPp0T=*U#72yt8}3i<4$6 z0}T&WStf`It4B}=@%~|ym_y#GMScil{XiCKXSvkG;m#fos{61#Bsp#4Gq1F~er0LRWiHUowg4b0I`iy9``!PBhMmh^ToSUL1WO23D zyY7x%4X1!2!xi)@iJ_Kxf3*nBMTv2WkP7UL1}eiv5d&pA&()$jzu|kHu9$^3R_E=~ z3~Q4b`kIMWFfb{hiM~SJMlWup7lOQttS(bUf`1Wr16|vbzNEcMGSA%J;SDy5cGePz zzc9~yv_QSnAH z(4JRNA75sH?ywvMOW@q)NeD~p(^p!Yf)|V?{7`?FHdgOHJH6N*S*ofBv=hc$|5&D- z^tk{@Q;J1@2??Sw^?{CeFyVz{bl2fmFnpQDBRcljrv|CKE}_e|i@u33uTe_s0f5^u zK<+dMfINo^*Eujpe;45YoG{bXh`yj~|F1Ijs#(^yn96cPq(#jNfG!hQqr`&5zT3 zf_Di2tD0=2m1od-cDhS<9Ean^zVco{;&1jYNw8DFh^y+9g3?{^fZI9)AdfXj$kR-v zgnD~)X;T!vosBQj0%%>?`Z62;lcqneB|lAXfTO8Lyq5CEnVwe2_{(@`21Tg9Tl%a* zo?^wo&G`w6wJPpka?HI9$A?Mn0oYKIYAizipr+nZ%MS;~d28aU-7`1$wG7vZj@mWv zzFYNUCtZ1dFXDA~IF;@Kk&m!+79Xr1b~EtW-DPc}-E=AOVIe-PbKW8;MoK-0kdk)+PuYBP4q})28!%VnAsGX&Aa=Xc)Sm{W!fG?R%nO~)=&<^1L~hF#l`!x zjDyD2au^39%m$I6Al4_1U$t4B>1II{;~Vz(-H;m}C{ zlbgYY=xsr9$Ely&d{)!fktmNfPjNs0*=P2AX@0AoA;!)Z6-@ zAsvWfbj{;N(DR}|clC&tG*PeZ!h*`pj^^cl1++VT_2`LBbiJoA=>j9sba$?EOt?ad z25ZE<5NS2wE!ppc4Cf%r`HGI>#kv5Q9P3wJHE(#YeX*zC$y4=imr9`Y5xX+5bW(r7 zbH-?ui4EnvZk(aonv&SG`c@B-Ia*gje--L;=(25tRO3)?rlA}8O`lcW9yG?!cp8zu zNgvbs12+c<4LL-YddxBrNnPF@fmHz+dMpRvE=Hsp6{x$f4mk@$ zje_x4Id1=fYN%SlI^U!H8|l#H3AU{TJf7eJ3~Phx(Sx(GEMG&U5vlU9AFGsvu#Q{fiI`}9U z94nFZ=f~3~k`W3RikBU}D+y_Gh(URPOaIxik#BlLPu{6X1mqdNv{?V304XMa{n9=F zdwWYVJP!OPbftHs$NY&tVICMg`XE4u7y`xr!LbG3;1XQXVLiGYFV`LI&lu1P=$8pZ z+Et}MiGuJ(_6XbKQDQ#Qp8UzjpceLj%aQlc9NyS}KplLnABxT^t2Pv(Aa|yg6&$9Z z0(8Tvo$KNQ=d0Q)-yC?_vouxj1*vcSU&>l9*bWKCdHXWKK3N|LxiaBL$yu`XQ#$nY zv~+%~if%hQ=a*bxxj*M`J>#)E)AqImQ*Q<5`jK$LAm zIu%KXoKn|VRa)(xuF7*D{pBN%k+Jxo;UVhyLG))bBYMXy8aVTi)`Ij`&L8Q2%sAt# z@4u*fyeig@l%2;j55<1}jMg&ZA)eYvG!b3k&f3K8&rqks8|OdQtQnuqI^QpZlZ zk&jN(-SJJDwT$1ivD&eT-yaisPuG_nG^I;*ZJrjV0O5Tw`mFe|=CKN({xzWEtXRH8 z!XJvc{9rZzMFJ0og2KmffTvKI5O9@&uc<|Qg_5Z^3~H>l|JLRDo-z8e@Wtk)QK7}8 zpWnE-&cH4btSglCc&Vh5IzDbL0lZ^x-xyRjj=H@tue zN6;USWxV!fEtGCM5y zazY&(8_-UBr*DM#b2N8bm@Uq7gF58Zdj|}4D$^y`d1_=&DsW`@8`J%nPTA#vz^#$# z&dHKE3`0@C7Gz=8y$94-IJ$@h+ndmUvNBPT&f~Fgi^3K*)aD&S;A&T)BmY&({GWi# zMd|qp+`3fU&tc_o?w&>-|PLlev2tx*pTL@TNk=gl#xm(Sr$F&j^-HxtkH)6#GLMmVf`-7*-S z#I7c`jsm9P7$Y^#eBgjpA+)Atl-BTd-=}dy*YFg}W`&fZV#xh0H@4R*78<}<=b3MO z(xYln)M#(A`+_a-a6p<&gdh@51D4p6p#eu@FJ>U__r}v(JQB{W(qp~x&&A*(!qEY` zp_MNA>--N(aXy4okXhgL7o?~LS9P3LIToF!xT3;1154_ia*8`oC2|z>>VAX7c#dtC zoxOt9V8gL`wq%6!PME_F;{wt_=3!g>8J+Di3D1iYlWnP&Dcg%As z#nr6^CDq$^8)BMZX;u;_&r&@BM zv3g;)?&iFT-4wgD9b?1kYM#ePMvsc;oATaH$Jf+_YnxPUOJa`94<{eoO}!rj6{F)w zkH-xx-V~5BuAWyL_{^#4s7<{x#TR9$eO-qGwlizZ?^P;C@7~jaI*zbU>>dk#QC!U| zI7O~bBTNV&5H5QWXcDaZOM|&lIeIWI>XSh8qHFv|m_&<`89UoV{Fy3UpBC=w(19+9 z{|)}zmkD)vcIf+VDZjb&!^M@Y$Am96bq9ZLxheN@mo=Y2Pt%2On8V;!2+OZ6FXv(7 zb#8xWmZptn}{3Cc&_UJ>Z(O_MriL0YY4ssT{W#_k; zrZGqV4d3b(;#_|`r>Al~y>^+Q`PS(RF^1r=a=K{Itk-7mF3y_CH0R&|LIhplg`f)> zEkec6WQq0Nq`ynveQoZG6~4@(J|9rg`#lEuD&9pHh|=!EZ-{HT_)P3Wi12FK2QV9Ff`ashjA5mo4$#Zzgth#hw!{)?DL8L{Y86!u&BuA z^Q92OjcfXX&2}L;jljrLr1rgWx$nZF5$GKIvea{oQ#EQ*6ptXk$=lk3;(}w;XM_EM z`t134^%PB(t!jjY8!|~_{L4O@fx#Roup_hBo1A|Y82(}m|Fic0^(p9JMoVuBHq^(- z`tpBphyU;Y`)?Sc0eKRL^ycA-*<1(eTcL2X!}BAFa?JC#KlEx>U`4navYmWNYsH)n zY_A$}5#MZ6@1yNR&MM51~ht9(h*+{)S&_P{1QXW z6BxL}jfffhlrxE^*Bwl*-L|m3n%~4<-!0l;@vE#t<)fMDUMBdkR2!JRj(GXbR#^Ln z0*qQK|Fg_qgUyoV`x#Tkf*61d7D#acH3PmR`;-vL7^(15Szym-80$}?x8?1PjePlC zDw0|2$aRE4Znt$L1BJrLh) z*(v&pqwM*FlKU?zJ}1f)_$hC=t^!TYEOK)mF`F(f&Js@iszA{@J^&dG%TML(ZVIw= zYms3sGu&wXJ=&D-)Hbo89g7pI(|sM*jfrB*b0K!YY<@2~-Z!z|e7?siq^<-|`<*{3 zeOj!ZM>`yx;haw0s+b!)(0xBWED$#crB*F62fEy7-?sy%UjewUK98T-RpyyyH84l? zxEOuvEQ?SQ_~>0k>Du{cF<(Uf{2gvIW!(0l&?kU(`Sn!2plt%lw}eFMB-(ukUpl>j z8>%M<^}CxGGPnXI1rwiZuhBit5tA=O-M}1J)0^%8*1Jhayxa5?=8|ZMk$e1x!kMWX zvfzLgSrwpBdlH!6;E&Zr;Vmq+TO1h7u9@%JzWeGdJfos|-l*W-wa0F9V0)EJ0Z+A9 zT(qmNNoF_>*0k)@^m@O&z8jL~U1ZLe+wUV?6~gZ!Bs1AvYp-AxgH|-V)A;UepvRE{ zdx*8N{|a>Ip95qqL+m(k|4e4j`Z{t}Z9feV(Zki=VV3lUC&D@%JDEaNgg*gU;J#HA zFVtUvIpLgzqk4ZPi`aji+!g-4?`**xFE*gfz^x5LO4pSua3I6_jhdf|yyKc_%g!+| zbjQbDC*j0F&P_Q9FwdlCEPymv#il!glNJB(C712P9<*H1bZ|H1EO2lU8n3qm4Wv4l z15hfqx6cXLVn3SS1gKmqCHre5a!qxeYE$$r7$7n20IQotY#0i0ex${hWKE6yDr}tRH+*#fI~YzD zZBg*r3^ZC+I^IStnb@)148L#-S@jZ`#vxLEKkO3(SfRuTt zYuWOcp`}`Qr)vv+{@O#~1SGwjhvuVy_pEn^jC>-|VFYQ0dSKZ~gRg3`&{?Lbw@p(T zq6ue(0vuVexq)uo_zdPRMD;{NaCaaU1`i6QGNqmvr9vSBTLY0QmbO!NxJU3itZj&; zU%}8}L$%2q^{6IuDF%p*0PWOVn$#;Bw|aK$ico=0-zdzOU8Bc8eGic}cE;EU_k}pn zE5AcreYL`AmbMuPB^|-SJO-q>OXrM;?pfz&41>IFN!QQ*CG{Gb|7t1xtPzfNgcxfv zlnU-Tb^YzB&OHe7hNpYr!(auRe+A6^6$2tOFZ5TjrAxqIR}QNx|2j^g8nz2CAaaBZ zAu*J2asCPo`QnH)#35bPs3PH9E5r)_%>uy3le=8;VPb#+AoU@D{0_+zjDTHErF5?U z{HvZ-oP|7z51z(JhH91RKrX__)Jz0E$n-?-^ZmUb^64*S-{Crf5pbtwGUuzIu&&dA z_xFg>pL#edy5ug>mJ7ZR3-eY9OAmOcSef*5^ZX1qw_Ba@tpLSM~ zvk~rjgAm9JrSnr&b>t3W-*s%1ysW%$n*J;v0@}&T6?A=NtChuGhxdcJ6@qAhQU#@jN z@9)ioHhFcXTDO{BMo0qdbe^r#fKw{0&krb&L+N9K%Cl&=YF_+(-+POQwH9taHc1C@ z`%Eu6_ZmrR%OYv_08F&lYWmnKxo0H`@YMO(clIEhOPMxm|M*2-KpP$4Y^a65w@eUr zP~djFsXOc7O9M{C{)fv5=eqmC`U15^0wGrW9>C<+fKnWud_m7?S)ifXP$N_V)>w_O*v9G>*UTorvVR}E7yvL49VMW1%6pbi9q@+l znZ;Hb=$t@I7GEX`q*q_@>_sSiG`EgAJCSgWdmA)3K+``+vZi0Cda#E=(8I>iX@b3# z7z5cUBqMubl5Kq?@b36po=F(32EDvk%;8piIVgwW8@$vh{j{!ut@ z+l!s~czE4d_S^H{vsTx_!t`ykPQJ|Fz`j-a#AbH=vyX@Eg^`Vc8**k5Ts}EAtO$It zg5nQmLY4d13IVx38{3u;vNH*tdXX+}etbu8S+|fiZS=qx3U*J{kL2Aics~c9H8(Gg%5)HlS z7e?bM=r`5&skv`|C^kV4t9@oZ>g#UWSE>l0wcJ85YNA~G?n2S!t{W8M2Jh{eED|o7U+>`qBma2*f-26o;b``v<98Fq(1us9oji@Gf7{1WG zn+WU0Yh@H2rPUn2a5;^k3NZ9t^tq;2{~Rp1pMr+QVzbnZvEgMR>Ml$ku;_wvds&JU zyX#x&y)9_Cn3wep25m~e$T zQpIa=@aBv|a+060N$>SwyyJ z4wYb~IwF&Z{8&%mgjI+}r2}Jn=yKCM^H`hHPxy8J>}m7xu4$(oqx7$aN0~r#?q+U} z^f9>yUcafyk0=>Xg)es`Skn4V0c&4z$!FC(}sd2*zlc}gdbYFNvZI&C9_gh>$yO+7a|sd+(9Qw!;K$S zKAkpm*w8UWN=4$0-bjmJ9w&C}{X8@6y~}iYtitLYsq;7SI??mozKTJ%;^sCzVUh7) zMHA5+{QBK7IC2gKo!3I1P8@=mhLd^Fx@D56!3ut*G15N)4n{SHGe_bt`tDd23vs>Q zV>$l#-GP#&&N`B|vL)kANX=TBc-g2IgBxI25&0-Zy0XO?4DeGNI}cyRdjDxb&p4A6 z+XVa%hqYTQn;Z@wCv+Ppe`IiG&)fR3DjxD{$Nm#hKqDVeZ72v=9Hk)q=FRL8YPog! zh^0)0*E~I)&Gzt$2oyDthrRz}9na%%B#$s0N#O8B{Fckc!3!=sr}g2it)4avR+gu z{3*^JOLGC$kxO7C=<9F1?$+!F)e)g=VJC;oE?rm9;I7y9^K}do-${^cq-=9mWO^`5 z85EbtFMxPyR}wj0vq#-eY z()-S-pTWSm{5Y~crJjbLa8T9j=w;!jnB%#Xx$tKY0U#Z5aS$3zA98^gumf>#M$P<5 z?E}sAKKYvH=+a>H!(@R#f0Ptx{2_xWH0ijj++yz$frK&16pmy|CnODSVP&J+jqc>Fn|Es}&c&k6{D$Q|=!~fzox6BIh;*r8V~7R?e@w?#ucz ziiNv=G3k#oSddkW{V|Lt5OIxU4t;>)-PwLyK=?Pi(mQRfFR~>9`*!|Rb$c5w*xjJ?zrl3QID72QZ}qhy$%g^ z92u6tUu~#RK^N@4E00;+vbhWPdip8+xaCFjnHTC3md{5-w_lw<@6=Ior&+dFY6Dy% z&3a{iOqCrVJ3>O`_3#ixc9}Viu;keDTx(@s{5;KNv4F{EBO@@2@yDw?a$Mie#NbrG zKF_&i&SUjmIvqM-IArZs2Fc~5Dcd?j-#kLrk1k48DYXBZ5^qV<;8>Rq&zW^`jO{nz&Q#crre<23{gf*;EF%Kk|QIQP1Cl9gQ=OS53sxR!v<>IM^#kwCFRn zy%-iE&PTSC*BNLzwKUG&>^o%JVy~}_wKS_uq{*e^QYwC!(sbT9Z~4e6XQR5hhPQ|N zwY)U#FsHw$M8~HQ2zij++xebb2e~PFxG$iSzEgyO8U;>n-2PE;KYWXZ&_b-WDg$p= zl+_5MOao~bN7XQmdiANWDGJ0ka@kU&NA#4!u-J)~#>d{Z}DLvsBJPWl> zo=U=<0^rw)_n**VGItV0i*A(18m~-JV}@PqvYg(AwZ~b>Ml18AUbzaQU`a_!A&u1H zMBGtdcY3(Zjqy*k(LE2vmt=lt>`Up9HG-sT4t$Qe+-5u(QD)u`i%dmn(n?|Q+G}lc zSu3Qn^7A5-zA0s&DB6NPJ8~9TT&Ewl=}zCW*EO-mKmOC{I=6&t=={9g^HOPRwIAw$ zDQmso>8u}u&N!PL5E-?2Xf41aTRykh!Hx&uDI0Fo*J4y&#{}2!tYG|P6%LBtI$P~} zUyurRZZ#kmcgG7cd0&m{w*TjR;yG=aS}4wC8KSy3&_<>JR5meQHU?X|2d2RF@2Tvm zHR=SB4w5B=c->={B5$H`99+t_g=R}yiLF}qqlZnTS}I>Zo2QrFirxEU z9%?JdyU7+2K4rqG5$Bv;sE5@5j3#|vOehu4s+Klo;E<9uSx?&A4drubQ3$Os|H_?7 z7&Mu&Vk!dv+CzQ;3J~?e&8SD&cCPzaRLHH{4MI^2KZ?{aNo^}qK;M#+?E8xLz;lvjwb ze*6}+LJ=LgYK_{re7i|=_iz!}#mH!cll8GWw5mXp&Nk&xI@F%%%fOQ+ z23d7~FuF5~)X~sVRPKn+$WVt!LOKn%NU_E}w)s`C3Al7sRNtOWFv$SqA{l9Xc(r`k{< z)XvKUpW8nH13WuU<9%Q`ENzarJIm;z?u*DsqKK`)V~|VoA{@}M> zIn5ILQZXm&;X6P^UL2^ zWYsSHG3AZrj=6=SEUtG|+vQivY*;z4z~tHERec40WzqLyO=5R9JB@WCQ*HClTXbBv zg~vZYszD7H6N*~`(1J*+TR!Uo%o!sDa*^?VJH{z`csn15`_(>JkV2pcsm5*#BU&al zGGm@-qRbw{$%z=)b{*wTpC)(}97llOk>fwh>v?;_4?QjL34?Nmz5s32xdA1gh$Zg~ zMKu7p3J}19K;mi;GFIZHfo^!&5nntGH-W3Xg>g=K6x#M+`(=SLzB`<8*K52{4 zXJ~G_GT9UHYCD{PS32_c5v-dHhdN%g4QrBA91E zeSBtioV|^HA!F1N#n^xXxrsvo$M-tXA6LK&+e~dR&_}~_hyGrX1nGzIP5hTDs?L1= zAd#0sI=k|+SwO$#wlK3xK-LvkW z-S%AG@8z`>NiY8kn#?D4M8l46gAo2+5J(}TmZeJ_Cyv^u_#&r_taMa2#k=HB1m z+~Qymz%IU+_H*2Sh(*eJvN zx55mAHl8CIYG$k2_iK^d5j&y;N;gEaw!~BRK0kS3m2}mpjy8UG^9<4D)2ROXiXC1U zZ(w=%D%p7ciJXZx_3pu{{Nq>#VjUF}T^u9EnolVpTG3b9 z!cbw!9MH*f1y(VIlFvkd#J+T^!@adSi4Ay{WeD7I?EAv)hAXMTN639GW9=%|pj!bO znQMX;YV`IXJztx2P5UyL%;^<9`|+Z#4o`J@TxDLp+U5arKQAkye95%Bec1Aur)hH|ml|M1GR!b*!tqm8BfnY1x$hnf=N zjB0ep!z9Ll!+e_(Wgy-55qdSNh!y3=dO_AluY+$A>4s~tz!q#@{2BBkHs^czmK|io zh6;KLh!X6)|5(X&pGVoNskahHqNXpCCWTdf^{{~5<%+shZUK(w13ZvrntkJ#usSco zIjHpLT(PuXb^Y=6i}>U09H2d&flcm0?;)2@fG)#PAr8XP={f+VKhIaS_94?SmWH0n z(sbl6N86uYcD46~H6-Ugn1sPEv&N}O&P(S#G%=k0Glo8>`2V;ShMr=TxDG5nl@J5! zWtKNyJe|fyr0SJN5KJ4I^_9CN@)tBBTn!=*Ium`ciHeYjjE6eF$I}OXue0}J*TvXZ zNgvy_X#jy9F5FWnMCgesC@|aa#?Eu-Iwpa}NX~6}E|g$$qkwghC4fk4gNKQ8Eh$** zHLgO>XU8>OQn#ah^epb_ss=KASjM8>^}jToFxuf;pc=P}Yk*ey{_bLZ69d~@DADJi zi3Vh{N{!v9qx-Z$HQWR5Sanw)qtUmY!q>MWqr%{38`zB}h1p9N0NNJ6KsFRDL@C@2 zcO&MqBj!wpvm80t#5FZ>Jbf;{z25qJA8KW^aLC+mks5?K)o@3#G6L1hFGM1yf|Fiy z#dvAC{2{Af^oo(F^lWaT>eAE)s);{&3eVeGi5=Km(2@?`=2CW>^jj;a(;w1UxNj!< zW*VMv{8_GIN2?OR10*OoO!nv*69YWq`fjLbFdwdj>U%-){vtxN_ZZ$E;|!EU+{`zR`MC@qYSBvHl)gL_8zVcSFA|Y7!rJ<_bO46o(;RMbTxaK-tF*6mwxVrzkVw zAM3I!_5|TNZ>+r$l%?xcQM<)B$9&T)AEC9?;PF-WvQN;hRgR2PROp|A@a=gZTDyE ztN&Xk?Px^Sp$2>QA}0WW2U}8T$E&KN482)NsM~ao#X;&O7na`TW`_-|WV=6K_$^Vy z^X}f!Q2d#!?o5Z9IR1`gs(uA@>*B=h!Rpl_`80HZ6Hg|^Oo{~)iM54BZQga$j@b{l_ME38`m*qA4~2tI&aA@jvhbEJaTNcfiHg$l8$Yz8T_vD{i7H>JEdl^3!^IM*{2^pAM_yUZpO8& zJ%|tM-3zPc@sS^XB)G4w+X^QkV;8{65dy_bi^k*2vbWIFw=HC83Qanx)rbaelXVnE z@pt&um6;ve5c+OgjMPyPJ&(HttaApNN;?1|DxJh;zgg>P!wd`;h4?PLsJyg?vX~-Sv$` z?0D0@mM@{_S)x@28W&moMelYN`;o{qnHW_4<4H@=0DU8Fpc)Zxgy!>W03IL^4&}WB z4_3`kACDW$sgK1PPw1)f(JXG!m@6>!d>BKMwr$0$yzHh2hK6Las}B<{0SVXD5zQ)< zGm+b~rdbkdus_)j@9@L`%fCSWc`rcT-nTLb)c+~ZEK`g9H!ONORm%)9gGi8JpnJJA z9s4;`vik|IP7egbYhq`z{DAjwvOG@_fa+kBXTVbtIV$Mm`#a<;Qao4>Maod~v2(C` zxQNZ(L{jJcL-JR!r4^wO;P}nTeJo$+vdWOT1;nM8wE^S+*FtfHP8)P)z%NA<9tHlP zK(E4(b*RAgg$L;EanDaf*$Mo1se~l|yhbAN@qUF^Hp2@%Ovu^N;+F~4L$V5zO!t=8 z?Mb9Nd498qhfR`A5=N2&ZCHcS;G-cc@_Aq^t@;`t;~J#$338_U%rL9>JRXipDh z^rPDmCHez~V$~VMTt(ckam6a^S?|!hw0TrJ#bO2&b0OhJFm9Ug%#>cTskfzZH0c4L zKt5Bz_#7%qB-_9)nva>O_0uLsRVi$nKjy%C<0>SQ{OQD$u%~7mRu==<3~OKHGw@yEzl(U zllsG&SryTql`;@Xf7jfoAYV>fxkns^P>VaFVt+xf$EAKyV>Wsue3BkK?!6$R5RCTg zgfY!5SaJi-w@Q3jT3$*)Hn&;zJ##cK7}q}RS$ed{YPH@#kXY?N82rLcWwnIT82AY_ z{wj(x+EbsQ7>wI8270=)LK!sFG(|)lJVg{JKNSo7hg{g%PQEp}$0M-}bD0KZ^g(8p zNpD8}Q5ssn!Pd3~s<8$|^Hfv}2Ecje4c!_CsP<10i!cHoyN8?g*-IXzaF!q!wTis7+n-OuO=KG2{+UtaxpAO?Fmb-OXAyGOj$sW2_R#_oVPfvYj9K zFQRH)I-=SVjC-NQ&gN&qQQySv*L{6nEn{e3qv>}Vw%ghXaPF%(H)#Cyh5ccC9DTOf zJF%U4Mo4yfUl`AGZHDL&{B#)cZ4sqk%J1nlBh%utRww#M_lFNaHJH|;7x}%6AP~yn zjc@FUh_NDO7Ugr^xF!%B(qoOeOF5&xRtG*AVth2X& ztYHxqwG4ir=s5NkQJ8@)XqBD>DaiPG5_GYpXn2vB17o(HEylOGps#+cEeT3`) zSqAS^8nS9i_VAqDqJqqIE0t%bs6QBS;(*5)uqG?Mu45UK6o4)`>-;EC4ftg49b>kM zs3+^QZ@OpbZv8e@q>pX1nD^)>=y~#gnBM9OaoQOeK6#!uZd(-~WqG!fo<8h&S6ln= z?n_lfB1MP$`gz|5BGR5_eCl^+sw1`VP;*lZMN`$g18fO3pTy#01GIz;;xBNAvuu;I5*MHjbEQ=(}$vG+^x&H%7_=xL;E!?&4hNbJ*zH4JqkS@f{ z#CS(+o@ZQcUJW*+2i_Nq=KK7RX(g%2AKJ=Tk>ffbw}VeyW@yMhhmtT=Fi|4+8$ob8wKxc1S0pvtzX$G30WxqbEB{=T*9HBO!_!Y3W&loCOi}ngMW}|M5L>K|4f4E0zRQ zd`^_*4K|%TuzP+Z-(l=9^a9R{8~ybDCtD=SNnO+#B8h&wUot>jBvgltYEfR7VA{yJ z$H4He%qB^B%o3qTVa-Omh~MU2EHe?ECFKD1v#$}Cw>r$$jU|064s8-2x&BChng01u zyKQ4qqAMqHfotT0157h133JxS$lMa@s#|aJ$Io&{3qD)^ z^MH$L8^g7^`n7`lCq8*)2OUJ#*-sikm znkNG_0+W(xjxMv8XZcQc{{3)2pdDfX0}9mXNN>|)ymuz7N@3wM<8?3Ml96CA*A{p< zyxgfe7v%kBzRU^IvR%0l3t5;9(9}DdHHnU^t2FbK=KSL=p|8+!I$xP}Ip44dX#w=< zCWE~7;tF1*FnYCFX*2YP@sUlju?#-OA`<-w2DWYFgn~>CkFHA-LEY}6tE^N%h9|(V z7v+`8_<2Pdt3Oa8SYP4jG&TJ5tH_1CMSQDU+fceGv5%SL^@q8TmeRZalz;V^y417( z2LS$wfLrLhG?%ox5R3!1&wp`)Q_cxi(ai5TzD;yeL&cXjR#IOoN2{g0?q?>0blJkC zNc_B&u(g$dkH`MOqqSOu?=s!-nOGf^bo7Q#tIlZ&N*dxGa1eE!d=x=!W&Wz9Y(_lp5M!FmDI&f|Vs|9W=~ z$jPM$E;$(hsh-rO1h$dm`03M-U%PqW=6?^U?}eZmC(r z6H7hI$q+dB3DUpT9d99wk){)%fJ_{wo*G0RjOa9-)MFx39zRgTdIQlkM@RfxOCbvKDcw(HN9CBMYtj*NRwO(aN_lq#fC#kwo zQ*wNkzC-jdR1{XTw)@nM@q+@|AT1?Nc zlgxtEzZ(Usw?2&-UhR7XO9)&J2yNb!c(~o^7%FX1Ds5(K`P5Xed-6(=%5cIi2%{0L zhHk!OD%h7;AMz&JD9i2D8YYizSOQptUa0|_n$HzKXX;4QrmlV-HWcV{-HdYfS4m_M zBVre8l$(VP*KK`+r&OGbT-Icb*t|DR3g**%!Dp6GI|>2r(e004MYr3>%H1WMp5w0_ zp(mO|qyZ!dpPb%y4t&|CW2y^zr6*H3cipbJ(1vOhBbi3$KH1*!yhyXr#FEk*`UbnR)jY!U9gc!~p1{C;lc)mxj|3|=M80@S1A9Pu0_2$I&|A$rnUk3R<=AT`NY{Rh{`@i-3e-3T?SL*RE{Cri1 zoN#MYC&r^5NNzXrr=q7V-OxWrSNo_NL?yv&xx(2OoZRZzZg`_p*6HfDp0p`tV~`;u z?T1-E-^5>6f}x^p>IW6}FXUgXpmfYUoZ>3_a|_fD+tH8>t-+236@3H9B>jX{6bM`& z37edKr0U9j)~JWkON^+gZ90Ui?ON0C1@i$A@dDD6cdDk@`6`kzxhBtKQtD7khqa~K z+h+H=Q~Qslvi3zK0u;c~AfxEMti3mYgx4y~HN1%_m3Dm)3!!&KA61F7(!V)&KUkfx zdRBq_LWClE0QE0zclWxqG$pk<`A_9rq3b{DnY&n(c8@~+rG=HhlLd@2wa96M`G#Tp zOZ>}PKi>_gyyJZ4sAtA{xB=4bucP)6`Fw%YE*MK;$gnC_{jP8%GUMv=s+IDm7hpBq`(TP-xyFqeP zzj$Fa`n5`!>4yj_^-}ChfU9kW!)m}680|@Qq3d%HS{tjDlVFjh=EnAhoEqZA{X(EfgY6o)(YSf! zCqgh~0bo=t=mgSmFs_U{)jp|BRv&}>g^@5`04u&)16RdHb)0~G+M=fyVv#yNa{DSf zkfBgpPm?PebRu9l!&Pn5Zb&=t$o#P6+mv57nA^Peu03~rT~m$43^0hexWn&4=9WGL zdpE~t%}tySRb%<~J=$F~_LmW5&$O;ZRf*P4A4(_kuEtP(8%xeEh}|>U7rH7QdEHJV znc{z6^G~zQvIwbE+*zx{OiP{0OKPD={m5fU@7@_w@eR1X|G!+*t_yh`zoMbfEkkt%( zGWKkrrK6X+WW-hXTLe}tOaC@3$;x)gxX57GKMv$A6$Xz;gDiZ8EZBs?k&1s7mxgd4 z!A=aj*BZV4lFK&aXMYUNC8q-vLkxL z3s;|ktzQ5L*ysUQ8dh&`{A^7)sKGEIaC0&dn7Wg%dST?IF{xl(I7XO3y^qx9D%W1#@ef*Jd52HfFTo!zo(MLoBm6{P^ zP*2rz_5W)|PIBH~wehkvx&#hMM|8F|MNxDil33iv?VF-%U!|1P0YOy(5 zg&1mt{RbiKgCsr7cBcHRWlQ7Wc_Bhi8aonr6>G6MEGD8C@NDWxv_>ED{!Pm1>H-7m zjiT%CtPrXQ&KA&Y+F0-w9VN2@ZHpTY-CW#B{={4FUG}%%3jy_JKkEgZP=M1ig8LxH zgRZ)C3PiQfM;{qwM5}l(h}UY%0i9d_Nbv@7YPgdY4nQOYm62!-Zsiun9F*To^AVW@ zmXp1spu#%?n}p<-kQA3gxDRI!BH(gznl@wdNCx#}&*xrc>K(3Oaaz?iOI6<+H;@?} zAPrIZywX-Bn1KlOOe)Oy1yhh_eRG6xYmtJyQ&=8dxU?{~5(LZX=V>{PXLCYB4%XZJ zJFDd!5Z0GU8LAm#2AVH7q`|;INZvF2=&RtBEfT1Zg`~`81 z+`;v`D=1y86A_kK%$=DBv%Frfxon;wJh+GMr`%p|p9f+t`k+FiLpwo3SHB@A(}MHM z;`tNix4Gzq@3oLv64B7F$OQLJ%rMWlJymE;_k^b&gXRs*=QoYG1Z7130kt^ABkNFt z33jQm%+aSqXHELLs8XAU(suhLfh=ZiU!wem@zzjkLSEO?VnPFgj>M;Pz9PCh1v$ZO7RP zh^FD*F=NOh%mX6Djk1*PmF}3*<@&$A=ji@qbrL98LBF$>!8*U5#i^<+Nm2#m5IT4+ zk$`YO>uAzgy=RCaC?e$l8PL%(&kyr$rNJJ##0hSsH;&L!Iy2qfx?p6O!Ha11n!DJt z6H2cZ1sYRH`CKR++(rQ713Cm)XGY?sDWAn(;kGFxk79aW&K{L$fgXzgP*N1Ji%`{$>81@nI!T26W|@xCnXA)&mmr{A-`w*r=;_%)~Y(e_9cw zedn$V!enn2(P7IE5aAk!Ba~Nn>Bx@3lx@b-&$*4*g4BC^n{TZZYtt)4frrI(OKtqA z)d2M8Z+EyL3*Q(7pBCV;9YaRQ^sx;cKTV1)D^?|j{xhx?p?rclN@aDz;W!0?;gR!b zA)1V6h;1Hc?NDMey{V{_d=cAAxIev=vk1ee`Fw(e^QiQm%iJm>;$3rUXwi{SSmYd< z?Ca0O!zRBYRV6e*Cj*@O4(CVjQ6kPu@G9^4v;A>o3JqW=o7thQvi4?KPnBF~;-0u> zhtMQksX=`oq83SuW3?yozhJhl__c@Q3%_cXF&~e}^XM>EiE!C>QalSLO#3omv`;BL zugo-0X8jQ{yCp1yQEV3T=7uc00jbdtIg(({bhgTng1?(uzwY@9%;EI0uJfJQuZiYX z?J|!I*y5faz13LBMWobpacxoG%!>ClX zEzu8$Z}+kf`Hos|D@%sObx&QU^fy@By-NI%2|3UvlN@_Nh}^Q_!e0Aq^WK{@(~c7J zIcbh-3Um^e3vho$MWaeswP$&KRr}^^u#gl`9(f(7Zs%1pR^X7$nOnWnn?mK)4<9o2 zrh5FFUefR&CikVMH)&;6;M}cGYOn&aVqZwgSqpY$Dg6N*h0{<>m9e}=E0GPoJ%lb> zub<4;7i+GZC64ipK8%gNZ6^C&+iYR?sU@Ns*z!gzMr_ufjl^T6R&UC_680c>Y*+DP zw78O|86Q7m&}y1f!AjH~@xkk|@%x$o-iT*({U%Bx0gcmT_Mxu|gn)2zJ~UtxewI@! zCz|j^-#&dyV*vL>+3jSaMP@`#(b}S1UHRhRMSrAsgT_*~FtA)v?N4Z+mjSnImENyV zQ4e={DE%)4T7Ef>arCH7nh)|%LBCIZW6kcBc5I zx|FX^)m?f)0k8kT-2GFvC*8_>Z6kV_YUZ>drz+b#B2CP&B`ETXnd92vDCFFr-0Pg| z&uB+!bD4#G(Z|BqYHgdQgI}HSoS}0u@7t!F`du85IN!qE5eDZ zJleB+iUwy{J(#V>A=_kR2Xh~U$i`oF@&pbB$vpjz-0^znNL;HCw|+=(aJG8mt>k!j zR{J1AN)7%{_WbydN)F_cwNQ5-XO5!*b7nJXz-4K; zt5rn5^GJHppDY(yehmm-pZ@k>2|1jX^xFOcWa}5<|GHF}Mh377%CE=_A0shaji<+1 zu{KnU>dT4`?Vdv7efUBmt2d$E_O+vqI#!suY|i%C9Ywkvp*omH?EBh7b@^xYQ|mo? zDIorPJ`UxM1G*&x^k}PJ@>eAxE4>n(IquERc&SQV_BF&xZ(maLkH1c<=2NdXT`n`o z_ryMT!P@cPUUTI4u+?1p*Xzio3f*aCg_@?%|(a z_xat=bJe9%$JCAQ z4!_y^`<;e`-Aek!AaJ`B8jnoGV*3#Q^EoL>_7Lp+3oKp=FgiW`X<|NHr5!%N^lc2I zd#vS5#LrUWo_m-HSARUg{z$b{So=X6!yUU<2$GHeRFXqG9pa5C}!~; zgM_T)TCmAnuxRfyI^bZr4!hJtJDxo^Zq#4s+}PB= zB7TUXm$vHk_{TGqKh6&5ONKtY_SF2U!l_>L?(GOIlAoLen~2H)WIk30HMUg*WxT`h zbVS--B4RAEHNEK?cqnd(rk&P)E`wKX(ViLz&jk}@Fc4Shm0h6y zT0y0axFd%+t=+}&vje~tb_fYZmwm6MF^N18qkTh^4_^Fvfz=MN^2t^`N7uyp>d&ivK< z#p_*G;7tu!;97w~A;+EHe4F_zre?>Q!7v@4I?A*s?(Z+tr;C|VpekY7o#h1NW#^3u zv3wYxanCo3qp5ftXdsF)wog^7o?XY8TxjDQLw<0fwA1ulntK#fLzLKws*ip2!$o30gDeu>UxIs0Aowehkq1$HZJk}psXK?rYTwc~t z%{)SIp4YbEL9m#7I~&M0Rh;58?zkCcccPo_6(?y_@#vfHU;AV9y|9T!p8EY{H?M|_ zr??RISumvzjJT%Smf@|>yb|4iV}L1Y5Mk0xE3+ZSyz;n(4SeDSFeUjqJ}aU?JoY!j z=tSaD69{(ASy+JhRCc3$ylb4=nic`kVk|+cepR!pa0snMSzmoxfwce@gHb6{ zM!D~`VZe4->ue~30VYw@JStT-(#W$P9mt^qv>p^<&FSz##M?c;pqNv-S6fu-+=on< z8Q1SQ^Mx2#d@^tPdq@dBq-cErEsE1$WPclSD9j`F2SU8zD%klY{0N-T-gIHhs5f;y zaU^7GcQEPE6T&#x(2&@%lW*|RNL~ZG3e6*M35w z7m$Yu-G8Tl_gXEpnO^zOM0*i=dNpbK8^YDW@pIobzpn=eyY&1HGX9E8nQl8E63YF$p}re zdeDrK;Q6q%gtngIA2la8CP~33e$FH$CXkFOCp0K22fO*a+pOLu-ef*nm16UmEJm@e z7D}q{L&xJ?Ch+0$xXJZY94BaK#Ohied%t1(2dQ#l$+?UbfKe5e|)UPblzF$`oz-xWVt0 zNh0`^XjgwBxcoWb<=Pnv4XITo-z{4YrUdw7%M>*17l|FBIgd&v&n1qlq-_%dZ)(9) z#|cD^)(Ca$$rP)v@bme3Q@%iM97?+CUJ;U0fj44_?9RjQGijK-?ABja>A_iQ#^F@m zA;wd&C*Ht+Q19JgR^z1YbYGH=wcC2ADyL0wk!aV){7NQBqfEJpAj! zbsn~i+8Ho^V1~(pru*ZCkNfg7$oVaD!M4+pudX)9-MHaH5XKb+&(#ZW@4%IhIyKcy zK}%gs$CCBzrYgk&)tqsatoy4C*2K7L{6T-r$ zPJH?$A%Tv>-P*`Sazb3in#K`ypa(hdKRr1UikR>XcJMd!G%YX$NxXQ-e15~%5j$Yu z*<%TE_q6^?>2SV%-11?tRVdn6FyQuXQVGf2j7W|t!ytqxJQ`2x_BNXPx1=+X|D_c3)*~jc0H6Q#eM~&-bxx*P z)YR{ikf{@fp?Yom0xcpZZBJLT^dpETduvd|bFq)fs*oIHbTI~X;w#T`%wJ2qcS@$? z?-3ZnO!1!&P~fz6 zbED2sb)3oYFS%WnZ_}V*( z|9!PZpF*D^0qrp!ZIm^1t--DJ@-7z*TH=@bu>U| zwRZfBkjqLt@<+vDdz-D#@$LH?T%p@P!^d{2_D^|ws1nbz=~*pTRBQk*XD_nqTIA3)#? ze|d>(xj177EIgw-B4uJu);Hk|uF{#_9^#%mNr(b&a*u~Sq|zB4j)0H9)UB#aGO;h* zkK*inY?pN~kWdTON5zZQYi7geh2Y2BJaxXpw$pzdbx%(M&z#jRda;UZY~U+Khzd z`0z>6@ZxM_J%)2n%-dNRaeO!{j?*ErrJkw71*vsk)?XXb(dh157l6~FQWRk~-h>`n zs@kFR8w2Gad&(Yf&YrCXwoJwMIKV__RFjQI4*%`6J$k^En+OL+nsCszs%As_2Y+ql zd`?OVn*XKo!VfnE0EFZAl(+dNx1}H>P7w|!YYbtxG@OKJOfsCMCBlP)>u}A=eHJ=5 zPp?L=wP+Y5c5m+zGo4SVyvSmEBDOw>ZOxD+Ubs=xfeiflxR5sn-us^WjE6x2;ea=Q zjk-Tv=KO7`FM@u@d9w)5cPi@}cD)v%pW3}kuF=$xGSE17i}yA*L@n>G`XrHDO6aS(?W*5r$v(ws%5gw4c{rm)7N!#QUb!mKkyXaGhi9`J-mKc zBnQ%d_5jZC$eFow)MQr}HPk(IRTv7l9Dj~cGDLk^WbY@Uggl&#nnPHKU3Y>d z$_!Y@g!$6%64XSVeK_wEHd%MjB{2$#RG89j2E0BjfYpMxw}PJgiO<-OF&jyL7{ak_ z&T4|}wgXJBhxJ*-FG`DT$WZDBlol?@8=-R`t*|~-5VM-^q*hB(%h(jk`-5p%G6m41 zd1cE~=~`s5cHh}0_iJhsrZI;3FNKc37KP95wf}k4;jjF4$g4ilU!3GKvo6r_PzJIj zTR(kZ#g?*e5EP=Tzw-1!td}0IU0ddkJ>-RXWZ< z5ET2F-VHpJ-otCXF4BWPF~KBEqhfZ?Eo(TyXG>|W=C*c&=iozy{)Z(s&~d#OHAldH zUUeaNg_*je2mS_QL6qwSNsjkuMh<2A^R{P$LiV8cql5N9&`Oy-r%y98 z<%bbca)wCJVc-o3Bz6S+tbbHtdAE%X72S^*$;c@4jp2qy7oUt`($9?0m9cKl%=gPX z{=RH`iG9DmNY8(5jryUQ<_k8PN&ovsK488%zt2iCKqB`nv^QW$3JK`@o9G=~iX&!u z%6*t=+v}$E5vxqzLdQ7h(0QMO-AMD$0BjEp_))t}f6 z#S<#W>AnD?3%p;zap>ygfx?%)?y*BC3U>va=)Gs`Fvb_Ju;6b*ty^7+Ybo57ZFd5T z4DdJp##=Z14!R)anNt~R`9&ITNsKnbk}hv_S0PYlp@PF1bz`j|BE7jkBt*^A`6JG& zI?m}*5xue$BZNh{NB7rbzE!Y;+lB5cge~Gnzg!ci2stS0oE>R#8b>*46p@sAJqiFQ^uYL(vK;0A#nDq!rbkZ8bfi zlC*td8v3w8TWUUo^D1o_>J!QQ+R(MHGrNXETDtR`7X00$=c4!ffTdsQ7GATNJlVT< z{m*YfO0exM(^flaMxQI?W0aE83ZuKPwpm6q9>1S4flR4wkCl(-@Yx%4q{1~AHswPu zf!pF>Pn7EL*>;gjGQ&`s9b(lOnZC}5kx|Q3zE%!X9cQ zP-qf3ID+C?WuOeqlr8QSg7Z$;RA062aKBmN=&!|IucET4`Q5Hz?hyDvyB6oU7!0^AqdV??} z31UNpxNWoykHXr~>`2G3M`%}hSoVC|J`Zz>IV4tG;4WBgeE3^-RHY0xmWvR{t(_H! zeZKw&4%G1AT|`mQJxW*nENWM#sQGE1G729^iTuLMS8BXa|Anvx3-*UTkI&CPDENSB zdofdtFOJD5K6%dtL@gs}%fd2Sww>^O2f#fqvxrqS1$~ufIQ~zW`3q5z9O7Y3ioDu9 z9VEGT^blb*^OI=odC)2G9>faY_~eVroLgovDEdbxkpO4kzg>nUq61hbyLT$rHYrvXuiV!JnUlUkR20DO5bXj_hGS@N+(s zsagnXQ#RjOkS+OCEpMi@@?Sw&@R8|C_CDNX!dE5x=N#r(t0gjiq?YKxX0`C zkPV0)!9a>xac1k)byU9XNa9B|or+Uj1s$q6O0h05o1dBq}D#z<3=l z)<&NsLP*}lN$N#8@~cRy4D#mxF#3{ED_Q=WDEjJPHF$eUoa%vLn(Ql97fUi(l%v>> z;h(Y$mbJ2mcEbUpzs*l)3e4mr44*`*-wpOkrMu4N%@jzFjg>dQ#{*zf7X}P|V9m+< zHCCnPPr~-joANz~{YyIdT3e6=hpjG>D-r=}z1cK-*)yPt!n$^UO#0hNsD*IG*OP%& zPB#Gus!Zu(4BNWq-0PKl(|6bzR|QxLI|@EjFNjus;R6L!0Tsb!tGOR5N+xj6oCgs&Cs$p6o>(VKJ zH18{P6|VLqqMz&W9;$1bjz?uIel7KAZgxcIEu2-c;b$??2hF>SlC$nYs1@ibG1P;X zGJRvx%?p~Alf}v;9JK znU3>VM820+!k0j;%B=J)ZCGap^4>J}*A~AIY1_z4Ij6`FHLlUpvj9%BGx|4Tjz#B$ zUQC8TD+73~9>fz^S9Y$WOB85zZWtjL>1n}}=sV-=1ftNR5H!&W<1>w2hh_EC&FE55 zXs$`x!8K`TV0sU>;ET{5)^B~_(EIRcz z`XpZLi=rY2lcc{#RS9}X#%*SBN9pEr&H}?@8Y7rZbvwouP1{$MN4UE###BQvA0{Z- ziFs>P+ywzvIT>8}93C2By}&`5W6^h)a`_m%mD@i$wLr(V&rXL4 zQ(^qH9H9rCu1giZVq;8%p#}g9m&1>3Mv|jF2a`$punUiF(~gxFr(FX2*R;$(c-OqCzHTLn#JIax(SyxeGXWWITcJXPZ|olb#VGyU%pm6HguMZF8> zYO=W;p%9zB)m7S=va-MstR8Gpidor6%wQz6%Tw6HHCJ8*e8AgJl_$(!0`zzf+lc_! zLwM2rB4Tu#RoS}46`PgdKy6sm)%5NHV#`_1WO&(jx>C_QR`7KO^IVUUda!iZBOqR*MjYJ&@QSQ0rqVc3e$mb$`M#5Ys{&L_-vJYfC$VRnXiWM4V`KJren ztNbY)y*T;Tt@9e@ZH|Om*tS@zdPzJwBYyFHT_Dg9eNJHBNP#6gdzbx$wj3Azhrk=gpdbFknSj2gAuiRonMFnxSpaKU8 zX%3V7jqGqjW3j|mu=3|mx~BX^8z4L@4yMnxtB_nc>X&-t$gCtmbea!(@a9vwZX$-a z-49+P|Ll~dNAQN2rQ7&RSC@;2{pjS$(=<0%S93Q^xHI-Mk#3RkT6w<^>GI=ydi+Co zK(!<0ImiPW1EPS!&kS8$+`QPLy5;`YX6JpNls60mK~L@jfaG@ZC;xb1vIo{m=K_w4X!jjtQ3vf3k^c}cM#{I?Cf@ZWBO zlDXkOeJEV019yuc*Jh5mDn6A$IAVsj9D&2ef_28fmsjd>A_~y!jMw>q$95nJm*Q)4 zUFt>~Z3{2`3fO~4GE+m{Vi^v!ML(Tm^#9$||3wzpeyYKvp(DHp1c0kmlr0lY{Jk1$ zN!z4_h1{f+S1vx&8$O_t8Q!Tj6vUWmgq@Vy&^?u-fu+fcz@C?Rq-R#VaG2PU%32V3 zqp$UkIJfKtPiX?I{}meYaG}1mcgtn+X**k{u=5->QnS=1!(@(*|Mdn4)&F?|W~V0JJjxFOpM1 z9RU~0aU8N){@8{H9d442z3}2SvxS5BD`b^DKWW^Oo9v4ujK_lp%w_8b1CzG7y)6VC zVhgv{1_&RSscepG~Ge2_3mt$Jb7<~C;Q8IANDDjF)_KAOf%MMfw-drS{o%p6r zJX1V46S|i|rKqGX`NfP5IR{M#EAWFEy(IcHfAGVu%n9aKB_$xY{iM!gqox(hQ`O+) zd0~c77OYdxOV_Aeq_fP?PYRXiFnZ;awsq;)=;L|a!S49#Y+JL(Taq^|5in|XmPIN( zcJZt6pHX-Q&*y0zpDv6qzZf<6*vcgx+AWNKtuyDoV3bFR&}mb&P-XQ0M3P(CUsTl5 ztjtuf@GGbg05A`%rJw5LH|N`Q)>CV<*S}4I8iJK!GAW1)hsC-j41*d7fwJhB^?ocGoFpAe8LcQ)J7udbVYhJpF85S>epI`OGjXjk>^R)Q*)q9Dze zZa-)EgH(Q!6#rl#rbOzws5!=|EmTndq|qoXm_)6UsKMYRCJN{)fpoba6GjZ(8?$5d+9kK=|F*GfmqwZ9Hl*;`>|huUK~4PqP)op!4Vu z36LCF!L&@}A37cOIZu~}C7q|^1WHsNS@5c89|cFDv0+Y#ohV;+Hcs6QGUTw+=Cgm!bbkRy#5ci{I8b*sGlT?`Fex? z-Ch3w=1%`FVfrt^oKS%%HT&MRBmsH{pP6(77JnHx;vv_z+QzIhc+xPp%TBaF4Ck1Q zBYmmzrQ(~0xQ%uGkQyIY8zP~a9rtRjQ0BJh>){dvXkPWzKjj)eXFc47Qa;nhGj}Mm&47vYa@)qn=)h0;(-3P zXp&gptLDe9WWbV9KgTJDMglp#CL<|4o6;lj;nX*Y&o^89Q;pDPgY=%8tLLla^ICle zzR(aJT?FRui~N~55pU($FO*}k*s_N-6=G|RG3v-%ihI@aG0PfeUi({tUAT~rhz|LH z7SfuZ&OSAy&*KvsOzh_f$^!BSdC&nEEQdv%sMtPUr_&?lYPbO&ZvRIy}9Nm4||5p#!PReaAKQfEKMk+--S zx@0QEsnJmFBw12t&RVR`hY-$ zkMRM*<{#8jK58>8l>1Lxard66y+*s{rWrqZQ^sAh3RC!DZ`T0pZQI%OYpFHvVB0k@ zJZlv1UvOKX!^7P_QGFll)LrkPU|X(d_0~LmiduauZq5z_bji%g(fSVT{M9`&P=1i! zLVzI8a5p^MxJGOr#^S0YU-Nb~7bjwk)NN?=Frk=#cecI_J`~zlFTJ%XcfPPLvc^UK zQQmc6erDp#cDiB_S~QXL`74muI=iv4QA@^L_5~~{cL@<$V;J*t8Ad zLACKG+AM@#1Gm+OgG^vbtW~7pg7xVMYPn_LRX` zGY10sJ6CmqoT|Qi;ea&zRUz+PtzYEFkRySIvRP*;&t7N2;r;R>02`LgT=^cbTy)T; z#y8a7gJ?xK(cK&o1kkh{{MPKRqW0S+FHeq#*vo>^e`w-l?2@uS3%hZ6sCCpvLmW-> zb8{9axOOSSq8+4M_IqoIk}PH4v9M8-K0 zmmfn#;1ALS+U0ABvNKP1k7Au%vK5!hnT@eic5Akg#7MhPw6s z_hj5Md@Nw!^o@;%vQdL^UmkIXjXivFgx16YNiC>^(mZf1TC7|kWLvgC?o?U;9&z?s z2M2`P$hu?e6 zbm_nW)`5(xKE6okE3luf5TWDMIKYKqVY;R)l}#W(`sji0|19{IQ!%Bx5MX-YKtuSb z`QHReKQtZoU_%^bKn~4DQe(uq!WsSS6&-Q}koT{Ej@!f#t(U-A?-$T`bSRFJ@m=Zb zs%fL9V{ZLN426Mtv;EtHz->>_s#C9fWT^DycUXhqBHXz9%nrnp0U3ahAZXgfi`gYc zVcVMR7)nM&C6VxG=)9D%?}z>F6_#^XS-#Go<3&+OSSjy z>)FqK;*G>N{l;H54d3EITV@mC14rOi*T0QFNjH272i$z!Y5}j7j-S2`&HkU<{rWvP zDhfL>MEqMk-Q-Nq+kxQbO(qw8LZ}mH74m&?i9oxgQkqYlnr{CSgCRn!gykJ<8j zw`2Q%BK-B-P}tvsR=9O=k-YA^LZ7?@+(+ETuP(M<{4L{_V%;aFjPJmi99}Ne6fSVv z8l|e@?&5u&(HH*@{sjEL*WWc_z!og69*JzbMgJ;h@XxjsntMzi+V!`0f}!SICv;>a zzoL6vf?0dS?A#z#Rw`r_kN;xz`6rUb^xnwoSLemZVF`9pqa!b1n-hV_Ud9`_(ZWzR z;c$-5l{@x-H7lpu0eRTaSAphZMUjN=H2hKy6}Oz9pK)wF-M^Bo+?OIko>liRz8DSx z{&BI#UeCrE-GOWVzI7XpNqPf>vrjI!Uz%19rjvz$Z7?seoHBpcHzL{S(URYQTRR}g z?;xH8Z3@g;qxnR?kv3u&Ify`}<&Bw>NrW`s=t#Imgq9t(L| z?3|%aW|gM;-fJ?cu$Xh&9m2p*xRfMW!P^l+oiRiJ&h2=j=X=;4?!P{MLD*llFPZ}X zg)$C&9N?;EJ5yUY9^~)xHE9CHlin7Gl_p3Aj6T~KUTzn1(3AzWrarEqRMB$7*9D|oHvi*?s zH{ZOBENuI&F5GA#@^?ABXiIbeAGk*EBdckUYHbSteV&V=wP=d$a&a*fd0hUAv`o=K zpV_;N8@%t}>%cqmmhfK%mB6Qr-<{_ura>7VXn@-X1odocJNXclJT{IHJ~rZ^Q1hc1 z8!H0(uqccV61U$q*-#T zCryXbT;ni$G4>a-qKWAGO~^sA+5T~HF1Ht>RJZP*g&tZpSlNbt&13M{j|BCjgZJin zh_Pj{QUnYzWAmqmq@3YnEA6y-`bYTITT7f6bnxF0BOcCYhnYhM*T&x?W!h>17Dvak zQ4@Lc$v%AOzBruwgyFIB+jzC@`~yL$>CJ^Gpm50?(h#~G%ebE*YEah(D-3+j%%i90 z7I5uF#v&oEYAb6qz_F=$VQtMg6wDU#^w4tz-F{(F)e^J0`cIwsqI04QJpSa<6$zfF z43jo=%I9IbpHdqb%l3Zr?)`(btSsP9>$36t!jHZ_f$Ve|V*++0S6b}~R+IliQTHl* zpMve37He(D_?6HwFfa>>t2@P?)w>SLW_==S;p|R=EK27vh$*Au{-ya5yVu9Qdncb9 z#D(nP0X{pms{}0|5DSIfsx}hr!r+qtq&{I4rV+8~tn%}LHnFi2;i~Y-53ypU9jHU1|+bh@* z`<4h^xzKZrisdx~ZEMvak-5cVFZ6sHOdmu9oi(9cr`H;Oqo2hbtIK}DmaU>irHYqU z(RqHQ*)Nv92J2Ac?gzdQNU#ifzQUJaM3NgtyZsUdm^mq(FQHrr-G;ELbKbQ|pkw0K z&?}TX@@Zx&H^6Jx!;S+z6`O#fg}VUMzFalWvZN<#=Cq)eyk0A+I)~$W)!>u=#{%RA z&I|+Wp1@ILMmyo$j1u}s;Qe2iGaLoOjO)GyrZ1ytWm${wn=tt{68Z1M*s42^G}N`V zaiYm-BNnqyYoA;xNj~vAbh)hW_1lBqDc0j))fu04hngSulMETW<^^F`lTVksf-!u~ zKQk`*+P=naWh1Pn5NwJjCMGvtPXAK=r;o}iy*OaeG2Ea12#H>T%@Q_aJ7)NB({`2@ z#&tICX*H{Z)r1=-k)B46U#!-?VQy)ByUc}8!y>l1MM|-LIsd`)PBDzqw&eI@(hxvpYAsM=JretaN1S&<#d#N+%h>TlMR-4 z>!6P-oRA^$n5t$I2zDp!>SN`Z<8C#BfLn#IO8?McfAh4H>5-j_GT1%w{beES;;}Fm zsO2`9={KA~O+(wmJhgr?o#b?CCHT<92Xvg(K~j#CH)^xqY5n|bzJ1Bn`?a2{4EpP8 zl`7k+6BXv>nnx;K!wLJo6~eEPnv%NBB$wDO=WYy5xJiQU3ay`{O)~fmvJ23~-4$U= zdM~6=Wt}M@SdMIuME`{ad3{lSu>jMfGMZ=+%gX7D6y|YPW&f;~NK3+ItifSLMgzLb^UqpZ$(hYd-7v+o zj>^e$mu5kL;$I@C;4j`|Dgg+H+@V3*YBBfpWq&R#q-RFa>IV5_~InoWmkc}K9 zNvS;Y%1Xp$Mq^{{T5NpGUvz2%BG@YgJucGjy;4X4R(hQ5SN=m=)Tsyd_DDwQ@z7K znSTMV0GATNKIgYPjAafbA4hCN?6Bcfs+KdB&>k#*`WZ@$Czgn&t?gd9pl)>6?Op9e zsRZHGG<+@a1e@&O(?55b*sjy}D&PkB{)zAvy6wp7`<$Wvf;e8c!X9Z4A9oUTdYjyX zK5}rq=|ICCbYdA&Q4xrVj<$xZO@(M8lqZ}|+Bw1W8J$1A*fAaY*0im*oXcp?i4A){ z9~CJ|KIzWFDoP^tT73UWH6^F&`G*bq{}c72bKUvvbqLUc9Yaqu!`g=Ga-JB zi}Sd8gm9P=0d+o9jkpQ5e;;`|N7+-%9#(a&{6g z?bI5;shCpt-2@Dt#-*`czO)jZ19pZh!~f7E$3}t(+wc^T%;wJTty_t&35rm`@z`Se z@fd)33$m|09HuWdGWbDjc3yAo=2ZJ%2xwPXozADwu`MTKRIB|s;lBfqrv4i87YadO z`gn1UgTBVImL{A<*N}VLw22(J=(?}L*Y0hsjJh|agyov%X#Y@%zs?ItecTDN1AXn2 zSZgV!a#Z)k4nV(BWMmzZYD##dZ*%`CY4aYWl=0YO zse=G`_2i(>j`Vc148Z9sM`xmb&kTcPU1|7nyRY!<*Q*r5XpIb~ZHTVJGQ5*(dstxx)qEJ50X62JeW&CoeHFqAYV~wxhK9E8P=FJ~ z^n-snHh)4qn9-2j9r5D?`@IRW@>osnqPuxB^iC{7<`e>CZppav{;AF0(T+n|NH7Hm z!bO z>Hm-s_vg%hJ`@bw_~>9HDA}8z&fY!*Uh1uX=qMcf#y{3NywrWje z-Uc4mFVI?ulJ#?gX~Akkmtem{k_D66TgtgvYm=cQ94z~E?h(>;cp{`fwq(KGf$e(v zTC&S6=IW0hS#Ywb?kU^7ErnAOt!||-^sOz+`ca+2d@_EGD736qC&cl6FsA@)D;DMO zh~Q6{SJ*-x9J=`F%smv|i+!4^>1i7|$DdC7QsQ|8@v&hQQ{l8qW73%rS3JFG0x=o) z+lLlW1JrMc=B+N-05KTOYOequw2lTL@hK#68g_exxa1t)-kQIiV`T+WTKv4Nt<(;i z_fX)RTxu_Uz;o?%l9KR$R%AEQ-fCL0?mZS(Zq^tI*O*L}Pgle+{^8AAD-(Et++$k@ z{%we#0sn98MJvy5U1}2hx<9jqI8iXo=6qWi4#TdGCQM&|+s91~*2^C|Km8pAO7yqW z_CSNK`j&{kdxZ^lS@?w7wQ2ffeAq95I+9=nspJ`T30%7|4fWKqc-!103$ zM~f={l!kT!hBzQid*j7-D3s+-?d7b@mCKc<_`PbbyyZnYBQ`ybHcy&w!uzVdL;ULa zoALZiT&gHeW)<>bl`GEa)c0&`)SG<(_NZuDzh9Bc+0dzqco~)tNqnLa;vbpQ)F{WD zs*-u#tY}eiu=!ZiWT=tQexskXSo2dw!77g_(b__hl+mWRO!;YxIwdf@fvyL2kU2Y@ zk?T#X?n-3Gl{S{z+}+R7+XIeT<5&{)IJKy;WJYqiI`Rvd7pp8>FG$w7c`>*j&ycWN z!B-BXe9mIesXTUsfnwgKn!*rsxcfBZh6IN3Um5CG^I!Pc@XF(D^JBwP&4sujo@GYX zXzU#)1y3)taEd{YVbe5jVHza`x?kdvpqVCpE8)o~BnFN?V=*8I1uh~tFw^vWKkMUk z)f@bfKbj+zT|LA;#F_K)S|44i7g!xsZ(EMOrVGLzBWNCPJU04rb4<^9Qp4_aYJ~C8 z$E&Oa2W2xz_hQFJz_$@`r*(q7qZ+qLhD!Hrc5qww-xbiMAPlbd>J<^ci`9zkdy)d$^w(x4(?b^MFU+ z?p$qmiV6`wdxwxBae#%%+;o*>iRqNQVad@-hS=g=WHgZ@l?;e54Rb|k#sk03|{Tby}TSGRB9V`}NEl_=kR{k^(_7eHA$J&hVz@ z{#wQh>mNE=H@#Kv$-QsF!bmplL##=ZPeyRiNCk`NS};gQKbV^jMh`?=KrI%G1;O zQF4a)iHp*gTPfwIFWE9>Kg4$6W}_RYXAFj5mHE;#mbq^nx9>k}^pms=Jk^?36kHaA z`JYs4-@kNU#B4~{ITo5ME>uSGAEAmGm@fJo;3mr&{~aj$*pT~zO=&Q(Cyclh(?^x$ zbMk8(3pZ9eX8IQndz3aoErbPWkLMTyUK44a(u-Fp5C!td3Fnr3Dei@4tF?Ubb53Du z!{yG?uAx6+CvdaLFfAFl9TiI2oQw%}tRj5@{^DZ0H>U}u6Pu3$e#xZ{I*kLIu;hu& z|D2!pxiv>EmVuHpGe#>17kQ&r4Y>?*<~!vM*FhUA`G=0FtIB$h_k7^j66uv!%vC9N zrs$_c?Jx?Seeq|Kr!~$uJiaroB_Pdv%iVQBU%vyK;W@KD7m?Pk|eyt%h*-Cx`nC4qYykMLs&~ZMW4(a$aywOD;0ta@*!KXVfE;(m7 zBS;6b9~}lOX$boLh330IQn1_?wB3HAUYoRiu(b%|W+fSzO}t*mg{+2H+w@e?uQGRIAtub@?L9ao3RUq8al zYC5!7@6FB-Mu5TIov^!|7?dvG6Lx2G$#G*jmXskh&+8ehef({Nqje79-e3~DYCgK7 ztWD5URKNhh{||BJm@{k>jgd2_381@Vz9Iti>nZHsr`m7Rr=P6uyKT%+o{SOjfR($mjSiP{V%oMjF=P3gz=!fu#Ex^7 z{}R}EDRIs-Fb2@^97hiJO{A6m)s(7pdfe|;nnieOcETxaQvnX0=`~AHK@8_q;RW;C zzqkG_9_1o}%rDZYsPWi-EuJJ8E7{P@D_+PI+MRq6k%;3Y?FNMdF{f@LU#k6;vUJz z(R96-{y;;uKy}>6fT&qIU;*1Jt-ky70Q5wwx~m%F@c~+7%>oF439aDWSl-)h4le6J z?mx^`t)&?l$mjMU!D}`k^UZ=^!6@y^(1 z`HNIXn`VjzYKhbPWJ}rA1QipfNIL6`kb?ZystH!!MI5T-Fz3Sk zZe`8f*am5n7}tkvQuxiQ)|=Yl5TO0f9_;f?rbB;Nq|7p?_l{@u*c5LC8LFJh6822l z1g)jk8Fi+<&&vGkDM9Wy+8b5i1GYV?qO?6}ersKF|1k|Je_XJAGVTd?(T({e#N?3# z_ezMk+p*SLI>E=``BAjqssgWFCED2}y9nN>4b_V0Liyh>f)bs@FnC5VAd{Yap6!LWuB0FwWp27|N&nB(~Pq4sxFa57gJi!akT*sqRD(R^dH^8dc zS=uRyu8Iewgd*wKAeI6^dIDg1sm6>%**kRte5;??K&@-Je4s-f|M~Wuyy?ebvv;d5 zgHZ|oPkPmk^Pw^Vxj+2503-}nM{Gb3o&l6Q-* zL8a3yWJ65#iUx;fY|`5IEscMS7S!01>_>#t^=`kXCzXT=3~|CszyZJA5Dd1=S`A$D z0kv9@ubOkteT&ew=bB`4d&3K%@=|td5zfz0% z55Pf6WAT*5^aOs=Hk7N$2fE>8u`Iy{MBe-#lKT)%a3*a2*$=r0n?GmuWR>{M_Kg4^ z;rWC?QyzzflkWQ6z=QFs7(q3M6#fc^C3XUM(aK-Nyw)iz^iGu?DoxuR8)oX3Wj`%*~qaSxY34bEtboJ>u zw8!9YkCNB)JWoixg1;;DU3Yl+(bf7C}584fYhvYWO%@8~K z=yuqtyvcbP5fwt3iZkSKeHON2l`Dlp^(BSoO9z3EM&id~ z3qW)9M?egw-%Da~7g*h&rE%`P1wx}M5>}t`kz;LG7awc0uUN$6N-N^`R&9S}=O)9o z>s%}B(eoLrr1PuqDmw&Xw+v^IC~!g_09`sIl+d8HtqP$K1<;zh1*8?Y|vE+ox$xK=EIw6-NjA|yN~4d zi4I#2VmkpO4mI?m^0Q@}L{HF@cea25M|~mMKE!ml$a@2F#Gbu)r3bj7eaJQ?y!7XA zWZc{5_BAUxtIW_7@PPS^l}CBXABqx*Hz(*D`=I{Wl*+#i(md~7!hf$`tbSqgnuAs_ z)`!Cf=&_|vgp7@P?(a?VcB`bT*DxWm6V(Q)->F=}fmTRHp#>^}@4^N_F-qqN_WeUH zh;D=`uii+_2igQ*u#Nr7sb9j(HefZW#aFEl+OA&e{${^ctDD{7kLN^At^rb4M&;tN zxxP7lcs3>h#>tdQg1g)vSN!qzwk(yPCHlz-5vxMl+3ifC?c?rSwD2V5c-88Kkt_jxza}}F*{}Hzpj|dMtw zrF;PPe2L0m?K;B~kHz$vILlj4q3yVzb6UdH;SjAGLJU(qBCX^y614Z7q+GYFjK{3^ zyLClLkzqss*c7;Z;IVH!vPV~c^Z^jJ`3|YWy)aqQoyDycDIXx=lhZ6|+`#eISyAx> zKgnz*UMm*Q=t<(2&w7zcB}Y*bcVs^4mzonsk=;1h}m$_FNGAEn& zm-_M+MIAdb^pid5<#8!Je=tn`XDzn+e0r}*^|P`{`K9{t|3}wZM#ZtN+d8;QaMuv5 z@!$>tf(LKhEjR>s3&Dd2*C4??xVyUrr*U`ZR`xo3?RED(_fL;Ok3n}=)mLA=GN1YS z5pJ;E0)q*hpL&+kMFZ_qvo5%I)6*k_Ac1z_CRwSoDAR+<7+k@$$&jsjc|3}(v8RW8 zXfu6f4IorS;%eiP51Rgr`WfV4K_lLGckl%oe1FDE3@WgR<92rs4#nkA%dY3etxmhS zCWLPSSi%}XhI7rJvAG&SzAsNwg9g3LIPeF{mf{N!ih?Qa8EkYYX~@p8Xy}5*!`flN zT&{RaKnn9(8M%mVw`iKd?f!@Huu58U4`VTiCq^lF%$xlh&kt(#BMJW=Yxn!2-<^&r zuVNl&k(yN!Tkw1{W0H6QZ`m?QvuD!(Wax!|I?2@`L^bRbjIa#z+)ug6Sw?;;Ay%5b z+dCF$6g{+KAtIizd{6%t?;nN){Aropu2&82r6~tOS2SwiNq9?T7V4 zC;HTM13~v;Wz0tk#0@Y-yuk2-VXq}3-dOGvX%DJA!`fSb=6e9N^HWud@*lnkd3TBy zh)fAEElx zGYJZY2Q-kwC$kUG3a>^jEZyD>WH&CN!XVgG-R$!H5s*7Q-7_@XZdes7vyHVCi7=UU zssMf|xBHCepfRa%l!@r{9D3Z_yiLoJRytg!M>6jY^D+Qio+)5a&Lo}GN2}y9ln~BA zwDx(HqWQ?C?0PobqDAm~j@%a(`49nL^JnvgINV2dLAXe!c-<9bjzD^g;k~H|jC@oK zlMG1BsI+yi+2ceVyx??OXTW#mc*`m76kN4pm7Ob1FZ~z&HhQ}yh?y~%Cs0_Kz{OhT zb;+!{W3q3Gjs>AU-kE0~JVP{nV%I zivw5xKvp+UzXd9K2Gm*?a$bGUT6}=NI^@j~*`&dCp@~+cZ@4~=kSSoX6g92V_OAi0ahfcNgP3y&r17Om&hcMfYL-5u2yy_dE{Z|M3G|5_sx#M}k z*B;eEbBerJ`wMyS^cd(7dPTQxabKeua{-ecrx2nOI=o;{l-U%3exs0Wmr+{%@;qwJ z>rd6@s6i);b0!^)!adwu7Fgn;p<>jm59tAK-{FmXLg5<@DiF(5J&h|{!d?FS9Yi6- zVP>L{JJ-D1rI%!D(j>;k{1PG}NUQjm&T)ryrlst!+W36Hz1{V4&mAc4rpK{u+~fF9 zdRvDN`JFR(1ycq~j?VFP#P+LA<08CfD`rJf4vd)Bpk#cf3YeKm(S;Jn1Zo4cf3Ft+ z@qLVeanctYJQUwupIvYP+Ijc;?=k1urcq|MyDZx~BY=m8$dTx(R*LA4MDAPEFg zh(P5hcjNc?xh#`DKb}8$pG_>q^v}LlrMScZ#yn*C9R4b!-BCO!w6`rTJIkjuXrS#| z|3qm1G&yC%r#(jss=s1!7{&N`=wyz6s2(}Q^N?ZSE>yLyRIcrp=un&98vx1pwDpNs ze^J%@`oP*3#R2+$oX|Lu4+dC148Z6?L#xdSo#~)Ikl=EMW8aE6g*xuMc zfU7QeiJ68bVJ`eCqlB^m_NIlW+Qc8SM^w4TQCI5^Db;cg=7#NBWbvWL1U32^TG`b;BK>V&HeHQ(7KlO)_*_F@x_Pj=fasHP!&m4&29e}I91elQib@c%O*^STEjaQ@t zMz3h9I+2^ts6&15d%;x({n)=1PCzIug0229;ok=E?Y~nwHY(T?aHMp5qGRV_6SFOLcCaTA}pMgP$;f8})tW%aR{as(-hN?S!HkD|wx7s{~ zEMpk+jjXh~)a5*$s=?mRasfzYu61I82AHaOVdqDyH5!;1R-Q?tyIPF!s?rc?U?`I~ zP5b&wp1dv>h}WXa$dZB>?=K~Ea|Ra(im13%u4Lsv;l(1R1Nu ztv>-;5{vtd4;~x6=bxP0y8DOGL=%39LTHU1WsKk`S(t?zkNovEC$#pX)QWMsw4+wE zNQhQwBD);Nv{3ZJ{&_34`-=JJLl3=R8=c4fmmv24_os*;PJ0mTKOa7bwh(l#33!%LgN@`Wmm~{D;0AzK_rD{Yd0w?=Xc)BC?Eb z^2Z54rEa20aSP{VFk0lpRkFY3=qnqnO^jDP6JYmqNN2G?bs#YEQ}yzfo;OJaroG+$ z7bpxlFlzq1g9fbq8_33@mH-?UIZpV~6)%rae$a>CXV=wi+@_$Fern&gj-kt19Z8)v z%_gRaU(2xSRuhz1(`>7o3xY~P0U;Buk9)0{+@9@|csJ~+`hdS7^zNDN3H5KHYSP+cKx9F~}x=dY8ySjOTq(moUgaGTf$) zFoNB8(59Zt*`a%R687D11lM67@HPJIgDL!iB}^`vsUdl1SNdT*?Wm#Q(xw=dOS&(S zY04VCT6N#P8JJMEv4s0+(6kcHR6R~X<8@+cZs`fHH8QgNo}M~UL1oIL*K*mT3pf>{ z_6P0!#o^u|yo8E5Yqofkn&=sb_9TA|KdDL%XG5JKeGFsNKya2xX;HrJ0-5~ynJq32 z(*$yN{+y=oOWfJa3>Pt8Zcno=eH_QZH=G1BAl|@DiShU>0F=$8~MJ+=mBwtO9p4!YX5}_YuS$krqA0BA*;tuD_=}ynARUBZ!J6%w&)z-hWA{%}+)s9u{xfvBchzlxR~_mt-eS z%wuaJM~&FKrOZ%tn9-cFwhA8DyHFBq7_8HdGZ>McBcOs*E*yGH;2VnWM?NF(mXy;e zCx^Z3)55#IgB%Q^N;LiyUeroGk)ST;7t+M!c2ehz06Lna(Uvg+TN9bO=N7@ z!cIpN0Ik*8hS!9Mfyp8&1Zvvs)bZV^d80_DCjp5`IXV0;E9+Ko=#N?8$4`AeQp$n-lAa0}JvOH848fI`t#z z*|*IrrlbUGmaDPq4#!Kg7h>X9sTMZx!03oWwXj3gn29I=)aKy37XE*Y-}ps>yH@c? zrE``49q_hpI6?F8a$K!#`aQe#Cj{d8D+FpNBs2w(2fgYigY9=A5IQ7)f%x;r@sr#C z%Rt-$41~|?GAID05G2OS(DZrDH%aqL7Pw3=IRJvu()%ZL)YB*iLN--^MF0i`p@rYv z;I+d4BfJK#zZw9U60Z#|uP~u%Nx-*z`kIL(KqGZ{9Eq{1cp)2Nlc)&Y;nXq{QVYa zWM|zR^2{UDXBoogD=WT|g`<1Q#Ja!KZ;cNS*dZ1(eUjhBgaR(cPPg{rcwTpk=x$3% z%esAwtH3EQHCkcuE$RT=t1It)DwuvuKg5;R_7-==W|Y|#Dd%ZHLKK?|vv!p^D(aIwadiDJEr2d{gO0&n&v7{5-dpdzua>F{wo3b zqj1@T0aArln+vpmL=fZefkoX61+;YMfO{B732Om9W|@APb#?9w1g(0eu^yNQe^LL>bMoc2aW6Wf5_D^&54Em2`6Sql8h7v&G0)JPMu-ZEsF|vE;KH&QKvT>Y6lg~S9X877sv3rdOC}asy5!87VD~d zu;3?3AjvNifNMJa^`npl)Mjaqs^cn!^S<|Ic3%6d5I|(@Iy5Gx)Y?%Ot%MzyWn7Ml z82M4OH(6%BfsNef78L32+m$|X+IOSLxwx&_0j5C2RB!4)CnZ97dXNxNj>ThOkh9^z{bXg`ekXk- zTila$NkK-2*X#1ka=yNNe$NMgldbfLa_TxgM>7O1ti572aHFIJuGni2e=0bWywQh4 z*D<;aJKfUQ43k|K_cra+g#Gf6em^cw1#PJwzkQ?r@V>hb&W{<4gn<6_C?W^&$kcx@ zI%>5q%OYxBjzIxjKpGFj^Ey;ste{%7;KhPQF_bTU8g5Qd-CE0{PxVc;5|9-JA>6+g zRs5}hV@q2<{q?DVVC7CQ&<03@eYam}2AZko;wAY5lx+Yk0~yQ@M3 zT9SneZdC`L2|>4aX;W83$cg$h=$yY~;Ey)Cm(x0rn>Soh4qe@pwnIgsKg(iK@ZnHY zzcRS_A1icyV&SE#1^E+7L0GYqTPYD(QHj^xUzA~$ej4P;sx%@a%c$|uQ6YN;z`g#M zLeVleKKbFKDfQ57$aR#|+;xf@F4FDf;`G~cdV|wWx@W=Taq>+!*x)X@jR}8 zc?4RqCdN+{`I{fJvM_ml`>_fh!Hf#@5wWzvG8xLF%WPdn2#QG5Y@KK89J2By(dNi! za#!jPYwH{QE7_dwPSG&$idY`8uu&>(8QYVG>S!LWV0V9`XOSH%M!~QB#`ROveii#% zMY+sMPVpMU8-#vFmJVgIyF?WI(CkFsUIrsk@5W+q*VNLPE&UbvK6;c4i*=ZlGRI#D zDHtd|5rJe(-hL%PstW8`&n-AdzeamE6b$IgUjPHUjL=uYhqlb!@ zUcNL#W21V}VG8v<%d3NMuY8qwf$@6)TgBqOxKW`q{;&EGV*q4x1u0k(aI4xX5^yUF zL~!#MTt9MP8|HqDoDD-P!qA%fg*XPCT_h`_ytTJ?n2OW8zpyn{vLJUF7}}U zE5ePP&xs2|y{rL+m$$Q8-qZ%{^GpL1uuqq*M2*i%SlR02USTVa^`>Ax0~h|f?;)4V z7Lzc$)6)xEr!gm35w8dLjGUa4ia@Kr+p|!lIYfpr2%FZ)ut#Q{>?gnro__0kP@!&L z(uP_+k?Zo^8*feLzw{VPvNWcvS#t`4pY=_KJwxhrf}JY$M>%{DL}_%s3TS^tTQ|n< zD-*)xYx#aiaCQX6Ltq_6$yqIHh`Zw%W}(EErTphYMUD8w_kv1Yv`Sq+TE0cs^FU$e z#p`Ct=M$D($&r-C9PY*l(jl0Ts*={TD6*zlbM}Qtb^W!_hJ3y2X(V552%`S{ zUPS+1BwGZJ8i&J2+91r}6_eAw0-4-zFKoU|tKF%L$gBr4_(j1PNB9yH_m|5AJDE{F(%}BW$WwD}^D-{Y)*LcO5AfkI$M7pY{gzwXF z2GUlrn}Kb=px;{0hiMS|F?PCrB8Rqsy$ZF*><9+`gc;%&Bz#pKRgUo1dhV#0=oG^d z-nCh&*h?}P%Yj&t)u1ZfD;-JaY+LOMHX1)yZ&wtW!|888Y)iV{=uMB7 zh(Uw{6$md`(Zh~8*wn=MUEfGO5$e9#Ey!Eg*9XPx)v3{uwCq%%aHl&x**D?Wh>EG| zlj`lS!7Gim_`~T_X*P`9V~Fe}V?7e^lFbX5tm_~h5d(d%CgB$^V0wi$O#DnRBx)D5 zuR#XNe0jYe_+Z@YBT96C&!Cyf<3NS|R*`p1h(&jjXcpM!Jg*TczRTDILevPuodwcm zBH+kLx>Vn8!YXGKR83cYXnnbOkf>ynFjftbb`n&b4|%<9E0Bgtj6uWy4v(G|YJn+c zCLEs9NTKz0K=Vi6-$MSjDZ32lLp?{6;HXO{$t;!#SBB5OiL#cla8q=&Jt;!v%U-9w z16;6w>PN;|$G3?HkmC}X+-AQua4)9wOAgG-5-~^%!OPAI*Fw6rM>{>%;?U{Le(ESz zwg??kYMOLF@5R_jL;OPC27mgTB!*R%X(qkks#*j0OUUQQze#Fmwjp%{bB*4AUC=(@ z99{^syq@M5`4alWXw{LXdquOnil6&th42uRV+=X=mWvXS4e1S3JDl}c@fZxMmt-Le z?s`iTqaVldnC=#$-7svwBzH^;anN;jozaSn)+)@7Oi`)#%B%h=Cz1yI3a^QwE5h4+ zG3=br@=9yGY9K-)>Qq1HSXr>I_kG;ON2Qm7gW=TZ5Rop5Y(?Fc;=m<0!JN>M$Z^>m9f$Yh|v=)=m0rR{@WtZ{pFyKZf$gmlpUTEu{LzqB>UMvSe3#pJHK zeN-{qNO|)Sq<>4p6zj%9!`Lk5DBZ=OZC1Gp+bi)0X@;3O`O=7?yF|rfuDjAWY{xs? zKqv%-6ezRd))5i+A-uAzxy`4D(TJPL&x%nuueFue4(yZ-#{ERx&fpBcPE^Z!@Cltz zSm&FT>CSchl6HIDtE>rTCR1dxRoQz3#jBUOv2n$^&(wTsM2Wbvi9}BK-Y-4&lfk!? z#0C#}gw0jlI$m>0-B}lo6=)MP+yIQa@Z(@ay0+*CGmIgmJl}V;$YPkR`oHpm2c~SR zoXzFJO|G^fNMq`@wzppKO8sxK5W|)Z5>u^=Zk`zuSl@?4H4m-{iJlE$Q_p+9+WR0; zgp&w}dS?Hiw~V*qz06Chu%;XN7&x zCBFP*xRe6E-LuMmuHWH;H-~*7k8F8W%IDUVT1_mf6-&0=?0|k=g_6DS(!5s68`&Pj z-A$dzw~q;Ol{~F>lA?8ix$6i?TCZPK2KFoXp`=>>@sFG!ozG}?jwpuP5&5VV(PYk8 zv9TzAIeGXjwq0x2-O@X2mzMlLzt}j#0+3t|({%9;vhed~e4(dHzNJ3;IAZa+vgZmr zePj}Wcy*&D*mEbgPhb$RDdFx}3+D|5KuG!Tt6V-|=Cz#l(tl_#eCYpxAGB#RFYmMJ zBbCh}d8`8a6koKn4xC}D+FIO14Komy4oC>ESAY;%aeWKRUjW+UM`REBm7u{aN{qEv zOT#)}U>uI2P=O+jf?jg=PTvkGQ8*z_2iHMxW0usKkZT`lztq=-+Dd%6JyLY;Q=7OL ztMUYtA*8w`{D2KuDobk&P3MHC_i>0gP+X9uR8Y$IwKmq$~nW=_DIQ0Ao%{=(DE2p2OmVPA~_`lKC z2tGHs!>>Mj#D_ZFJaHS2``UhD&IHF}uLCxl(ea~; zU|+4lHW+c`0{h(Jw0mYE4>fZlt|j-KzG%L}KhiU40A>!9F*><+S4q#y=cf8$k=NW% zeSXGV=V*znA#BSHRo>UWY{+?5d{6=if4(RE!`yduF8ckT>K9*E5N_-3$n{(F5Qtdj zMn!W!eY7_)%V9i7>QDYo2NI5ay?!!+vx1qkYZ_1m>xJZjP4f2R!%F-I)K_d>7v3yd z{)|x915L)PHsuW-%H@7AbbmQ_|GU!jR@RAL*i9qYop5905ly*S{w zeI6WVJiR|PNL+K8{mp;6&*wgm3?w;|@Gt4gqR3qLV`?M}DHNx+5qwY(F# z*=xTa$I%ZjD4boggq~L){Be4p+X0$+~353`w+0Dg{Rd=v3&k zK#52c1005L}YsAgAb1liYFQGH3J$gwxt69gJZhg%sR}w3jlv+q>1DhS4TG z=N<%*4T%O>= z>-)GPa9KAS>zZwSrE^;k{s<1An7p1?sqv$(@R}P-KZ9C^7R=xSn>@a=+=$|O>*034 zx29Zg)n@MuJa71x?218PA(IcfyK~&ATsC16D1_@Bp)!d3Qgw_;%#hB4a4pfPe6mxq zOkoOQTCQ$oVncVezMLoUS9Dcz*Ba@?5Enf1!w4qa#PB#(4g24RLM(D_N`y~f#PDs> zx_btJfbrCob9)mIR*hFy8Na7WH|ZF*sxPvF8yeVW!4SNH&ZKE}Qxx7l51Tuuk3h78 zbEjaOIf`M0G2d={!sTP_czod$dG~T zQP+jAJc>1c*#y_RXkM*Ic%28EaX{yPWl>xO@#`VdeEtoB3JQlj-2AX`558(P|8fKW zVImC9U_b$-+ME)x?H<3ntHO)B)Be)|b~!HL;5ZJGX6(c{jR1i`#~Z(DizarL44Y&Z zCWlyb>Pf|oA$shI0Eq~Y?%~y$!ZD*s-Znu<*c$%%A7+M6(_yGom zsJr;Dp7c-+UJv68=q&V~=k_@o9*4M=T*crHe$5uGFt>Z_RX1Em8gPR%a2zJe+~Ro` zz#^%Ljd*gGhjH0a7l(`7VOt3c$Lo(E**7H=76aL^OJcS%oK#JVd?|ihtsj~9!CK4r zgkoSyY3LLu6PY zUR6t_jJ@yFeXm*==;gV|>~N%M=V(9o==k?+nnc;np6~1J%~a^fGkJe$#8LW59T18` z6-8q!a=C`Ii=P<`1#NX*79xr<^;T=ez|X4De5_`2 zF!L?^gm_+{_Y-(5CvB^+e1cmciF6w4bAolmdn+x0>m%Iz9NIC_+thH?jDVE4%HhsK z#dF*Hd2r1*VX^F~^RH)eTWOU+11{rR;eTrZ)H2};$I7|959gkam(X|XcVQK;dA^o+ zF0Pr|1VIu=!(sQrqTw7?hXNs&*N80=%Ie7tPh72~*=7~Z&6OWSJh43FT`jjXyV(Qx zOHo0z^9>}W3H=_%@U7{NZzN9>3%HebBjc-(<(rv05cMCFb-~BcT|QlI9adibIXM+N zzej6)ly~Q0*WzsO<~@7ihv<#csQPZQUvB%f;lO3$A6Cp2COl>%V#F{r#J(6kt?!D7 z`=wD$&{L(0+<)yc`{2<2r3a&Bvfk^hTO2t4$pT51G^)tf~JEgxxL$yeS zkvm~FZ-*nP*m;2zPU+52G@B!uFLfbvq9@YO19MCFVQt~CXC?EuazXi(Z{ElW1BxLW zFMxA4>^8(D1Z4q_^>nY;{#elz6M{!G*y8MPoLCem30@}apxdq&TkoGB$$~JT4Aq}}=qhy3_Mr;c;3$yNVp2wo zxH$^sO&j;gbIbN7@E6HkY_*UUIIMziN%-nYtI8|8s0Q0$ z$aN#`3WH!$$} zz>H8yj#c-2?aRo5baz)Tp1`L}rpORJf0>Xd-DIj$@_*DF3u}>oyH@Db=wt__#78i( z$zs4@0(2}LMj|$9xMWlO*f?J>R{a8gl_te0rQ~A*!fro&zJ`^)*^CGmo5_s`7uKaF zXeJbde}IUrLCJa(z=iQ3@|1sU@IE}DK0^?GteFTt+87#e51CxMArE_dmgj7zGw9U+ zCD^NO!0zEP8T6g!Os9y{ZL8nowDW?JhN@rRv$PEJ?nw<~J#P?Rm@mT+0I3;1*5~8E z=*egalS~Ycq_b+ejx1pYm4Da?X!AOJWtAzEAUwe7&P@)D0}pDzLkc%S8XV&D4M^ z=^A|msG!Qd3TJg33fv(3;eO!+hQoya`>+$^qO1tsQw{TwE@>K`hsVVE;E*m)ipQf2ro zrp=s5OLk-Syf>XVa}aBAG$=W&5WFZc@SdYOV%Vi;Np_TKsAzfY>e^VH-XvLB>orh~ z57)Ao7a7UvpYu&d)viaet5eS7x{FY$@jiug&h6T4 z2dQQm4>T2G_TjyplBxQS!o9oia^SAAeFP~3(yTvqQ%R=9nJN_H*`g+Dd_I(E+c>rR zo9bxCEgbo?q`l_4@jzkm0>MZh>1WIx- zi#JaDqei@W^Ys`JM5|~PW~<-w!tCXw`b+Z-3W4Xz#(w)bzSMg^J3kIrW+A+8 z3!T@ANnCgm`e(mT1+_ACjP*8gemuL}e8gK8wA&%wofFFH>~{=1rE#;!4DrjEU^MPx zKT1Z#OSaVyar<2)FC1Yt8vCvF!W1=?AXn^aPU53t>-f$_kVaUKGIoVmPpb0Q_OEuH zsRwYxUGQunf{HoWt}Xy1qw6ZH0k zM)gJVmfS%M73)#f2EO4$ZTh8X1a_!MKW_PZOSzBQeVZWYrrkas`B5}>>%uD5@@x}+O3Cp&sqDT0l9t+&6mDdgm#TjzCxKdMd3$H3?EL*L=H{vVRJ zX*0NEe(*D)M>MzS$=N&D-vi$%Si7|?Yc(pP5o!7Hp>c57p08qXeucl@%|r`>=Y+1% zE`l3Q1z!rhAW?VY8;U7O0R-NNcb1)}Zw)tVmrcY+T9&ITf=DeDE>P}@9ik0eiU4gj z<|z44(5uU~DBELnk7g)e(l}Qvg3QJmURbF@N{*3Ngx^0;5tqt)LC1e{lR}sZNpqm9 zO58UFOA46ohk@@hX=A9tynhV{+cCD2=D^Z*l z9!pgFx$QEv!DP22DE1wtXdl*IP)Jh+@vUYxOGihbB~4wE9l2zcb+xA6ziz?mCm&$8 zw;B)=-Hc z$ffI9r5jKM2f5P_QQ23?kn};3DOh(Npey*H^@OrY^%_x>T^O#?nJv9{N2HseO(!no z!O~Q4$LLoN9L(f)T;LT2#nZXHBv`xQ+vt(m><1%#8L>VeLBbYNR)B@MUJ%XHH^a8! zqK;3IK3%8{hV5;kFyvB%twpKSTz`J`Jq~5t+xUw(0bT7Q8vXm61SAQ+f?O-qh5BE` zP-UB#?!?%x%C8N1pGc#}!f?`YH^Q&hc&ObJFw zzsTv|oXUyN0>RH~#Id4MjwD1R!Bq*Xgg$aH8`ew)&AP&haM*P&Cx?vn$mC9s9CO}U zO7x?32Xu^1)&ct3+7teH<|f{TMd+a=$wvO^7YSk(8IqOe@h zoWQoEgA&g`Yd4RXBoXCb{Fb{KV99Y3J)sa3tCF9~DJ%06>d`yB9fQ&hXwXFXJT&6| zQWl=tXQg+oB7;%DSqn8tp(Uz!dA<=9tC!U@{7#)k5hqR)YmNdtj56SUcDvU-bSWV|f=sk^)=BDj&^-+=uDv9T=InGCvrQgy>^-v~$H5 zycN9ySd%e{0?Nk?liNOiD3lqH6Hd{<(3!UI4(an>B*V!wA$qD|gi$Y%`+Pf};M23d z`VaZW$5hzp=QasiU`fUIoL2SkR0FWh2dj&QQ~()MYwC9iki zX2qu31sx!E4}5`iksBq~!XzZ|!?(*~!26*Vjj()wZ_g$fRUi2|FgqHyvhX7V{IIIx zP&gh6)z^yhkVI<6FD@1XtQI|{W=*WMuCTInAGn>SXDju4UePe($U0LEEwi%U)gpb5 zz!4mxHx^82a^Rbuu_=+HrJ9Cio!R37ZTfp4`{q z9h!h+X5cCNJ-zM1<=yAQ-SCMw0SI0Kod>}vr`(XpTC+aIPSV$Ad=R^ zkyxi=z9gi~M^H1F&La5IS%tOjOj7g{?6{cNkduSE^&|rlZ3hWqcnt~EgZbip6`#c~ z%&mM2{i?#O3*-fpZ@R-_Euj@h@3mqof48s!A|k6)*R_*GoXM zn?<7BG2ppJR{njWO8S=Y^SftiJBP(`5bRK@kGK`CT&Hv})d1~fj2O1u{a#Qa0~~>_ z4?SL-8I>GyJuuX(dmY@{=#uevRT3%KpgE(p zXXnq(RN;7^tnd_|ADhX?UY5dsda(d@O-G6Aw~bdD;p$fDguA6Lm>vfh&l||Hw=%)! zrUDC{#4EkrX#Jx@G0!g|y4-1xNC6+yJ~XBVXOvi#iK#uj$YR`gu{M7R#qKh_dTFsx zlJr&u33L=>!G=I+#$5is&4G~&qY;hcByk$(UZsV7oc<@3yMoN~@rXAZ_{^3D^lvZn z=o}}$Kn{7)B+ZM#-2na~C>i3j?tnV2yin2jTD$Fqv2G_bmKx7yEaTK)i8>&;MW#5> z7ITf|ciU=nLUbq>c1a=?hI6}T+H10yJ;LyeN=SYIYIcV=9)Sz zp0Uac0^n1@8BtDpIP_%<1!P*8v0)6SI3m&#aYwP9%DOX|^}3!z<s4bUKS2X8;b^&aT&Ge7C!FtKwZJ9}>mS8>7(nCXc z%_~%IG3e;5qwsp-c0*LN)TRdD;^bB|^V!sfKyYVNfa0ly&2xb-pn~Fo{&TdUe;+MS z*_<4`>hZUdm<#k_fp4cyZyD6FUU}r7r8^1RZ`AjBDR@_OSlOh1x&83>U`!mguJge{8qm<6awkcmxs)`GazkMk>5q#mL~qfW+vGpZ4WDuY zcgWbh7ur9hct9z{-?J33x4qF?SKcp=jDa|OU&EG>KGmE$|6LvfX}}7W%6K1sJj$tZ zXan{-H=gB7tqo`RxnRPUYKkS}sp>M2zAX#P6MzQnQsd1&$KB0ImY%4khIO3N2L}@+=82L2{#elOlzjK#a&vdt zU{$|bZyZ}~zGr9i?Y@Fb&iSG4tl7KLSiGy zHQRxJy`xeJOlms=}Kz}uXpg@gK5q;Ura=rNR3b)n{9h#V_4&)9wF_vZ^XNjegf(HWvt-1GO#mM(qtS4<&ef)s?^Dg>P8mmopPrFxte7{_G?cCs`lhs1v#81F>O|dfUbj_e-jY zh$CEQRiWvZzSWPBB1WiCwQ{ie&iB)RfO{kFV6!QoRTZF zhO6aHi!&D=t>j&3uRSluSs>gS2#GUzy5gH^JH_lQrFuo5%-C5k_Jpaof|bpuc4de7 z%W}p@8=qg>s((LLy>?q?e*b(Y`+#+T=E3_qx~<#ek;#kzC(gk*m-Ooe+yzcUXX!JF3Mv*7(Fr65VmM23i?&gND}!cwf}2G&oKtv zCp1u-@Ya^+-y6@rsgD1h4e|fU=;trn{0}i_`+pv4|Ih4pvP z^nX_ujJnoTN8b#td_oj>cx+j8Xi##OR9jn+DOt6yv*6^jE7tw0r%sT$>nT{X#AFIT z3cmea>;kU0i^+@+Fj;I|T{_A?(L3_k#c7pUYRs=srB^%Q_Om`IYhl_Bb9N=Hd&#(D zbIMp{i>oej{;XpgxnP=?ZR(GdSBynu7VXOUeU5=C*3ky+II!FZYs^IJYKX;`Zk+kWD@B7QxWSW^e ziNZZ&58-JI+F=4ac!?br4TKe+<|H%2#J&V(NzGPgFOQ#F2<;{oiKcZrQv{Ig_4{im zvxbu1d$q_@;Wd}HW_9F9H zYvV4zmxl{j_7z~TFMX5x@|&kXE?A&mOy5~&{4P>Kxu^4;Z=A$Fs0D({;@jImvC+&$ zt-WFSS&<{~$7CILg2ks&ZJcuHrL&YvuNyu0>hqRSg|9N-cvPtE;QW~tZ8F?FAYH>> z;Kt^b&b&r0VXF^WGo)?HURs{kI&?8?BvDYzx{RO(UZeCI86QAc`d~@biSZ!1(Or(U zlU-Z!>qnp)q`|StzJ3Y{1{!v@RrvzvTd&O&e0yRW94brg6tDUx$+(jAw-q0cQ{$7Y zT!x%E8up7#x?;`QGDqVZi>Odg(T0I^&!#Zmqdrg}_|xp16DJw%X9YfdyM)$k(G2&Q z99B-|n^(DLD5?fsM$#^vX6{@4-hyHrf}*wbU3sMG+0xVNwN4^6dbN`?AdC-I(-c#0 zG*VUBi}dR>ec3M`e{i`{b+J2g*!G)>_6oYCweoY;V>gXuO`6U_)vQbq_mb9$}AT&lif$!QfSs3qdLmGN7!F;2<79hqV;k}zZ|EEh8a zi_=PU7@C_ti#xRP!Wr(7jW+C0UnG`{gH(Pka!AB1v@0I%Mc_L|4yBWn@PCZm%e0qI zAiz;0u;=Zg8B_fUbm^Av zNmH-zBc9tKLc(I#w=4_O#G;NFngex(?**B%Iw>+IiS)FdwDNU>8;s6uyZgK4(w|!$ zT_ejJ{43i(ew>>d_?BIXb8EIgGa6%!nxOtUxl#jiY^W!SpYT(lE&O=CbxGdn$t!Y= zsL|C<6}@!I`LfhLdDyL>iZ)!Vh|2M$Ackhvv%&Wfy7_d8)OR4uL_b}e3pD>_!4pra zO+!f={#y2y;7y{#^-!{Cl^(K$4LHI!xDWLiz8DQ9|GQ8SOw>Zf2Tt~I3EPGkx9oO) zPJMokMecJN@?c6aGpHIvBx5d6dVU@T7Y*+i)**mq?`+D!_O>!MYYPyNkr~P zy!?FW&%Jw*70SzTIyzJ3(7H72+2Z=534WfRT3E$}PxD^aLjp0XW~d(sma;Bd!$(T) zn8IOu6j2IIu)M8Vk`IFT2AVhA`2<5`j1P8in~4HbBn%qJX6ZW40VHvY1-yc1=pNd` z18URAEk3^jx&+C#8jas^ND?*l24bz~a3?RIY|ppp7kYVG7KRPoY2E|jCf}IT<^c_K zV45!iNHOZeubfiUEd9QX@0 z)$1n+G=|1L%vHqj1p;4@_d8JV9Oy&EWlSNES4Jj46e=c+MGYXr_*B44xz?X|)Pz|sIRASQ z@cvueT11s_Xkl=}svD0TBU# zp`{z7OM2*`ySqa|T0}}3L=X^$?gojW5$R^6yZdatf6w#Y@9#S2{KMv&Ypy+O@4eRA z-}nSI9?ZwQ(J-gD3Kt+M{ePaR0&zdbR{>W|%@thBjDK>~eeW^hI zc)Q`+D|wilPt>J;-t0(A*Tq62bGn`Dlgl)vw&U0r2u(~f@op-8rzH3;29{h*C^2am< zQ2hhuTL7VJZYaGIYG_>t&SANd2W0!R;TN@rCv_t@A;_EV9JXre!<&{$*Z;u+Xph*f z|IheW+SCEgJ4G-&d7tp_ol(nKg|@s1xBYzyAj2$eS({1!%xR846R|v>=f6Mu=bx5* zyWaMDFJM9J%YLZO`R_sr%0a57NU1Q|M;{oF8M9>-uPA}RpYR9h;g{-cb{?%dj#UAW zr<-IJz{Y}+($zJr_~2ksYpk{ui-OM+DGb4RSDO}OoDBo%82OK*J~oDCWQ5(zB(8`( z6o)&tjU!!?;Ztl3?r42`S+;c8KHa(6jas%;l%rkkkwC*P?gXX}ix`9qe-_5TOq43s zRyq1XNnVDloWZ=3Ze;)#VPkue#>+~ilEnp1D4~NcjA~#a`$cpkE4Mr!>myg^I(Oc3 zrvTkvFqCf2%7*4G6Xii2j9<9h?4su(+H$0Wj`p*?XKGkRnpk!7PHOZHXZ7y7{_eqW z=D=TyxW`d}oOz3m%-k=Z9J$o&^4M=921H1UTYtiS8fV$y%77lY=u1|f1*_CP9!z`1 z-^7kvo-T}a%Y_`y}UbC336f3dc{*T7}nFk+wG! ztWMP@uun-#?&x~vRN_dkLL37_tutCzXLX|!$1V%V9Cd)?iU#}mSZ1b98N1nQGgXLG z{(b$jr>r6-{nagOWrT{ZI_2udPPy<$enkZ_8jiEYISNYubDpW5AE#u-8voJ)OVgwZ`-uVIWAZ;z#z3A}_Td-e~z z<0tih*&W~G0&sIZh=QL71;4@36Lq169LvlfQvSwX?px}e&J#lJH%B;rYF+!6*@57M zi?lU^205=s@OyYAjV6C%(g?bztw&Lg)+P_&p4!YLe0k)2OrNv+1Y^|e8!~RUA+4%a zm|@UY$@e)}q4$}qjRTC|V^paOXarvuo@PC9d}(WPcCyIK{_vH5Q`lyG<_UPne*Z#cB)kc#2MS3}(`*7}qvZul3 z2SneGZ}>3!KePiY{He#0Hk9N zMQ(sg7rw~JN35y9B+SiV&-h(1WlUboHtBGm5f>5gcJE2op?Tf*8UNnFa*o`Nr(W1Z5y)DRaH<|KZ@7u zkg*DHj2dgtK*#YJBx)1OM9bUEA2mPYCW$RkEZ=8o%aL1W zUQlH!%a9pGm_6>vjuBbv;_K}vUsb#RF6SsLB*CvE*29J%ZlC7l6Pb5|-0UgMK8&v& z{=l+tADvTiZS}8Lh^^5d7KztB77CLqO4GN2q1W%~`AoH=o+C*b_xE$WOGx+x@JMP9 z8B|BYB56Ej5LO3%$*b^&L`Hr>v};`oeak}9G~d> zJBPYWyFnK6-F`VNVuKHKWHC>9Ya|*NLS~+_@|T)p_-D}ybt7mP3E-k$GdvY*$9(Mw zpzBo|Fj7_LJ4`$vK0fnVV~;P>j%18M0Hm)3h;a-AK}-JKO{{J}G*!fiyfSrsK7-N+ zkXdG`_t`S}p9|xteRF`eFq?65ywx@Zjd>SxIp~qTn=Xu#KDmEfL3ZN(Y8^XaP9A3# z+Gre57{cEElm9g-5s|X}t@(NWIM~@BBTt2joKki7G7WofyqVxhczttPWcQTUPJJnU5M80h`~!_Yt=b`3Vj6nbuGpot)3 z-`#+Zz-EAab!CY7NuzlJO8&r)E3-KuHj1Ql{ln)h_?SYbM@Y{*MgV0@aR@Ti!W`jZuzP&~`;twvwu0jOorNfbWv zvSwBFHou|-t-pDAxoUa2y0a_N*f!{BubSx(`{Uu{2j#)@i*I(*ShMHv8T3l#9&OfA z82oKqz5DPC)9-^iL!Wsr5&MIs{_{?CoMz+)c_E|_b^I^zOc=c*UI46RI>3>$Rls;yHAS=X9}F z5wYZ8yb=jsX5>mV_ho#sJNvzWItmX%%k+oPLHSUCu@k}80E67l$xHkym)w1DH9)2b zbeOk1c7qKhdq`wBMT|Htht%g>My$5B%)Ah6S*Ck`up5Hg#pNbN;eYGr80GL~GYzai zNN`rrM(6ac z0>0y`CC7*K|3(i6A&)6Yk63@q9oX*9lJKZ~`^mqmUYg5pO{%&_Fu&&By>#^;Kq)BHqPy>y-@A{^Oe`{bKkYF>=0q*4daFS z3hbCCnf#oSSX=7qN_*U$-pm)laWC+gD0p~(VJN0z5l)@&!e|+OSnuls9fxFfG&dPO zROHYC-BLEGwk4FshfVy+2;R^%eq5X!w?QlzZn)*s(_?`Ke<8A+E5Yt!Q8kW$Ui#g- z160uARf8B#x+V=<_E1E4QkVm-cQsqslv~K5_7Wl=K5C0VGvOEdZIi(j4e95ef7kZC z{{>IKLcR2%5E87kq#8X`_;Uw=qSpV-44IE>1zS0U!;{HlP{?8u!t0kWf~iF`aW)9Y zSR6nTS6Q6hF>w|3OHY=5d9NVS#~b@Yx-k=ra#UQbK~Flq_+m5!9ZB$RZ0fHh%4V)E zdWmp`PGc0v7N!0}poo6UNI*_z6=u>MhA#2>4aeHp*LvA4VTr_+7_!?c`4*RTE}+$# zKTv9mloG^AIm$$cAohR-_EOYwiTZg-$jBUxtoL7~)HepMD7_{q@6_nAk!Hu==1e z(ic0$E2YLyOjh~2=AWL*@`cLM9MyK6jC}WpjL*l>a(+iZ8y1A+`u15GLASCPu7Vvy z@VdjH7eNyd0Ib5@Ft6=R5}$G4b^;L{!tDjT`|er*RCQNcaX0&h>6}&J#sFB<_sj>n z0QQspLXASd{o%8*<>PXb7IvvNrjyRwzv|j{R#&@!?XT;10kHvKWYS};-uevw$M24w zRURxpzcQ8rbY>G#bq=<4i7&$SeYb=Z8x9M$4y}Y5J3sEHLyxEJ!6({Oq=}+|(p>MR zR7JM1PG!-+w9d+1Co02J98PIscOi*u-C{p+L>b#CIYV9L`2BUOB600MKOL_F8^&JVPk`B3qyep;#&!Y+WO6jE3$2(-(hx z71NA!uJ!fv_LU4A@M8=C6MJY7(hhdr7aa^(5dX)%i#WfOR1fp3%YR{bW?0_tn)o0t zfz&@`gFW{!AZny2Lp>+^^$$-`*}@rfYFd5CsJ;guISU|@Q3(l3Ra>fPcNkIR>Nkv` ze}1ioAYH5OPD2t+K*iY=C;j3`zgmpXK z7rp?qvB`2=1}V34a-r_JBzBKk(b3W)J5@10+JwW!s1!mI+H0i2qT{p#fdZzJt419s zzRC-b!L{Fzo{V*k$cfdnRiy@J;TY*p8a{z?{K8XWD2|2$@8H}(rR+1VsSbLIPL1Jh z{5}S#B7Wpzz69%EEDHa^^J&d1`1~8vboP`v3|Ofk>3$y)eOJJp3(4JuKBE7bn&&sD zLFSiy7pV?aP(}N}NWPD3yi(*yR@SUOb$qOJXqv-3bLXPr;1X%xjZK%`Snlgc69L^S zf-=UHhu<07;_I0&mTmSn;kuATK}zqJ%?zJ2=}J@g=TS>ZD}SPZmRnW4=YM0?=vJ~T zkAI{mCl5T7bvfCw366V2hXyt~L`~l!pZPoi$Uq1go&fPkqdPkE$j~lW`m+e{QwXo5 zSCy%5*!kKDL@c-c%Y}{YA=1QT{XDE?;2M_K(ezE?GjCR6@*+@n! z*xctZe6(4E9el0{7|j+O^*T)EQ{41%^lyFBVM9{GfsJICJtus6HW)eEj9TF-5+ z0@5D^3E3xh44=2x(+D^0<_$mja8_7x+*(FQ`l0v7FPJeNY1GjU!v9-=cST5EZGbT9 z`rulxlm}dCq`g*PXVl@)g8u#s&FgE&+c?1aPZ^T8z{kWsy_d3U={jZR9|Tv-?)4Yc z*!hYzy-gW9cr`6#UpT$4x#B5qqgmiXsI1_VIVP}e(4ut{f#&l=E2e9qq2>Gfm`H50 znC1bOJlhY@s6k_eto2vMVqS~1ngZ_EQG)*Uj^geiwuPnA)E|BoOMI0t=ly1`-fmz0 zV7_&&=y32R!eYa6;R7r**6)Zvz{}Q=@!7uQHrHMUlCa=9mDXQfll>d4NH|`{33usE zmEEthIGa5RWw=Ca%RxLTLwnYES4IwfcgX0Ajy^-Q#UD#1+Mpm%Tu=S?FJq_$WthYo zc^KBw{FlzjtM~0VOFo^H2VW^yD~~IAD0Hdg>zIs{ab<2vf{j&eA+FD#=PXn#Si62VjNLE zI@0$lON7^R+_aI&EXTkRGsD0MNran@q|jHF(SOQWUK?9S7XJc~6Oa_2LxowDgY`^j z+eCtOb6bu=aZBtMwjwW>xB$5Sg#XY}dJx`lq1=60`3 z!3hmzBA_B`?VAN?-qFrWk`s-JGF;fkG({Jk!~L%MFB@Jq)}dYw_u zLbo{d?zRb~FIQj*h@r@1lpaXpZ=eK)Dv4XfiAG;E33OGc*PBTn@Ygi3axcFSNo$LQ zK^JD_f7pXbTgEY(YR_3U`Y;tMI@*%9Ymrj$pMDtp!+A(w?_KiF9iTj6FXFQK$as?~ z1c>w#eF2hGy&}LJTIG=)4+h%-WLH!79D%5H>aXU(zAwsFBp^scXfBJC`Ezp-p6`6zM%a(%nS)OH@cAGqB^=5hR8&y5hU zcgVz(VXgAXBhnPBd5P4Y0w0jC1jffG_!#%ENKt{sc^P0|xQ0KmRp+YfdE;MO(a!RY z0)QYEDh7Kw5ijSOal* z-lsC?yU0Uc7X9E_>MHxCN<}Wkr?akXYfSRB#b#q7J@*pCU=|lt(P~JL!X7sx1 zu1_oYIpxZ@P8d%;YjEFXaa;>HY6Y%KmO9O^ht z2P8?)t1>}~=1<+EqF7>5hYW~%z7k8mmN9=^e&(Nqm87xMWETu53Z>=nN{eWq2-2^7 zk#kfS@?l`0!SViHw6$H*b&~V&v!iF!f#7yJp<8$D?FopCZWdEeEOvm0Mn*rS+`(X6 z4;4(@LQbQd(yD>JyvN1yc(g{(+xS5`?a>f=XPb$b9W+Y%>?d*SbbT)Rtwl|}54`&g zu!Yg?6s&WsUmL@_S0Bbo-zl3pcB|h6&^@O7Yd(Jb!#lX^qe0dsX7a%z%4KlUMOuA$ z;9>zK#D41D%(*2!rViYs!jDzb;jC~w`BM0Vl%elSmSdXS&z|Q^bkI!Ubp4u+jJ{eQ zs6`BEGr@%bAgM%9XrS;4!EF9p$$x1NGHc7sYqe}U?!Y9yK5bQuMdhT> z0leSiq{nrHMVH>EFp>}5gysLlY|}99#TOg;VcyCH&>p<@OH2p&_D>1k;)M>*K;KqD zs{AV}q=aRDem!i*hh%S=^;vSzxHG$F1JgHzKofg&biT}EtNwE^+>Rs4%3Mw@BRP*9 z>Ff~oXkIN?Oa)nqCT{%Hdf;Tv95Kw#6ya`A0HG~S){cweN;o1)v==33xxl1*Ew0Px zd>@nJjy@R0-8H}8l{r7*+VS+UIJ>cq`ZqM!b#Ovi% z8Nh~fHvETgBT4|Uib!8=M*N2?z&M{*bpt@r=$r6?Zj$C-W4iiXpw12?5J6YZadv*G zfr&Ie25tx}txND-A-A^lzWJD6FL0k786`~f%p*gdm0?oY-3Xm-oGx<^nr)<2WkSfR zpw7Aao9=MI#AB9m{Uvy*Fqwkd_IIc}o14j_E-goh@DS#ThU7Sj5I1@7SMxMv7o^~i zR_b|QGRN~2ep9g(ZWIJ*m<#C6$LeR}G^=8aYQy?|hKyibKOVlNR?<(xDjG+VjUv1j zVd$-l!u*UfBPv9EH)d>@`GJ6u#c_!>tf*)PWT;?7c*Xaxq~UIwq~Q>9oi8mq*1&1$ zrpjHtHNFB#pEBwdeUZ6mfbsTi&(-f?3ONNX#OsvOsVA`@KBQ}IA`s)~X-?3HRbl~9 zL_1iV!r9n%Cna@JpdKKO(<7%$K_64Fcn})y43qb8q_^dqO(6d)gXxLi>j2&oV)YGQ zR))zEd<~o5+81&h7qDw@BZIcgb9;a#MHl2dL*TM>%H$i3<4OVw=9XQSF4vppE3mNJkKpxTpyor+SJ~eFN!fdxlCnFp z2#{165Vcqmc6uh;Vb6tg)gily#vA|a2;>A*&g^-Lp9y`ndaePIjVJC1K}NN%UqxJO z`ZnWTRL68A5eG8G>F+lV;2~k08`3^h*Q;lMTo+Jr3{ny~PAJZy)G`eUBdrRE)QlJ) zIU^AHmw(14AVK>OF2#Nm;=HB!nrG%Ry{p{%h=} z?vDy*3XBz=M*oU}SFnh6{vd3#gph$=3XW9doYCWaRc}sb#lyXWHeIRCEv;Nq)t4NU zKBfVR5Z-9(kzpPwB_-NwlXNk$NL`_~w00?E#_lG;UYCwkGC7-)8N4b_rlppXNRa6fo(c2E&9W(F?+rY``q+zD>v89;6#8xet5;pkT!5AD zuCeLJej0Md`iTqUqHh+*ns7hlsFVP$)obDN%IVK!(0e>DWU|o2v}>%r|;nnxMlXM3&6n8ooV6C6Fmi`t|1zUJPKBSCscHZ0aXlwzx3~}nXM*> zVdW~4S)rklu@T=$+n9|{>qG~xXM^O~5UrzM<-cg8)U; z_08xB#RqBBES-LacQ1bRnrB{^H3s;d6tFEOWd<{Rm$F#k$M-&xu;Q(hG0T1qKY=$o z-?)z#yXw_3Km?|w9@aI8KU%H9I4H-BEH*{+(A8dE6Qk@X7a;b%`c2&7^96hQ z$e{M8Wuqk2Af~8$_vz1HU%w&1s*gSZ5O)aGT+K{soOP!w=3@4r$>$;bvy0N#11I=L zV)=(so~}_@jn%0lNlu^iP{3*F!AOO}4vcJVG@6xlIy93uIqeF$XnHEAM6{PI$a@;9 zHYzJ_{()jm{UqxjjXBOvVBTCP*Xr%ITxK&WQs2+n*??AAl7Ws~uAdjl z@8Nz3(d+oLpeEkdlW0nnkwLIXMSC`$*8XF_O#`Iev${=MOB>KBqBvKpT)A4q6!i%m zeX$<(r(3))2n6+b9j+6*wba>1res4IVcLx51CqHnF*IDOFk^?y&QBeu{S!??jDXq9 zNY4xirSI(6#Aub6R(bkjnP8)?_e~1<7Hp9yNx$vq6x9;t20D#{N@QHK;#~VI{@MY4 zL&s}_UqnRV>W1b;l7)^Rh-9jlO{0VvFHS>5XN*F(YH+TD*zenwt{mIOGTEucT|%ndnKUjcY zkG`}Whkav*RQE&Qdl4y9+7eI!@notLpI&GEE&&kQV8En@G2Uy?J~vF3BpgS*(zfy0We;Q_ z2=O1Nue0{sSa03)>tslrTZ>H^%a`@B*?0NU8V`~ZU8}gfU~@}t7t6%<<6yG3h_4_UB*)KLIJvXb6x6nuFX7BQxUf>Xk0K!U((J^0puD{wgWohhqhAe$Qw775&}2Fl z7ehHr(g`2XJyyh3*2BoEt@DY&?OoKNzS~1K;$9J|f>{_drKeSQ%CbUwD|=BM zPytzPRrUA#cihGIN2`~H|9}S(=I2?0JnDrV!d|x+CdQ62PFI)=Bt(AniqZhfpiW-{ zx%($Q?s&AAWR)d z@c%t#y*2kERrlvx&b18kTa~Zf8zee*XU~C?cnJK(fp{POEs{5j{(%Mo_f2g6@%Go3 zFPYdz_`$}UF9OK*dXBpO4cT2ed<&pX+NI#8^Tn9p1M6x5kW*++RT8xDvX$yKcU1A)n#POSKJPj^Fa!3UT$ z?2tWeWB8Y{he1eC-d|P&`Y?5h*b<9hDeckT>17GIYr#ouNk?@uSd3w0($;-RJBO&X zj6-z%($~6Pe-H=f?yON~AL_XLLM)0Y^y~NA)M5|W8NRF@bjqjuWn@C%==j7c6Z^%8 z9d{Ldw#?;gZt$I*W~m-PN-_6oo1Vo~!+i4FG>8Sm-N*KHXp)5{`*Hf(S17w8JsXk& zIG7FmPjNSGsg6Cs;eWup=rM2lSE8kTrU65i?`IqW7T!XzfY6ibGfpmy_X<%;Ltc|M zRHDlbzfl){)Dyq>rlQ<7A6Ov&ON9vh>QZ?S#?uUMN;f!9o2WaHJ_99yI9_uAtZ5Fu zD?8&eNAxVLDg4PIgSbA-tfY}%{X!?}4^~FCuax3oi%q>J=xvtcl`R&af$|@qglB(h zx(uI59R@jUWUZ{9czEwWBlxcK-JJ)9JVC+J|9W7GAz5iB)!|nTj!4kA;jDgW>_RN1 ztL_IEeCnb@mErxftcEPMZam0mBbc{rGNDN$@AKu{nwQD#s-DSuL+Wv}#QWx)^l3Hf zStVurtBnV_y=6+=>918`Ur57ybK9`eO>nb_Q6saGukm}Ye-nol`tfg;XpHJtNmeVZ z+Kv)STOy0q7IBaG+8G>dKo&zjDm{kTmGtBmcLl=)*nGaK-_tmLj$@LbrLCOP)Xi-k z=YI3srvF%}|9sF*UVdz28vkr?d?W2{VsZFHGQ6t8Osx1Pbp(nuOSKYiIh$_1YnSl7 z!P49SvM)%+6 z$fSS|;Sa~yM_o={cl7T*26#|Xm9-Bh!Yx0PrG{ES?>+xP>qdC4d8L&e6W}$doavS% z>VjNhaXr|mOW&^N(#P8p*{@&W5OQI=FG1<|7+5E56mB3=5}gzl+LCn)Jsiz%ZJ5s= ziV@p-&8JYG!&8)=5ct=bJjpKI8M_=9aqj4&SN*2s)wI;_p>G6%Wrt|VIQOU1-UE*e;4Yqe9a^kkNsT>p}WbUZt!)v>iS+8NrlL!72 zpJt)%)OC-vQ~WGQtF!eDbb`j$83_ z{#k?l2j+}1!RQ73NP32Q<^qN*nNJC;9Bpfl7d-DWg1X;#c$sqn1-5Z;`Ox8$?{KIl zqtB~pRyOKB<4r(gal!HW>Rb3or;(w#imORxuJp&3BFZj(jNr*PDf8cV5Z z^tBTasJHhK)s!^Uch--v&u4Omw(d%f!fi_yl9mj$GaSLDHX8oUz$=UvgEA|b}oco?ss*JsHVEMQDQAyP;EuzmD zxO;ok%}vU1E%^yIOg}IbF4*j|;D)&Cc%;v#l5S*UX%Fo7>Hj>im^%FAb8cx8@?yx8 zvz@3s_;MIB_X2g>x={Dwy6uqWnPCuQsKUejM)sW6F)rMUvZO;sANR{nA@=#}Sqf^KZQaZR#;@r-k#VdlJyw>r*~m!3`p21q z%qObU!z$Hp$fx?^8oNHndheDA`^kC5G>$v&i7}ZlTdglFeCaVtjQec;CfPTkSmgUV z(`MdDQolj#4pD||Xs9JrBC)ZX0qxrhl9BICWoJeVTJG`%?~yz{&nB)C#3H&_ReAIV zrX=^pa`ItYW-uwa2p5;wfdqSQ$ClwFrGpd(5GTSFf-n@1oyvA)OAmtsn#GrtDaD-4 zYnoV_-%ih^gq@|JujDT1U1y~8W`Cg?j`(F7TtxSIW?c%Yswtn?Y8CCpAqm2S#EmD6gYNwq}nXoq`kERN`<~et)od{c=o5$Cq`zww@F4#&^w07%Waolub;^)gcz{# z?t0>sbsCXyEJTIQHw{Y<^_3joik`m!k?r86%-ip@raY07HSTg9CvGGilDN0nkHvry zqTMkoJ|GnYtyTBBP0P%u#-Lvwez1^{Oz z>N*Mj+;QR_1{Z)sd~C%R@YJ?xL44_EF=sL!0$`(HsDX|jI9qq3IHUEYd4dq=kZ|^u z3}cBV7iiji#*_$o0n+%PaS=_z7P#z;K~nRoK6ImE=-sEmsD~v2t!e19UE_ph#lk4< z3KJjRF4ty8s6jZig{kX=I1J7<3b>?AEqYuBXa|!(P{D|Q4{V00PgAB(YsDC=GfjNr zxMAce+@OlhRsGZ7z~=@+_zC9VgS@vS(VQUkSE;%q&}V}dz&E`9{HdrO0#3=(>~*U4 zpGW-9llCY==sszhtef~uo^m@95pE*Ted0^q#^V%k;xk-(dL$PCr^f1q-aX5Env$9t zX5v$s#SKH`ug-J;+g@m{7W|*F{XJM;VQ~Nhvg?NeL#`W| zGeV{g!Y)%7vURfNd{dU4&0gp7iI&~b_cH2)0KaCwG2}V|s+e(m3JkbNv=e&Q^$y-t zEQfL6LcVcdO$L%5;AsYYbpH1ROfh#rTlAs^u?!aFgFk@?(65P<)$oa7Zfl(LEZW=tG>z^_&-b zs{5XprQ)|MC(&8b=x8dAbL5uUEXJoPeoMvyhE=@x?OLw^Zu#^(2k;^6xABa6VNV{KBZzK?%waYUW+t*t7Cj1NS;)>v3pQzt z6yyS3zAdiq#R*@1#K_%xL1R(f zb5b&EOCJm9f`&3MwvtbWu&J+)^>G&95$N4rz(-(M!0g0<1w3x7QRx0N+y9wS{8$D@ z(7TZ~q_f@U;%-BGyky9CF}zKO4;x`1jr4w19O7KX76i4eSI&ZzkWDqhCH++-6O=~d z7F9&b%NPQ}mmL2!@qQhJDgo zafg&=2pI35Q_dSzDu+2uHx6c3+(#RBW(=Kt^Lo1SV?^&grk1#EJQ3-=O$7SQuF0m0 zQ0(nbdU2Q>y|7z`*qP0DM6vG(tvRC+XDwCs^Y0NXe47RcX>%eq!X!}xiLWo6TkoCB zOw?5+KqF{~l8d8!!gAP`%M|E~^Qcnh#ds5L3Xtw{CGX4Tb@fUK9qDcnz8@VEJl~E+ z^8j^pO|Y-GR49CDr)BTZ)cd%(YBV~)G~lh8BNz}db8v`w2*-oj0R)B&{63~HoS#22 zb;YHwx??fCFEU3g>p4D~SE-zxI-6XtJS1{_2_k;kL!R4VAE~9!oh#o!o!{-jaWzX-xad6iK4q*~B+i)i znIdbbSe->@q!_(KQ3~SGoEatoVSe)9#Ej@CFvj|_D8lm478dCch~|2by5aWo4-NnZ zd^GvPeS4`M;**}xSOK|qEjy*KXM7=v9u*}Gbu`rbmf%xuiI&DuiM;p7N0v`qqnE?wC~76sWi+RGPLEzu|( zdGChXlFCVNtXvH(N_HRbg|LpsaFOgqUUoH$rJj#w_~izSB_r*L(jv_kYfe3u+U48? zMScZV^HPxj5aYf0vx{gXKqyHMxnb{`+(VD-Dv+dNey`Nb<{llX$r+v?6BlKL{L)|u zWq5^wH=K!Dx6m>nF?~_^EqBazr6Y#@oq9!NF(RLocr$M_C*H>X94^x`C~?ru z(xT4u1Fce)GF&?Y>TneRkJLdUvd|v2m9B)wTg+7zIgguUp=X z=Mb9L&_MUJvs;Um)N^JqVx#nnDn|qE8$Gs{mdS`;<~mOBv)gg>eo*8Rm>2}+;Zo4W z5{|6;(T=>iOQ?I(jA+9J^g~9CTY4KTu+UDxyY~9jiKq;L?Su7wW*K$&;@p(*e8JrnGDtBr0J@}Whfyc8St+c9zF-N~# zM}MsKuIL7uRXBUY$5CuRze#7r!!rQICj&n8CVbDJF*xFbsO0bL{m|T*oiNE5s!$x; zZ+l%dA0ge@_G$h>*wzV0>1)eGsLr5X9QFWz6yBgQS>~X7jiBx{TIJO|L{9beLc7rp zmKSvz1+_<{nZQBZ$Oc1>XMfr#2P)F%_{^} z$b&%=+Wyg9QQOK1pd&F{+x3f;9BQSCXKqO1i$gymwt zaP2x<_b6hMGYGZ1Zlp>w@$munTi|6%-3eU~0z2AgAh2fp zK0`^ydL~_d_+B9>2xYy|+4-iF;I^YxoFi++=cZ(8;ueu=P9ny|EO$dma4(08YOdu9 zv}I=2VZ!^a6^c=_YI0>w{QQ1;nfCk^*t13MLp$OBjsl7ck;p(G#@tr(5=o>ECx7;? zxz>D?#!Zp(V1}#3<9(VpVT&)6sJ?z!=}kHmDBNqEaSm=QAbHa7eLz%%vT6=~SY;+m zad5TRZH=?gqjfHb{gn{d3p(C}vfA&lor%|h$Gge6?-&;8JC>3Vl1K##an7T&;jNqr z4NVu1F7zg;5sc6U8txwaHWG%c+hWvfsBZNfaOo|wh$M<<`waC`@FO6wf%XPNEQ7-NmqVJ8EdVW(Id3W4w!YI3k9?gmDEg zRs^eD2Ku6vEwFV7i8bBeiqLEc9B)zs+R%0(({L?afql77GCRJ#983N zyGtqS9N6j^zL?aH!yw7KnQ?WQn}P6{4qXGJPLXD*YBjpfkDow@UO@EdeffL&-w{MH zB`O;jtdj1}&1rYHtbsrz#tehfIg67oF^(cE#K9)E+oMyk5*A)|tcZr9Fyhh2JOQcx zh;3DKN}ZalBtQ6h`T=R#%i_M(xdMrM2yy9J{u6?rgfo(}TWS>4HxU^YFF3%)jO%jP!?dcSdcT*|Xrx_NW9pCGBgRPDR zz3tImT+n0rxg!N`yI*e;C(;a{_CR#P0x*NK4Y^*xMZ|Pmcj}u#mXDFH$XPWv(l|iW zuWehLMB1_AzY_c4z{G9@Fqic8EITF7ud!0ZPS5IG$=9$+FCucEr19l!4Il1q*@drgC zCz9-#_go% zw0+m>Qlgk5x>DLBuphDPJK9;{QtneMKX%9#?cq6CpK8y-6|T~O<8PDx4#K)H-D4Tu z&mr@BhGZnABvwiKlZx9<`=R(zc58d4WA0CS@3eTR{j41_w3wwgc&kgI42fN^RCnIl zNw{C&)Te8jdbSBLa=a8j>!a5(LhC*`3H=k*tB8b}GU|l}y+CCGT#;JI(%p~nF z4wgtxybi!hCXK0=o^1asmQW^XfS6o&z)+tC#2~cO6$cW9cvu|YiC}F_;z35# z2_LSC%5W^csn;=gq6%h18tq{(rlrR2GpxqjHp&WPGSd}iD?TNv9K~}rWA3PFrsy8X z-*PQ{m_J8J(Wv9MhzqJOe98b~dv(7>wXO*@b#-O}EnoY-3Pb;-JM^}*O~cLKvioH3 z9j3EZy^OWAMz)A%7@P(qglPO2U5)2BP5>xUc^I{fAdLpOZF{FI2a~>8N1F-+O@N<+ zt!3m6962QxEyul4U;mJYMs5ny;!$1LRF#xe%E4K>Bvt!fT$hWz&mP0pi9YK79g(U_ z9lo^QKD3QEu-(hyJaOS_=7`+onkBf`lG@kms;x#TG`tdNc3`x1T8WqZD~T`lzd;h{e`WfUk#Py+-j>njpXID8d<5z zuU6AZhi~9NT)#=3evq0GV~Hur)_GldOL*Z>W$JUJTqJuhhVFE|tfICOhS5P~-TOix z`e89BR_ z+;YZ{AW%7IAiDSCM`m3p@iTrD+0CJ(c!!%YWP*itF3hH8^zIYpLO9?5di@gp+3?t` zHuhz_??GL=gQmomAMgb;Bo4AWS*_9o!!xe-dvSkZq~wT?a9alIihR!>kA`!G*9fc- zS+7bS^K`i(&xHjAd$OX;+xXmrYJ&5MaZ>yy9yUpM3C~bcF6~M~*t0Rh_WK+-%sq82 zud`BjAtTOaOd#W9dk*(ltbuBxmF{`tR3CDUW?aOSY0b@8fAp6Y$>)VJBGs7}D7meOwnD%z zM*w0(Q1E86UO!c zU-)Q#HYUQPGu?Ldtx-Su^6l8jZjkjR+~zTeP)Be)BLCE-kVqt^A32~Wv#O5eB1m<< z=z)e1=VM>fvrJt)ppJ2e8~P^~-XR3ysz~@3ooW0{#S8|jK#vQ7QG-DWcKK0+fFx^c z?f@*k%9m?jb8HAEn#nS6wlw-@tCR=Dop^6d&V=}+e&pEYZEd+Y&+U)x1g!&^%t-qe z7vz7}O+M+YgoeX6Iu#J&s+x;dzGk?}WMx{&dNN6;Y4Tq?O6Z}f8dabyzcRZsJoCqu zes$Dk$_OTWMg%INKRYlgpFGqNPx$p*x9r0dR`^~PNbwE%@2X92?jg^BLrm0{d0DUm zt9^s=z2}S2%@Q)U-w^S}zDP_!=Xs4uD=1kK%$oy{H<%03iUtzij&5Nue`^3V@!fs zaNL4DW_F(#$(QV#(rlHY(KwrC`1orfXm_~!E}-R-uh%NL89v>=i`r0{17i!n7z1B~ zN;X}p$h-=CJ}{MR)N7?`wP61FV(|Iy|HIW;M#Z%)?HYI25Fkhrw2|Ph0fIX;?(Po3 zJwcNIjazUC?(QMbxCFQ0?rwLn_jk_T=l){A=w5@ldiGpZ@B360h2mX%%eeI6m#VGC zd+**y#SvM>=NPN_GYsP+vyOV_v-Z|YO7Yjp@+<@)L+9J>;kLh10|M}m+Op`neiwmU z3vSj2Zy2^GUD{R}@6?GAtVqPmC|}8sg4QdgIBxTRKT%H+(|S>MuD#C0U4bdP=*zyA z@;_mfN+3EBWP(K4s~Lvd4gbxGJY_VSVvd-|t?xC6c74tK>=en`>)M6Le3=uiYjNWN zCMFj~AT$-xT}+9};aEC3uqIyrvq&4 zz#)oxo?r7YYK^p!+d&*Qdo5!)ZAIEZO#2kY&*dPB+;3luyu@noAo3_bZ9Nxo2-u;K z5fYxe`1o%u64O28*`dufSV7#GI|x_{7{~9eajiE(E>C#i1C__ZB$_lF_QQOWe3_-h z12#CPy!w9|UmwS^-Gu`i>CPIYBFF~H&9tI`P3ifL>HUsGHfRfBjJ}vOavfVi~I}u$MF|b=)`j!+A#yS?X(A~Pqf~| zz;Jfq(`VJ=)&Hp;;6ri{_TDtIF+~G0Y6JdYKmE95de~-zD4zY2<7u!W<&{ICn|97# zc_57k_E*2*r5Z#$;YZzD-Yh**%ae2b@e|0Tn&Y3Lxpu@y+~7_w(8Z-)G^z1_|Sq_`0Fs>BWv^`%m-X}0gcY1N?MN8dl`XqMrmrB=r*Eyjb)1#dUYsXMad zTu2~sn2|)wv>z0dXb?MliEVVhbPN76fDHK5>xU?6Bwlgk4~-r6$cf!Ap_h0>93PH+ zch%prX*U)=BY;dey}sRBZBo#tFA?B{!j@dccSL%;1Re=R7+Rm@+JFfX?@QizNBXgt zCRU>q(Sr(_=&OB3r^X6P#Dc_9-7UlmGy=caRCOK`*Cp5=H=Y?X`&_yh2ZwBMj@?9F z5Yew0#K^)z?uzTPJ^7cx`@ivMtIJeBkTT*W z`H(R|1V|!P9W#TMEFCI=JZtmw1(6U?kUOmDiWUg#OPyuM4xbdUU*Rl^6xH$;2@ca5 z6{5<4_Pawiwk9lw2`=~D{`*P~@?qowJjEf`*^KiY9E@0OE3_d%HB)Iq3{zNqYnDo^ zMdk<%u{-|N0rs?2N{jDQNZvnG))_gyT58u#iJEU0#%6AB!L{T-qXX5znx*&$ZG9Lk z=KPr0K1ui}#+V$6j+JP$Y^Y>(!!}aXbP7r&&1+?~?|%BFlX)0kv)r5LZ(PS?kHXZa z%F{W|-g(jTeG6mO$G4$)-)lqui9#40u-A;H0^yV2ZIUv3$XqIaj^;ZX5;jAyy@C}z z1W6!??f7i}1juO|kqsw&C`Zf0zq-?^VD>{p9nE{oznt7<<^@M_9p^?1_9p`1WkgIm zoiEGBUk5mTcK%9*P6U4vZ}0st1G3#@D^k%6pW=6L!rc0n{IPR=s&jSIFD~`M{$~TO z;3=;Jg>Rg?WtnXf918UjmgB;r4RCp2lR%)4YieO^dkiJvOLw+GVpVL}(F+UgHv&7@ z3AF|%Jc>rVcE?5P=&UBvR0IhPhJ%w-NS^E3f$> zMYqFsjeGmU@#+b@e9p4xQ#*aR`?~f=Vmnw!2fVd8;s;Mtwr!<4whqz#i#kr{VkCf& zoXRV7qB#02dZ&pja`N!z@O4I%TRHR^2ZG&NR%zOO`r7^@y>~3WKqhw^x#_0XYM7IM zrpw25tBlCsG;LA4hBu2I+`$bzZ>ke|KF1+eAh7o>iigi0_gZ4AP88aJ59OcAi(|d! zo{CC6`WUjj-Y8(@^g_$|TT*9u4JZnvO$PiD0pnmMEbmW}382)c-6C{59~m_YKmcr! zC-NPC7E(6b%iO{9lvf79G&eZ^_Nu_J+=wqRK;=8?B|xcg@zyFSVgp*@T=)xEu0v$c zjlHHy%VPq_6W`kxb6m=uMRMWs(o1C3P=0RJV6^JF%ts7SeCZ zKEQNo#algfvjwA7e?cOfGu{@V-{BQL;}0i}SDevK#-muNmzx2&f_=?zf$qg60hu^i ziaKgWISA#7zpLSkgEvfm{`uxSXk8A%q8JEAM91>_{Utna7aij5$(KNMmiuH7uE8vR zi}q~@T^_XfB)KRMxsGoNth>e7;@PNpUjAuH_vxGf?KSv+)*ASv9~k)x5_ffy+f0bk zAyK1O#K(WMRzQeHM=R_Mw?W80>FZV`5W2ziI^p;-7mICF=pO#myW}SqNHPpF(N_2p=Jz!C{Qifp z(s+19+WoHr;RUp^HjrGE{`agYEE{*z&g!E(B9Y9aI89`zZ&r$?ItK#yQ2Hs;ClRJ~ z4&_U9mJe|LkjY%iAeE!DKRZp86RgkQJm0@!&vFVnpZ_y~|NcSz8ID*G)IM4kS5UE_ zxupmEt3F#ZN`{RruIAuFbV8O>J|K2tA;^0HF`(1@?!NULf&e~KZqKW)(Z;UdWoo4+ zGk(K92PDZ?E4t?a&o=Z|BE9@szdnEc`XK98Z7sEm?e+I5$%o+PW)_N}e<|WHjE>pQ z246<`AaBLJ`NX&LnLku+ZZE&W4xF>oAa71LixKovi{cF1Cq|^g?2`MFqTzd^i8*n7 z3ecIppR_2l|k% zw}1)2^F-gZzor$|Nu{1K9lbIbKajq8NE#zqB6<4gse%9vj&$x8yRfno6v!Pn4(mdR zo5&tytU~C?7a5RDwR~W;k~r!;@hBtDRYHMoXR)>iwCf;*Ugc&^>_;4g+Z7*l|DnqBO_EpEJ+cGU2Crv za6D;LQmHI9@ykgjPpNU%)lO*Ttn-wdDN)p$pZjumM8-3JPzKsl0?RY>%C0eys@;(ajy{n(wy|S;>gd1kM{VSwcd=zLY>B!$<8SKTjC^On zaT|6l<+PBx2M}DVO0IWJ$Awn2SH3}v8SZgX6Betj7D2Sd@lX(p999jfC8OEM_v(Qr zvwHcd+GO5R*5Wti3my?QSqQn67+iF09y2|Z>bYHw>WK+U(A)@SD+1*#1$KTmvY>aAhjMjg zGb2@}N$)nzJ8juR>0^-9^OCl4j^Klz7&Q_&8#;(0>sskN-=k{8<`hSK0FL?yP>LO--YOz%djZVWgR39n* zF*V`WCu5+&Gqv-z*9kW{Y?8y4F=DAAG_;(3t0*#l znLGdW_3!8{=|F^svgm)liL3lCobo@%)4#LY3b+jV6*rnBiz#RN|2d)mWhwvLh0j{0 zqttbyVD4%8)&25oeI4uDhf}=N>$z+*yZo`fgVP1b+g=L0KJOT+q8%^ZlN@ z3H|vBp7dcjd8ho}hs0D&eZr(Qn{}b86*TBguZQCsHM!lM1O#7kOi5F8n_ch0qp@|x zgdk520DXU_LTuX39A{mA;P=E5d6C-)%JZajR#WrLC_ zSuRk+WGkH@kD}c|s+MPiTa7Y)Ve+e#gop1d0qDbFc}~M81p78NZFh&oxa1jNZsNot zT1gZ;q}9IdD+4{7Jk`u^L@Fy=4(B>?fMB@ z&+DSb9(gg)e^P))XsJATT2g-drjFE&qkKl2mF4GBp78Jzq?+rxTu4=~o-yLLX(Z6A zm$nb$ecl|>z|6hx*-wV^g5`RiPsc6W4kMW+ay;MeW<;^FAkTYj``ir8MZut@{poux zW7rKbxUJLs#<8a1_T}=c;)&1A;#G0{kR*7>Pt*C$&uCjne8ag)hx~a{1R)_IV8nvb za)zZMN4k)L3*(cVfq0*%fVhaHU7@|oLs<@>t1Z1H9c$Jq)VBc{vljF<+LDf-2o z4Wpfi$G{u0oZa2x>&NURiMt=o;^HEc=X-|zPY8EsUU!uedf#&Et=^IniI756wcV6U zMu9RX2>attpB8ToTrZia;qP>^&}{;@1TGM5Xwn+Y!2D(TyH^cf>-ny=nb)O@peXub zbztA=N$zWxvY@p7wnDitg|XF(unYBqEnYW9ysqbDNSWb;9q5`m>lz+gfs|Ygb>W`@ z#Wcl)6DsorB`JsFTeLfqfleB!eLx|5b4oqOoz(IaE(v%WPa%Mm^Td~d% zazUdf*>~K^i^Nao{LQ2r<3u{yPs_=uPxgMwup(a)>6PmBny-_CUwmm}{)ekJcD`%r z=I(s;cyMf?Y*Z=7qx5iq$i~9arfa(6p8B1+hI#k5T??V)HH^A9WwukyhdU2?2%@@^ z=BbxRc}+aQwqS(x(HSG$@C{363u6OoX1;F4oW%%fC7Sw}svSg-OP4)9Qslc`@)XyS z0cwaX=N^IJ)T6?OQ-}R1AvOSGaLRmg+?sQ^`h3gu{hG*<=fT5006x?7cec z1~@=Qd%5?`JV`aHR}Ctp5ci2u2WDD+C?r`g9;S&zQdGGJGm^KhP>s5??87we?rVh& zo{3|L{;;=AT9-|FLH??GDT}yaL!fa;Bi=z9JZq)BXHMdlY>Q|10$Re**rQ z6NdczB_vY8wN~?!lX}-FPRK?jGq`MEaM@f=W^eWO{uMCokeBq!z>=gCz`lmm13nC|SU}7e0kS-YM)BqMj2Rc8r&z;AExojL zi-~l2Xf?&9x(MlaKMRkc9%gvL=rFY2z-e4*ftM-*s+ddI0!$cC0#MGJz_ z&B-ZHr$c_8+ig@%491FB{~di`Um>7Tt>=>e{y-Ld$YITdtMiQn64~`Jt>+6(;VuSb zKE&1c8%38ha+fmzoVju9`epuu*MS3NwE!gR!ux`8=s7B0dnV>EpnDz&(=D6;J2yQ% z@tOpHm(;X)!#0?iTK;;Gn*qPSIiT2HJ-@ij?+w64J#G$3{R2`yKdUCw;ehKX%nw+b zgNKthrp|frEg;iJNk7Ve1K=Kz1VCG-lb%Cnnf8)~*$PMV8!b|zVc<$gs=c^dGZn0$ ztK>Re+<$-MKLW4`48e!+xUGeMMeSi5`WQ)(g_gdZr&O9GB1JeW&76pC#ThIDP~^)A z>8&Q)(q7uF0pOz`d8P(||;0an*C#Z;~D+82dJvWZ=`7*_CHLg zvSC0=G;G%GqE{NjQ#$rX6uZ0LTC{wv?M%%39Hf3W-*u};<7vrv$Zrt&!r#Hf^Sxvn8r$r@OM-pg0vT7K5P4XlVVIdF(v?Qu42muNXGHDP`Xd%_%Xn)1 zbXOR79Baan)0ns}{Q^3t;eD#%R)QT``RlmyNFbRdfWeeFUU#KK~eXw)c+ z9=5S@N8No&`TW`6KdLQ$eg3aM88tc>-b_jv8(x>L9(Pu`CS7P*yXk#f{^u^kYGkzl z`$zET*%X+TF&bV1S>LZoBruB!$+&jui*{DDyd(rR=FE^a8oJanyyNr`jKMw1@d+L_ z>6z%ezqq>5Xql2itEcuWt^gK)W3c{-_H)LUk<*_}k20$38kSl28KCdH+Ka)&&v{w` z{R(vOwEuO^YWDo=6~RG<%*fddvVTWfo_QjGY%1=6xV?;@B|#?gmBervH=te!_SXQ@ zU7?~d%4jXQ$eJWf(GJY~72KfC{>Mzpt0*U!y?S71J*?{yjA1P-nJ6RSK*ik^T}NCu z?5!@+@t6lpy8}as$Dh|Qi*xY%_tO_`V-z9;dUj7W`51g@<-S+wf9%WwkhIp(Op}uX z3x7qf4rTe?K9s+FtYgWNcKto1HToOT>w#O+~Fu$?|9Cc`_P6Lg%p=(Ph@ z7DXfJ%Bz-w(U~V#Ev9k^ariVh=*d=H2xH%-!#f-;CU3@Y1M*#k;*9D6)A0xsw!$kD zv8nF2sBH+^l0gQt!J`I@rt5fjx+Y1sZ;NEp^nsuTHF>>T`<~zHa27jo+wBlW{rQ+U z!IFtWntR7?d!(%Ipbm#}=Xp51;gvEehgEKfMkT|H*DtgY7LGuD#(=!seSOVoE>LT8 zlg8T`n;n%^OX|6sl@O>f@_=i0o7-E#a%0$2bl6KWglim4)?Blu0k!F;@`*;m7qa-X|8>yn3oNxTe|*<{ zx|3tFnvxL+AcSEi{k_N2mp-1|Ow~6juL6%d0whP@b_R@qaox%2LKOW6zWk7)TVRJO zTEurey|RRB&+)&JrFfIL>$A+Xdc3{z;rcNalyv3xQg@p1!@&2$2sa2gy~56)YEVCo zq1Hf;!|q3D!I2F{D<6_bKs#P+Wrs&ewc$xbH8#_al`$$@N7YQj50;zAUWo29mkxpP zrRiz*3B^x_)&f0Jdn+kpce1H_3j-8O$&)STWEQaw48EJOkjy}-;{|azwJ+%o;Zr)! zs~3uT$;%0y&L0nojG|XhVw?0Z}=&{aA+ zPLRj01mE)=d9+E#as2sr!qUNr$m|M!>@W;KcAVuwgxwW+{oz%8;|{p!>g5_elYUXun}LsX1wP&4B8dG*Y~|UB<>*v3+?!kV;q)4uoOpdsdz+0Sd2C8 znq&D^#-;~xYzYicA|FTTz#^=#;mjpEKaog$N!bD3*^Lor0OW#=O1t8dYX56JjqrFV*0drG)kI@m2PA^s|9|o;3bK$E#kYr zyr=lNXRzKeLK*^Pm-5J2REQaV2qF#xdjKn@?BacFF6Qfk7jdrxu>n~j8&dK9!cNrYw70~ z-6;a>)ZR0{?X~f`m%Cj5M@3r4LB}K2weJEft!iYpdYV35OVyKSdl~HUW4x!8!B?_4 z^2|y&1d@d7dwiqyNU67uhgi^Q$~UywM=fy3uI&zrMc2zC)|d!6v@Kp}Rj0Pco#;%t zd_`o4Q(iPsB=}4r6ke3vl87%Ng!jkhq@U1K*RBu?&dCD|*+YGX*GBKWF+TdM<{G7| z)dN~ztq#_L`kdO6J?!!7BoPX7Gf5!bK%RC$26B5n9cNGm+sHUrXBDRZs zI;_&7(IJd+y6Zmzfo=+#?ym~n*r>}bY>``Mjx*l?P92!-T0|Dup7&HR1|iAbh%hWh zzZ)=G>AhLX-gVqtF@Jf7n;ndgpJ4`meAF~cO>GT7rq1TAJE8r3!x?mRRl#H`w;pKQ zX^Js$oO;R=WHpH4^D&=My!E@q4I#?x$n>M{i1D@he^>x~oOnZ`QnHLL=K-9jJ-r-+ zDw?7Cj@w0ddK;e;^hX^0z+^%TqZ{__8b@OD6o(~?@Dm5ETyr?qyG1p%-{ycr`M_#( zHmYMZ&Ksru1-s-*yOY8|=SG*6qZ>n!1ftjug`q;($^fR95{i#08G6~dy0@F??k8`w zy^O386Aud|^#De`Kx8GfXPxfcn70Ly`pn$^1`U-L!MWbBwJhTPr;N1Ar?(NegCJV) zQOHtWlZnE z2ii?%`^Pv9dG*2=_XZ56uL~jFfW^(C&?4`NY$5V4YT9vJ+LjU^BkUne?$$ z_#nq;#t$bE(Wr&{9g6-_3k=@KBsQqPTUZcY;~w#NvyYi@`$lBsvoP1|g}x~T05i^^j=SimPIE0SdlLSH-|VbYqixJy6;7Ep4L*&r5nI*JJ$SEN`P3Xc z29(3R&@=;ePmwq~nm5X#hHaSn2KgC3%l1C8#|I9?jG!kIQT|Vn<6WhSuR^*%6In)A z_{?p;K-hYFym0^i+R2{Oa$XnP;Qkxx#E5xB`|W$Ophcw_uL_hf1tDE5$OKZRa7!}G z!JmhfuOxkj2Uz&;!-|a-rO2~J{{%q84(Lncen|du4*3(As3SUp6=q#sZ192*{>lV$ z8;DOtPnv2xBX1-!ds0NA(Xi1EUjg*U7|*>^tybtLmM^nC%v`pIN0q;*fEjVXvVXse z38MYwH{Sq{m(*UQh|?li*{J5fmEDXxXER`TOn(|6qHc)|Fn^xQ?5)Aw0&sN>b zN)$2gZ-kvZL^@e{qo2LhrplT>wJ`!w&`g@78duCfIy<0k1>TRi!hH_5vl0jMbeh|3yah z-p9g~4XKMfV9;Z~-)K=DUfa_I60M5fsO7~n*FByd@O3cqYOi~F{pYjDjOQ<;?j?6$ z(fo$eRH98`0wpwPq5?|LMAGUkju8Nk34Ps-FAF3i<_BF(f!`R?b$99D+>YhOla)B0 z%7)H1O-C03DA_wgBO~DJaELf5q@|_g-gwuOtjRs}lBmo9?6-W*!IPi?QNCOw9m9E< z6`(_#-=(KXnm2eF>o**(=ue-zerw~0p%C-gaR{HsW|e4fDKfA*KP}94P$Uu9|M#oO zjT>w|?a8=7vNeP==3E@nD$>at%~r{2t23MbH1Bi7psU0o!7;fi~1ALcJiL(!Hu z8?O$=zHP`6DU3@t|3yIR=37_=blume!NtZ_tXnQX5*9 z0+Z07}( zR~JP3k_iTU3u;n=zI?$cS*f{D@8u`N3O%mT2l=Tbe>);}R0&i?+ln<=WJ-+`{bc)B zJ|8ju5~1a)Ok#9=0+%?OFOR=f0Hil2%xWMa&UF+7py;j7DEgH>f|us4ap*>*MNRy^ zm;xo4!KDS4?UG%PZ{I*$_mRPzgv`p0BkiqiV{i6`Uf$p#GfEVr{W1O1W48e>>q)69 ztFH*o4e%*MtWmp=x*baLX0%GS8BbZkIA*EE8M`8*;~ciS^ZkUjwr<|;mH z3bki$e{u0o>V$F>bbzR0vwX9Bp}ej0ct{Mh?yqm4yj*b~F=qCde@;TI5E0-$#Gz8> zb;ZSp3W3&v&i&+G6Z$-;0AsmljJDA?9t8b8G1(i<^VZr>-Qc0+{%BU!I)mPPD0s(0 z;xNqRg@~ez#ZeVJRler1Ad>Iq}K`^~CCrm2<;OL(gHA zo)9UE23X-YUAYhm?d<1YPRF?tr=+ya@yp8&$e*p=I+mu^b0^GSOC$HMwQL=?vK|lM zpdvxJ=pH{J+TMM~PkM)+`U7l=P88H_Y9{8UK^U%}W!Rx=Pr^@#W`FY|2cf5EabREj z7jk-4b7EP4SpS)0Tuim7(AFfg*=K{Z?RI@Lh$<4lSrzo;v5u2@~4k6sp z`tsxGxd~;afqG`Ft$`_c>8jKBn!LC6G)gQ(jnbRA%4_xiPZ3Q2;y=3{jA>dlZu*=@ zC<}fl^U74q`8%4qY@5I#WmX7%Yd8j1)rly6I9>BSHf1Tw{@0QRDA1Vw3 zG%@NrGoO6c$0n6|2T;%fg1~o92zjS}-Lw3cKF$U;Jr< zxS&1d3=mvA$Jj2q`vB`;a^i4*r&O0s$@s}DQjcL^c8Q)xgRZ)zsq(`SKIr_advLyb zv=#X63eGx{roU|evp1YABG1Qx2ZrAVBNsr6i5dGatH>`E#$UF0ykfVAc~>D8Dzbvm zMF2Qk*kX|stEQ{1ncdPX(bHO}TK3ZW2zjb4LC}8~1O~eZx-}I447g+dOq%jx&p@xF2I(9yF#oj_Vyn=W_F04B07J$7`VV2*rI3H) z+w(5e;E0Men5z{F$IBPNAVVQ3f48}`_^Nq8cG)nzVKgybE!*oh>Axz3n#!6@7 z-*s&Hp%3I7w5{IhT=k8LF@=!SdBCh{+N^!E=^w6jg<54rENtV=*~B)s_nvx<3m;4% z$AExclm_Pcol=d}FY#tQFZf#BdtP>A$7$Dvbv$leVOKa`0|VDUG=O6Z`lW^qYo`6m zAPSXOkqVrcos7{_bl|!!cV$R=c)~vS0Vj(;YI(Np9yd|p4^8M)?U7$gK}A}OmuVK! zt2X&6GeO#QOd&v%>p&j44Hgdimea3rEWZ9^dFLG=goYS5&ANJ21NEh0~)H=_j5}yaZYCzY(P?tB6?!M_Zfby3f{@kn4g;B`ZA4J@sh=#lvKA~`IZ7Q}Yh0Hr&FpW1Gn*TpvN zJW4QQzv?uON#`dOhJG!5y$V=iqmKCyB|DG-wdLxSvU#c)YjPIbgRjeWuGWC=(ZU?% zL%Ql1Mav(~JeQpPQ;}emDz(aZ9>-u6^2gG*9f>7uMsq=?o@+(bXn&YQ zXsER?jk)?S=*kVidA5%BU`sq^V>xAYpI^vM|l zuW>{lNPNT*Zw^r8cJ=lA)y#wAK!_|yiL25>rLzVm1`;FGb>E)q|$W>gee>0cjkMcqma2we} z?@sKde+)tQRN{>^sXt*-`f(o@`{2Xx+M?f|bl_H2VFOv$;%u)Ej@VLZtw1ZAnZb9Y zSxyZyaNYgeMvsdraMwnHcn0;yh@hw4Je(cft5>z6?abN&n%Ycnx(xVbR~GZiF6TH^ zJ9TSHt5v%+N&V{Klk&&&I$_FW9;2UGiPv7&Lavea2bDdL&&zTWMc#gR^>!>Im? z;Nx~nA0eDKBb^EB9MWeKDOKM_1VSj`nY6aOBt}S5KKWAEwXSa^a6kA{A0|4f3Qt!m zem6_SFT_;x`9GG_Uxts{jcp6qh}Vog&cdq%+=>u$aE-X-u)yQe zwV;}pvGN*;Bk0Z^weRRcdx!r{I%FvGF#I(A;qWCKtg&d0aZ{I=eyk&ZkDss05AE$RS-nj0`>R4SY|KOc2$w^@ zvQ2GJzVLU8rKCSgrCGVkWR)e^IQ-3ITHx%}2UCP~yWsz4^E>w?RuGFOwW~prZVK$< zJVc--9`)M*ZUAr$(CYW?(?lhqVE)jW(Vt5?uS_nBmZqObXY1GDo|0Xbma$d1cCy2g z^Br;XGevgcHLox@g;1&z$mIDn59o1iP3WyPL7E?q*W)|Lj_R;mZ+piY5J8(#T^{; zn#VMUznagTddC^v1k~l8KNa656+C3lebbZ~)CwVDv}slCoe&xZ&R9m^jD3g%;socT zL!PCCHn34+Ga6MAqW)}tvNK7QWj0-xt(Ad9FJC|Ry*9#6^bJB*?YBGqH%iI7 z!}Y}@dSlFae7+1B)wElhv+t(T%gbxFKK@g_wnD9%Mb&wlB4dCHbQd4l_J%3z%)89K zZgqZe53oA3o->~6^MZ%ACv9RgnGht+?!rn7JYXl#2)aTGu3o~6&& zPDorn=7JF9e^AM)+q7RLS@gm?Hv8(zIPG&`_%Q-RvFiZ?FGT~GLUKHD-%Q{%B}{iz8J00qndwEf8FxujxxN-%u4mB7$TZ+FXT z(c~y5DDXkN7$kIAi|@!&>GLPLz|C8yjKRUlVQ=;H-)8G%BwQjKi1ui0i^2o;STRwZ zX^*%XH-0TYYu!!ZRn0SA>?GO}xH0sdfYmqtm3CiKl_DLT&HY-YECA|2@2g7q%Yp3% z`6}ai*9l`up^DT(*L{DGU=FTm^3f=~^ZNTCBiSE;W#=^!n=i8DB*W2tBw?mUWJU!0QRyi;7&ev< zH**25|JLZUHzb^M=LA^O*?)TVfMUm{_O|B|!B(`T+K%V6-Apj-@9p?z30Tcxy1s78 zKNkhIRaOQekbJcVX`(?h=d0fP<}ZF};){!@(ESSwFu*?R^-@EFN;pyc zUZ$d}HVlVL8#&UNJLR@!+#HKaZ?M7MRQ^b;P*5$RnpRYMw;Cg2=7iyIyGrn*Kj`oi zyV>EC{G!dlNmkKj*sm>K!JrLTL=q#ZF8H~RSMJVo6yByR ze6;b)-l+158QtV3c$06XoL7$x<`Xk(VI36K=6; z(*(48obUnuEL3u8O8vywfgQ@U`|VAuJSpSUTF5~`&F*)N?CixVCX4&%n{gr61j!7Q z+G@IiaW*~)Uw7!KOJq8Mu_II9Y2AZO6texRMtZ#iT0a|Zbdv~|gumI~MBHYLJ#?{h zx0i7Kj4(Qh#yUp&0St{`*hjnQ2pV_!fGWp}mI@b+hK*g{>f;_qZpdyoIplAsO~>;> zs!@jQ$a-mfpTbvD%G5BMeUfGJfybm0HuEXM{#?6E4D2v&=8CbLYEltQP0PzQh?5z= zlSoMH-qK@$iDYAKy7Demc!~IGQ))KFCc^cIKPNb|hTm3O;`7C)rk)v@waj%46t&?8 zdxdG#di`1l8ips^-ZQxi_RK*iBpp1>I&0#q^GD_&N@nY7dGBBqy|lno)_fGc?8}LJ!OFQie!y)zlBwbG18us{Zy$_S+h( zJW){FrW}5PLQ#Er6yJ{~68=qGaZh(Kvy@~G(bUt6>{+bVI(&p(&}!;8y#4R&tJCd# ztG~|^CDY)cqBE2Mbaus2A6feLX8zpW7&Sz5+yC-4`6KCrq%e2vy+EUt?mqDzxE23` z+TPW(Z491BQsz8X&T{kLt*4g$+`Zn5e7QkL#;Gt{8o(1_MJ#B8IJxHD z>7VDszq+FR|9>neEM&un?xkGA{3BBQTOa%1w`K)0P`Y{<`lf?Tbx}TE7ZLJzMKS1p z1Pw2EGt30&xW5u^6EJ#}J|FDM7LC=qsHVB)Rio+jG2}q5C@*XqCnAmiHPDLBS*LJ1 z`MbI|hqPa}rpMI%EVl5-wT!jd-+ZXF_F(rX^qZoxMqa7hOf7-d~ z$&N4y5FG=<MsbWHtm;|2S2ZC%fIpEq%k3 z-9rAIjw=FmKcc{piI(BPBgwK?uNgV&1f@I6N!Ne(EKu41=xIF?r{;U4EN!sX@Ippd zYKxpbkMm?&%UPRX*Uma;JlC5Iq|$TnDmxfkp|?PN-A10C@{^5U=CoyquG5v&lNK`N z`I(itzMA>4W*)&F8uj_`W{_&KTOrR65hhc9>{m|>SCow@3gX-zop%f03n5Izw0X2` zM61g$^r+66p3?Bscnk+BTa3f)^)=>B9NLmc%cv{34XPgrg8gv?!GVA=Dc5t!21ic^T}UG?#U6zGnMye2Bg2 zAAJ>-?a88Bf~o2oaEobaKjf>Z#=~t}Rp{~k>lYeIHPEkNHEp+`@8xrTKTRt)6$Ngb zjwA#nQ|u+?Lo-VzwDY7FK*c>Dbfk6hL&fQ;jg)!3t-rIY8E4pgIc1c!tCXG%guOMe zT7Ho$XQhre`)jk~F*TLOC&;8~z>h4?)jm+y?yd$V_3JP%*fHX_2zdHrvdCVFv+~h8 zA$y?TKRnZWff5x6V$Mk5P@r z>vdBpqZK7*uWSgJ&ZV^0=te=!}6R%m^wSE2c^G(Tt+UHL89KcVBd%v{*nY zHmYGpbL@@zx5aF59)pseN$u9|aigHP8A@7^-XE}1K&=WXQLTKnw8fOU&V7i2MG)cV zT>@EQT9K}pSa@b&*p5)_K@(=}qw=9*TF(;te^>y|<(Yu#VYd;&-i_-gB2r>q8m+Vi zPA-?%b9nN%_I@9DNr~tbhN_4PzK=xgM&vl?xmQ%R&0hWNsXFqZ&b7N{DmzIxss2`Z zK%@5P3h_#(VQVd-MB*1C7o}}WrO>eM9zWdm9}7c7+JCBUHSKo3>(*+|Ihfc>2^zfs zwrtQMZfN)@TdW;eppo8@^TqwDr^4u~h2MCx6AEUu`n%l6qTpp|D10Peo- zjim&dg(E|=M;qD4DY-QbD#)H*EJVg3ko%%R(a|}7!sKW?f)tbm@^M0lo=`!W;4U%Q zARA0*I%QS@V~;u}Gyw%_hX<BM~(ppNE zG5GKyIxY5pkN)FQfTZ*-u~4slNK6LcUTB$2x;fxVmS=WOc4!-c_5F#Xj2f@B*+IyK z(g4?cT6~w126WO~2!7^!RivIT+M4?RU9?dAxi4pSgS|RCs82YIr@G~KIE)LFrlsF1 zhgk#^4c<0uKO?>=&kC!IcXTQyx&_%j#;23$t9xi`j@+=d$|@J1pd2xubTUI(cxzmn@6xTj)DDxvjqM1)-Jkx}~wTr|7n`uom4A?uN#s!G*`NC?w*H_Ixjm$3Xrzq;cMg923%Qybot9 zy6sFHyyDOzi=O2`hxcJ1QN@ACE1wqXMh)V2KEPgoMwgY5n-L7X%uK%4c%AjvDXHxT z6j6{}{`+&YFRbucxsYja_=ML6-VLD8bjsC{JZ^m+2l+rogCV`#?KiN)O{TgGwKBSfqS;w>% z9mH9E+D}LJB$y)V8@bG|{h0Ii&G`~P3bl{~f+*tq6hwsgxCppP5gfSm)DrIzcF?}l zF+_}ue*BsN6Bu&7RCmO`#ayjLNkxvbaOT@4!yfe6Ujly0QIH1hef8c zd6OGRTtdq+gqzKKAyiywh69;cPzrb;3@qRfbf^{YCYC`xe%O~T)a=Z#j>y;ygKi9@A? zH}mrTjylNfz(UMj?Q_tx`^BWDYtN-?)^D<;IB+`iA~+>sD(lPVm6chH7D!UIIK0P; z)@ugcmap(S!bSa${tHz$!!9QSaY7aUkFvLnYU^*Jg^L!4;uJ4dXz&)7LJJkFMS~OE zy|`;}3N*MED;C@}MT3^&F2NxX+;94S)+6tF*Zpw6uwVr^$vMB7*)y|e_J!-UohFYN zAtse1Alts}e*hWKn6_*=K0z zJV)-iZF+S7LL=8qpLp!&563Hc_KXfNF6NNF9Wcvs1FKE^v5aq7DZlX{jffZXG*|RI z1Z4mcyp9qz85ZE=?GcpjG@}MkD!=IQ%QDvRgQA+;cPxY+Ha(7_Q0{t?LzmbJncs+Qw-}6C6u2y$vn(gas1@#e#lP++k z@@9Rt`%Doink$8|i{KR_hI(rTPG^<&&y94+x|&j~zg2A_+TNV$ zkJ`HAADd=8pJI(7Ep)GzG+)+=q{1I6RrZJEHh@NRc zphoE(TogwwFmbRyQ$(N=a+#txACl0CbgF!Yxw|rBsaH)evG7)ee`O{-F}a-2R8we| zH)y(392kVl|k49xa zg6V}0M+0f3H}A(h=!`tIV^LBG)EAvv<;;S8=qha|4kfWYxsqHp1Kjxc0Uw873KqXN zIbW_RIhx84WHQZD;|}&yQ+_=?<;QmxV;!Gl9=6p-51I~4_;nWsui@xt`jLQB);PcM z>M-)npR4yIP1cl1KM=p*{D zFn#=80pR`asltfbv2x|>nR;oOieDQB?t`RY>Ba8Hg~TOY6;l|y2 zxgHsuBiInrW@JUK{yFz$(|IF}`_<*s4-PsL z^x&A%K5(vIdWt#vgKofGoIhDcV#9LYsK4atO_3Qvai%;Q=;j@Br}JELX#Q@1B3Do? z06(2vtQT};_eM;~c(y3{t%l(BO+NPlwU^?S&Uq;sD-mMlC!5quR(^u9ynXh$!N22EM(LEe*oghO zJ-LEFc$C?=!f2(HQ0s6GRD8o=iGHH&Fh54f%%Y9iEQsE=bm)Us-2&H*wukxEK^}4l z>Ek_zakKV06kcj@V!o38j1z`!k5goppqEM}a3uJBohH#%Mn^F&5RZX$<`T@y^CGCx zm9{19X3gb!kM1&CS36AJGUDh4=4Vh=UQ0)tE;0E`yGiH%@p8Bm#0Nrk}tW;ADq##{T;i3O=DR-Y&KwfLYfdy=LRJX%C zBXV$!%=^n)H@vQ4oH<@~TumYuaq8@^?kxfwV|Oq`kbye{76`>m3a@sc@|QkA&?uE) zBjFb;!myS`lv2S!Tnpu1%KbVe+$gLq)a+-){rg}t5@QYkx)=R?{S560Nj-C@sGRopDw~7orahGuDA0_;*dwTxxJYp*qE>R;fx<@+-Kz+;BbW8y`%qN0j#qX6o zfifbl0!b5n>N5vHS+kff4|MCJE0+p5S-4CcF{#U#4boRV$39n1!jk4zrJ%(Q?UcYQ z?DQohNPB9Tv1ed1o1UV<;sP09v0Ji2W$P|c|Dw}*aKYf#9b4D@w&rlGp$U8BZE7w; z3wOU}i}vSgB7@gZXK(a5r|^k{TK9STOe&h;fm`hvVK<@>r!w@Mb3Hxh%6{lt(*zye z_ucG~i=Rpdp|gLOe`WV5=M?dApqPvRI7Z5jwtaP4pO`|j;Aoc73b2=PIu|iVVp~+^ zp@R|t={gnG6lKSY*uhjo(RMb4~(gdiokb&FFZD1E8Ry2JYd&AX_;7a z_W$4v{m%ci5yWE>63aqFi3=wC!~}UQGqyh(%FRTP+n2~f92h@v(OWjrV77(J z6l&B&Ehu#@sgJglwfE?PTrLz&sPlYf(Tc(GFa%eMK7HS|$n!B<>nj;V2%K!wQwB&+ zvwzD;n^z(FTk7GC<8d|rjrP~IZX{(L8)QZD6}tS3=u1>SJ~lG^BPFKPxf@w2^~q$a zqfM_H$+0)MnhrXIAkgpQfh(72vg73u=#*`nn<4P@zU^Eq4VtpK?-*1LIxD2+hh*=m z);@>Bxp%ig$0^NbLX;o+P@cjnT5j;PAbO71zj0H-kT(~uYKisAC-z*y=KgC~@2iC; z0#h#LX5Y^6%x=K)3o1aV6**j2U)63SVHpSJrG1Xj5xX8`VEdthsQFV2fT0CwN}c?R z&DUHr6Mi~TvtSh}-9vnoT%r)cZdfsBd+Ukgt*U+4{AS6k+`P)$+#vYN9b%3QelDFgj1J!$I?XiCS=u}5FcM)nkKw4;yy6_WHc z*b)J3L0Vth2VB)27ekRtDWXb8$!n!(1^_{yPQ1ta1vx>9^iN)P)C-JT<;&9iJ{v=Z z2sGMY4d#f;+M$IoK8VD#y?B}GCB9%E0OsXS`KCm(g9#%P>H0XkD_iEbm_FOxXrJCr zmQ%Oq*PQj!gb}N{;eC-EiwDBvy(MK?0M8dbtBoKu`3eQ|G5?zuzm?Dd0rKQ^z)^Sd zaRc~^X-HzGVnb-`=<|NO&GfFNks+tm6Cn`Z(f9`-yI+Uq(7^R}7#&b|4tx?i0=RwM%vg0=Yjn2qXXTj9q(t(wA z-nI;gPZztP<2xIYY3h0DTy&18#<(OOtvUrnpGxPOQv z=YLApKvrrYSM0z(KWasbX&W9W|WyGpULlsQSlygp0nOdHm`wCY>beA#mba32Od z98Am&xfQ@}ERMa>ZlEr!{Uny36)wg)ovSae4^GS-Sw=d`JoQX?+wXoPDWnj>GM>E3 zRZDCcloFxhXyL8C;{pJd{rDKzd0Mvh9$@@ma@f3bQ9D(i($|*9fepKDTzOI$L(W8( z{HpMR;h6gkBlgbo_X%et+9bGL|2oQye}zOPmc=awIz0Y>L<0@bXUL<*ms_~ISF&&t zc$q&HrbH}l>hG0O10INT#n8^YC^nR7xn)2>a0Py~+hlj2Rj+D_tjuhGLW&@`lV##> z_{oBqTg;gSU(4M-@V&e)HM5lWKyV-;uD)<-GfEjX-(7eBr%E>F9&@R}2uM`9@>a<; zr0p#x95|x#N>al~o%JTsAvR1*KYEk8-qLsVhIFpl^|eBhANMQ1+Td6vk_DOyh+fJ| z5-=*nL|x^ewCpV<(GK*ygr-Ee9r~R^ZSO8Lb&a!ByMYBuSrz;b+z(L&#T&w6f(~I$%-vtKI`Fn;}c*cLu-Y zsz6OtIl58vKO^R!Iha^$;czJf38Nm90<<_;fsX_sDB&k%GSTSN9o*#cbRRLVMEvnh zPKwt1_7*a*ioBx%7TWc0=#JxhB*v0qi>W!*O~`Y5bI-)5q?btFR~fPnNa68xy{{I! zFp>H))tQKHQwaRPdH^&$f9S~CO&}=^!+OtKuim|IFUA3QFl&AM2P*rMY{~?! z%@Y5Y$&-S;h$d+XhO;3gdy41Xob$Z$0q=qi!jH#gO%~8fl zN+H2d%u>HT#=(n$n%kpDA6InaIB>YH8i+Q+u0hUMmOp}Pqr!w!)ct+9aM9QB z3Hb;#EoRN(xVn`}$q33ikPC$W5eoF+BL7H6 zmTCPHqKN|`@E8nn4~2)0zdh1Jg%AQ>^j53?xKoLJJc%JlhJn*^%@2wf%I{{gldwJ- zz+rvUCVo&^^Q#{+pt1Zm=|)N^d?Iz|`=JVj&go&?yl_zcMX$=!uF3RSz>BzN(xXW4 zF62O^MzFoz9psa)K&uNZF+;*;Kpf0afm+io_f?9v%~rt}Dto`7P=6hW!`$Z{^*ePK z&+~g+_8yiOFA5(LKZO$=WPi>*i$nttId&T0N;T-{FA)KF034&pj*dV4cO@QM7yjv~ zT2~2G)_)8)P^;LD&znen+hHc=qF0I8nOnoLPQQB<&1+;0;OX)^UBppEcv6ZbRQR;0{C*;cHi@p_6UP>L=kPKV(C2z7QVp_Dq5kV-t^m4s9a9t4h z-jST?`j%4w2T9eXWy5{6#nAUdCEeWEa)R9ENk&~4qQ!QMP!ML=Glc9opEH_GYcUk& zi9t>5VXKE!a7%&^JFe7iGyI~*rY4e#{%ry+SqT#oM%7Yu^y0Ep%e%NK;Hkw`#?mbvGF5&es|w277>R2&Q@2fu$1D?Muh1=^s2 z@u#?DzwL_O@c!$_EB$li^Op7_ArgO&ypQE$;mr%lhf!Bx)%0=nGt+#0h#S7_4qwRc z3cn46t6T8&yme+M&q)xRG56vsYTH-2eT`*GOrUjuG;FTOQbg2Y)VXUj#HVM#FeB)8 zJiDYc=nkiDIzJi3;afC%{enB=wTdHeIVP9q$Ja+9R7Rq+tubBC^2JBQ1V%dcw{Q`$4FMVgnEQxe<^{6Gw)UGwPN=1=moZxuM_$5Z1S#(_enp=!r#La_$V6jl!jA?9 z^-94=)s;jd8+9#|sD)^}PdR+qoP3pgvUh?NXoSvA(b)H!ApJ>JnjzrWpj4iFj*neNa zro1jdC_F_u?}>J0FD>jdYq5%V?kG~7c-<4|m{x&N4-9j*B89I@0s#CKa2-TJIpaRl zd!Kb2NC4;`7&WMd4#}C~mTod3|5hRt32&+G{xTM?Zq~P6m5-Ia~XqO7|jxC8iGV#+E63)b|l7WxY(({S&0+qFwm)kcn#C+TeY#mva z_Fi~?0CtTNhSwNfmj~s!XZ_5IndH0jlw5%|y`EilMX*VK;bcFGzG22PK0f%!b@^fT zP?ECeO^yM&A+hUa*o8JFv6lpPHGeK-%mv#%U7&4XjqUOL)1xoXGWrOv^S5IvI^VE$ zoB;9(t&Kh_&k09%qf#?wJk9<;Uq`vbN8v`2luuqre7xcE=>8|+>;`$#5c!Qc;U4~* z3$XO^KO)D2QRu|t01kR@X&RgZTCb`yAj1p-@SXyjG6QTY! zM&MD=GCI7L01bi$B#Eh(_wPpc)4llB-ONdt`Fbs8>jl51ymoMH1<8XEC6gyghh+(L z{&~xMiLdq@MZNT?m$*#)3@ghCph#=+WKf=)2w*`RwXMHI!Y%W>G~?0bF$VVb4LJQ@ z*9B8mQJeLUaC*lxh%=#)enhR6zTy3nATy6G0M_sm>*39~=;lYPbi)mOxUwJzN*_%n?Fi^e0 zDv`YwN3dOb=WS6ISDu0a)=%Sk~Y&8*_JxJXn(@$VS*UKFK)TLVVGFR5oh^)e`D_ zOg7Y?z((J40zS~Z{9?iLgz*MU{&bR}W@x7ik=mJ}OGS!@593s5bs>{H&2)Rxolkf) zz4hftV*PCoW_SUf@5QFeJ&qT}zLyvG6b^evNSS6A2r8Qj$L!l8A`Tn$!_(XVNWvml zgda;Sllv|ki5}R{p4R$T)G>~|RT86&VM|eBSUuFCLEZhMvv`wU_bdzk_*vwRKAr->+~#&`DH4e$;7tiTGfzGxf8cArYwd zrfVCXg*bc59Y+%JcJcmB)~P}Vu`SXf*YX)KK*s}?CPKt}d%7#uG{*_e zC1sw4CE>b3$^|$ICY?+7Ed~Z5rVO`SM?4d&g~7kKR-9ru|9px5Yy0?J z{3`N9pIOSu8kd{#WkJf)lqTb01SKGqOBUF8f=NxKf(dMKV9( zi&Zc6)(MTrb5m569;;dsy zUj)6(CAjFeZSZKzuI%}D@ICd1X;uJNy zTqtOE{(0=hjv0L|H`ZagP44Jzy*6sV6-&wt_{|sk+ZD{OJnsFKDC@8w5ZXcrxlGiH zv%8Kh(|sOd7V69S!Tf5w9q*4JCccod*_Cd@I-<4gb)}x@zJzfgaq_0QRttl-XAoR{ zC6NJAbQeD$;QgHa>`ynX%FmT#6M5?Mvja^!(?wbBw4|PAzt$hY7(=T(q$`PKm!I1K zrHx*3U%9OjED-ISh48xlQ>X~J52&X44jV5)kh zS2}mkk7DS#PB|aBp`eo8m;m|gWxjA_zjC5HO%jbCm+seo_7AN_M(Pye^m@hMHs^#KW+ac61MXJ?DpdoE<7h0XoG8b(k+;ti)aW zNbD|wbG$9@Qh^lsN10=hPUJf?0HrIB!p+U^Ft|zhhg{j$OAv`?zgIu=B(IiEJaKEJ z38$H3ezvKiOvwe6dMSfEaIx)?T0s4Fg?IuZfY;IjMheCc6`bJ9_j%YcH9wjB5tc;} zdPjqHy+M(TH`f-9MClue0!C|0oPi^#SZPot0^oh)#28d~Qp4|w;}(NJ|4+DVMAr-K z<~)KxoxO&AuH$!yOn^9pPYv%+z5q33y+gV=)x{K0H|ViuLU;VJS25l05zmjDvg7P& z)9!Pn*l8YoGPXc?7n*SjvJmg5mb0m=>Zhf3UxVINRS;AbE8%5{eWczhJgZ^Xana*v9qGTZFB3&xt` zcuH9q`WP3++ranhD%IpJC^1tDbo(;)t4`Zx4GNT4Gp{d@xd&g zq=IQuznFRLe6D&g;e^nGGuEb}LP0EuzeZkek(F`;);~C?zU?a31Z!TsM0_e4_RG)f zF`jSiEseBkp$N|_aiPHshN}iQXvMZ`Mx-^&PaH5QQ$*~4Kf1hTyqmfcx30WTYGg2O z@r`0ts!>Sh(eNxtPn+1%eAD~HMf0QDbpz39OPq#gz&)u(&rY6_@u?*y%GsF1 zyq7l7c8oK>Mkf=~+zLFtei0=d=sxYo`E95CYf!V?Y7ra5tuONR#=an%SYe-!S(Cc! zz_OAi_g=J@W1gzO!VGKaPbFgqS0~kzQdXr>;mXQBr}6ZA`lP2>3~Dm@Lm!BS)l<#H zJ~TW3Xz1{z_S3ikC4NJ##W{#3ckpMB1ftZCzHuVB>^*tEM5?WjK{_oI8L*^yVK1yq zRqd9fKDZ9MkzW!((X;KZ4kzAduBh#@lPZu=@F0FJv{Zih@%i!aW{$ijqFAw17adH3 zVs3BCzcUk(BfDnBF7vkE%qZXDtoVtQ%Bl^*D93th?V0wn`-cGLhZv-!ys&~=`b?Pc zm2L2FUWTFE4}Fv5NS+_S1YWtDnbML(GTW*B49}vedg@>-MT?a>*V|0*qQQ6rrOIzv zF2-s82iKCk!oLt&Ul(s%`ro>FF?|)#L59L}vGZI0*f$tfrLgfnmn(c@Fh2e<%E0-3 znzbFJVbgELs$QWHV~Pj%;dnOzZPg@?|ux?yi1+4e@=H z;FM13c}Nvoi&{@jNiZJ4{^n)7Ij5bAr{DTKKJ}swp%m`Xqq+RC zBD0KBSZhEfO_lFP*MFn+Bb3WJ`pS94*M)qisN*N{KQ{ZHs%5}``%nM2=;zhwSLVhP zO>FJ|AD{Q{m;a~a`R_j-EJ4ppHoPuU1PCzvV9@-=$}Df#)0f07o%SsUZv@;oUz%P$ z9brpSWnys`TI;abYcMttU4L3VH)>hpka6EjQB)8%%riLnaZ20{7|qPkQZ92?w0o$u z9p(1Cz!*wOWhu>s+p4W$FT7X_0}mSPG# z3kKlDl~NWFMm1X5inI^X;!!r{M%K?y*;#7zXiQhok0yO!tjQ&e`domlF#4U;AI4UG zT<7W?`*PB+wA;WTEZ^<~ zv%F@l@DiMJ9hxxJJ}?thh6HX0cijJMsP1cgGg_qEX5o?XX{r`j25UI1ka!!P+t(PZ zt7;rH$CX&taZN+fwr+-Y*m1`$u(q}5l)B^*xLEha4aQ-4MMUO27eIaflh{xk%*H>M ze_JgmyWUnMP}>$$&}>ip{71)O#!kyKOG{ZT{+WhF1#5?hGY`9_S7wHTXHPUe;c86a zsy)AeKVYv3R?X{qGtxHJyS@!Y-EhqE!uLV|ol;lEd#Ws3>4_0Qf_sIxQWdFP@f^HC z8rvZ*IPB#I`Zm$e?}W)~lx;?fSK4(~eX9q~_Fla-4}G~j;Qx(nFQq>#A2QIow=vy5 zR~QY6e7o44yfY#xZ0$~$B1bD@PD_M0|J$xcjL1Rwe1k|SsVskLUr2{#(pAb#AtgYF zvUGP+b^2p8vc5RcHdXr8qXGLaJ32L3T&R#w|7rQVyhPj0EhP?+ z)m;+~X-ktc1^xc1ss_p{cA zq^0Vd;a2JVekS&;Z=aGi(d_VvHmlNiix+zY+M>Gq&qSzqOdgZ~)p|IpAImsZzrQW3 z(fRdEqfPRpZB&bnR2rl2z)lFjO;N~V@%!vPG7=e`s0OdQX%PSYiM6imt3$_R^R8)vZl+BX*3~3w1z|*RmVS4j&-6w zke{qiOI_?I^Txb)l{#6y6W+X$lM1Yp*KZEI3z>ybuamhwF1;;HIelgm)Z+}lZM9aW z1&d!)t(u->U(W7-YOH<7qdYp3Od0e&vx!jQ^9Y+E_}+}oGis8{Q~4^ag({66dBJ|Hy&Qbg(%C$LR7d{f_kcAM4 zUIrsz^fi#j)6%F(LYsSPc?e(w%nE?Ca)raM47*W4841s{}ysLU7SZ}pUO*1k`pv#ce}DN zV2abBXKsdulqC9l=|~tYfH&?g`(IZ^-E9x8?VA?LaQKB5;+>NXquXS_0Q%7^LOX74 z_1I+XzaQ)o3fkUk3gh6ZLKjBU`Ei77Hh047U6R-U7p}>&nS6w|?xOe!6GxnU*(*YT zrfyUeaj`O6)o#Dtn_~JN2^#BcBc25A&u~6k@~IKKy)N7@bFDgqp3Sn17nHT=P)VEd%__8JtH!9Op~{g{VynVMb;-!nbN}HlJ|Fqp z+r2mo0}jPF0Sy#aFRc{=!@mDGT7OS`j^Hq7gHFDEp%wOD+X#I335^Kmkf}}tL(4*J zV^zAHgd+T6!?W*|*C2EhD_ByDih-j@9DGFIU9JQaiMA-QvZ&Pxx}SRsJaZY;cc!2O zcRbi*ZJ(D>nVJHb*(TBL#c;RJRHqEA(4sPXBs`C~F$| zUTCYk3Td@H^QF^yu+9-Tr8(fUzPs~>9yyIAGqU_Ak7K~b`g_(EW{E`s;nDqgnoWHa zHL@h3e;=4W?;nYp*2{)+R0=7$xe&1I##%#fJv~RiL_>+$-Yx)aVP*hVd_`U6vWRQ> zl_-EWqxkxzm|G!5SqXy_tuev{Vr1`DfyR5pK#M0J22-}W_M1GgIk4*6L@pz9?w}&NR_!DY_ zel#doU|`aY^`9=`Uo;5UM?Eh@0Ni4~0SC2YyAzoh^YZ#lF28=p8`HJIU#gn98qlbcy8R@?G8IsacR%_EB zRUiE+`-vT@N03}$20di4I-2fM_waYbvIMH(JE!6(nv0v7YJ*nOEJbLuVqlS-mU-Dn zvCmP;6xq3AmJ2$#OZTMjBOAJ7hiAu1TAp@~rmd9DTG`Ti@$&y*pUs$$#;;{0dAwBi z6Ov3kikx0ThJ)=Ex<(DLah=RBtz4eD9;{+*J;1_7Eku19UubG}zQDN4@q0sfd!ohV zQ}>+eXm%gcm!s~f_0q=r`^Gah14$T)BvdWF^M{k<_BP2Du)jpVe#*}~0Ay7%^b@6i z`tmf0OQSaayICOqmKtb0@5G2t#Gqu@24K*ZfQCtcBFb;;9KZA`(<(h2nQC!+MJ8n5 zitftIx!?G(EJ%^#vh^AV=hGYOpSa4aXXX>VrA9AxX4`R(nFL^x3#@$h@x--dm1r>^ z36fc2ASaIOr(VD5HSd$qX&)Tvw#by~#$g1!xk! z%=u*#fmX?8l|r#}kZEHp${d-deTdrQ6w`Hg2O2B&bKHN+-YPD%Ru57$K&h9`KWJy) zGM*1u9|nw(AxugjzTV_DG-P?T*BxUFqkz!^XFBk*@ATT=#(9DSENQbDjtd^$TgQ$m zeZRUzCht*_O6uckEW&6Kcp+@w2^;=C*7l9G7Vk+&pEd|NMIb_AZ?5`^5Zskh4>Vy@ z9BGg1v^b#ft_H1x`VdbdN9y2wkeH|Q?uxycF+xzi(-q3O8PO>+V^zC&t6G_sU1!J& zi)ULz1j#N(;JE(FvAmyju3S$lEV}Lljc(j^bDFXmc)o1#txTOqQ;Ofxg2HC!1!vp+ zZ<@u`kHMYD#aYOCjtOJ9>!&x_lppJ*Q41A1kurxz^HwaFo?ml)zhHf$EpkW!b!E>w z?x(Fca`sA;2Xa^s=9=e_|907Tyo^jW3s7VCIAG$m*{XDr$2t36Z9=sk%~&UB{w8cf zwLqhopjWcg%r3=Ayq5UKGV_8(hWzd&|8@0vdD3(@YTw^$vLv#sS%xC-i;>Wa>|MLD9Z>&~Z zM)%5q76bH?kifPIo;b(l+HNX#_)&^C)SZ;J;xDaY#YDnTW)Mbud;~pt$Y)6GSL(J3K*eac#nGrGhdT zJ+oin$3^)81X7M%~sLw;$b*LJ90K#$V_`v*T0oWw?Y0{XE8JY3ylx`s9g7^d!EInOJnG5!TvESF0L%P z+X$v8`>V}Q{%q+gh-w;ZY=kT*y$Gb3_$i|qONi~~@$JCy9p(mo`W|Tc_~oUq!^f;F zxJxf4)Z#@xiPv{J@QWiEpIISk$U4SuHz%j#TELT}OFn6{2;obt53d8@l?3h>^ingt znLGV6InQ}fN69`|sK)o4+?|G?j+`-Yg@8(=@L9A7wLv3u8Wcxo zeH1bg(oCp<0ER#>Ld;!5d&Qv229fIIWPf$EG$WZ&Gig@nZ$x4azz&Fh2j@Fj=laC0 zj-~7OF~l<}&w*AAP64K>dzg^H_eI7@=YinDu^&*AO!Qet;Zal*E9-H}NjeYi6sb_8 z-YXG6#~!#B)D(l-((2t4eDy=3+Zk=c%SsO7A0!+vI1$$u4KPW|Iqr%uAc&O~=M6>M z7*Emn6&*oOtTz?-W^w+z3UHuty1f zE>ac6SO>Xa`&?HOp@=m`y}YR@-1ca{_r_Qqu;=%bKAO6gI}!bx3jiYpaHK2|GfODp z{eh19^}6BwQQP!Uk;rQDknrY7%Xx6_o3C(P_%W@RL6QS-`-fYD3G}Nxkov!v5*oOu zAQjY~ev|2ig;{L0bi3(zVlLDwybB>4^X=H-vR&E_$iSSy{h9q{KC}d9EY$KVCGomc zF$|z*J|r?M#r|k2Cy>MP38rejA!3OcP;++hBs|AqnZ*3K8f$(rex=yeQGZ)nVat4DIAGU4|a|s2{IlG%3LE^!p z<{ox{B`UvlKi?U)wW(C-E;B6uhIHiwdS`A`{kU7M^LGYjm12j(-KE=({wC`uKE=L| z7{Tv=OLj7N!5#Zg9}2U~!a6PsFwRv!bqy4aZH82LW6@F!#@nlF_X>>eX~uU)DScNa z@w2KY_7<pM6yVALI+o8ukkL)xT%+csl7Q56~tqOq~+$%d3tqnVHUAlL})_c>kh#j z(!;)#R)Md5F=XADUG!$m!=E~Xl~l-Zg6B(^AJuf|Dk=n#FyaQoO^1=c*A_xDI>wyY z|7fABjC{a$zs;=m49V*9ulAii&i-b$t|s3^QUPh@ON*yamYHW0f6DMb<#P#%zae8! z4+kPaXGg-WEaEm#GY6@{sCn;EfUxHPP?a%R${@q&ze=sQxb<}ZW~0j3!^_Dm11`~c z;)D@a;&StQX9%e2qqg@U+O%lXUR?zCMDccJEjEGaDqvttu=K1dv2V+DP&H zqf{cAp)VuG4o)h{gQH0~UmDA5P)l*QqN+dP7V3PCN#gr=ERQvPHv6Y?aC*b<<2p`J zGZ|RvKC2SwXGk0vr*1}d@540<7Nt*G`r=bfeXMNWiro-I;2?;2TV*yowf!1(TwTq zs2XJ?8uK~reN@bFp!@Qb@N%h_%z764nB~42HwN=_Z@-gGo1^LMCf}g;7S#InnhW$C zH5YE5S`ni9gAre-nWH#~4Q3JoFMasBEJS?K}&r)N|w9`L||q zwZwXOLWQz&vTe2iRHgT>E&Da~?dgJPBgy)svXh(UT>qw^E~FaHWXGGFB}hV28~4`J zq*v`m?Ch->=oSRWEHBE-R6uNU6~PI$7i?ua zE=r_D1 z-sm0y+_79^o_cr9R5e({t6_{pyVNGkRI$ui?H%19#`nK?;9s-(pE_Y!%wu4ORNHE6 ziHC`g>VGh58q=H*(M&61kZPEo*y=plXhcVf9B9xs3xunQNq z#a)7zJE;!wxL0a)>j|LgH~$(nP}jT)SwMrmYxnKfW=eL|J2g`{I(IYmPu#l9M46|_ zxBaAIdQr-zJ2KEqGp8b>&%@*SdwePH?W8aCdL;VRa=Jie{go)E>!$Aw$w8b4+&5Sp z<83WY>Tq^A@d6a4bFNc%mgqQ!ewtK$LaH&2`SZd^Dc4Y~YWHg|Xy=w>2F*sdpCbL{ zKo@_rlQf%=#wWUtS=fb8$mX`8`?WJ(| zmAx?Wx31@aLC(%ON6b}oMfJ)n&{938t1J>lJ=Kz}XLC1?$Df^SOa37iWz?Ld-u0mO z{OiuOzQB}dQ{+n4+QoR*Czj4{W9w<$s8K=}VeX@$Eh30AGqCuU$}AAgut<#Cddf&< ztj#iCR%#u_x3@%9GZcjmE3rdAR{8S@Vw|fo`I+y*bugev(c@nMe-yO{2eJ2Qi+26r zwaV8Kf6Jv{pNcH_h9JPym55doW3KKZJpUcpYK`av97W4Z&0VgrhULuuDdEUqSSRC{ z3>W(%u`+FF&ll&6)RpplMq@tg46JrVeBKeFrJN(OixU`LW^@TDU*9WjC8VUJ0&A83 z2sxy0V_uUdvR&MHG)bS<1pV3`=(wXpaS061GieVjBgmo67^Ra5!01ilwKO$yBe#?^WZD|wBU}8NNw3~uaZbm7{J{=H&o>v z)@vazPog_kyb(R2PBJC>><`D``9{!c_{ks%9c%cGB@_wGjxDQvsGI7VxLgiYn}r<5 zsZ$?iJZ_yIrLEsr47M`tS^l!lWfeH;y@>lSSIR*sl|D~^uUx77?Fn^zYtY+k9=746!!t``6|r5C(yah-`h ze@?#Kx=BR;#9U42<|5@v=`T6_`BkD?d^v%yJfs-{Y30|MuI(GT8-7Q)FT&Xm&1fA; zJ{Sy3?J!-$Mvd`AKu~q<<c1t033FfZT}IL4 zI<>ie%z3_by*8`4%ghA5v9w~MK@_?6IZVl(?NCv))BT-Z6jv}tje}diI!b9kD;uu= za&Az-c4#jh4twT!>Y9hc+am)>W-ar-A3L=%%N*$B+eMjO2Z9V&#eqFKzR^z z?wu1f2UA<35iBRpzLckuir0cQ{5Qy|9mqO^;!VH7x+pf|`l#aQj=$QwGsy*h4`^VLZu1HH>4ut3s8BG!jqWvnSHDmHvfqTY&Inus(pvdd2oLcmBunBK{SLK!M49T}H;pa250}Tqu4C z(jPmww%M_shK?^LMPn6?bA*}tqgi45Q==#P*SefqM&9-^XTLjPRen6DwVXrLf)sE$ zI{%TKzPID{eEkatKbb1c9h+0nW^TrGuQU<|t%#iOZ_tj8ncsh6hGAwQP;V7R&jKj9 zVMyvE^9CKS7K%-LfN69mQ!-W2`&w6{5jfc7hH?~8$3yrbXUs@iyupRoAQD^k^EzJ~ zk=Ao)j~$Pyg=W;+r{0)x;6vCya^xa0G_gAGA zZ3D7k$Rfm-^QBefjFuT=%{Hi04F$&oF@a8YK<{7rJKh`|IR8S?T8`=eL?8@i$675b zBe}&-W;~CwP^?P)_NQ@he&&>a2K$NNeAGR&>#cc}VqMkeFXch5xSW_|wr1W)T{bq; zx_8|+dg2arxOBih0=eH_E1pxo6%yIYb<{y^9D8HIlCM@xL=^6o3)CfK;|yL%rp#4|18u|A58VVHRtD>foEWmgW+IGwRK^- z7=C2|4Cs*v@9gb4c=nD9Ecs)+cn0(9jUFzeCu}0}=0gH^t)EqeT07_(OH1H*0mWW_ zGBCE108@7aFLt*8vxXVuXn(l-;WQd~q{pu{3yCN;E&I6B8N9UUOI$O7IILnM2GQ?A zKky z!Wl$@`;r2?eli|JChN@>chlBm*@qXvU%x4OUJ!yu$h1iYsBR&#P;RO-_<8bee z^iPgdi*Q&SU$o)6Fp*P{m!{n3$ehgvax?Z&3GN58H}(zUX_Ge%(oWZE*n3<0|0AG_ z^&tsq)@Jz*Tt({xE6*=_+G@}~gLq-JzhiS-t@>2SI(`!}KW|d-UuH!F;KfRoIhsuo zvLSc#sbT_OM;&?NH$%?Ciw=!?wP+Z;(ZoB#4G8%j982{Vr;2S0?0)2X|3$dzpO99pA$!4`-z(} z_W0{fd0z`>GX-zoSr@R)2M1RZgb~~|j&g#CArGNk4=q$?p zCa5UxDnq|lxTw{yh3iQavKq}Y=x=(C`Y$qyx4)#1dz=iZ>Nc}Yw{ABtk>%A?qRMx+ zsLhfzAGUb*qIW(qW-Gt~Ez-Q(GTG>mtZFb-hv%9lEj*adVmNjCaQDx6o)4Ck2`J(q zBA+wP+5G0+pN{yrp(NX<%Yq6txX?W7l7gVjzl+vX%F3~~@~hH5*+ab{eMTq?N-yQ( zt$Y5(weVI#Rj@ljuUzZ9sr4P8`)tvOi0o$}j&6~vRq@?oh|j?tyFrhEp41H};-*7Y zGCrEElbl)yoZ<&WpM#-5lRl#85>pOBHGD+IfwALFdA%p)YIvyVkq)2YvymQ>lEOwC zsH!D=ozIBKY54bs5J7RhBl+duKM++5Zf}Kg0o$)7J{9_sA48&FCP7Hb#zXus?+`$a zS1iQy$k%rnA$^s2ChN~bOJkQ>Gx?vP_D+jj^zXC3(z}LSegH%N;RaJ|->C5a-h5FI zC)g9M83{ejtiKeNhRj~A%F4j$Z6*ng&?pHAvK)TCWegtFGraV<8ImOdi6WW)5hs?^ z?!63-4T$ANaL;`zT=MS2^EXwPaBCg1h~x!q_cSqMHpAS^R~ z1NjvdhpdZ-6b8^^$mk68?@4CKJavR%0S{f?5b6R#28^ea98@_24P3|X3IEagj ze@|*@`D`4xI}O}WJJ;Fx^)DRJ28IEd@j{z;1Q8;HIcTOVkGF+MtL<2xqzWG|N#C+8 zzkXPxXcWx*HEs(0Qm3lgVwxf*V-_#H=`_1_U5L&bQzVh{-6)8t+^WNFHC$6eZ~1iT zkHYk~bmTTQ7;p?@iU+J(8TP%x090u1C#LrU)2-N71nmxFnoYufBoF^K* zArD@=K8F;<^=_un_EOtR&|VcaC<$y#NU-z^H{M)*M&=VD*MM;GOlFCao@2~NE>?0W zFUdZz3C|LqwIzlz)S2S>7d+CX(uCt-V9JECAv(2=^N#WF!e_R}W$bm`i%3@w_!`#g zKYzC096n{dn0!X%0WOUBeuvIUY7SfU_tFpVzg*$eDo@{?x3L;SD(hG0i$mA0kBvOx zN6H-QQ1Soc*BF6S%No4;NZ4Bk!LK8X@=!h6^%7(d#k_c^It(DwKAWid|&>NDE$}s{fe5IH@^DQ19HlAnnLD zGxVAXG;2dIOa`hIGDZR|o4!hyd;9G9yh#e_YpuRM@RX-?@LJ6BqwbAa1{(Kd1|$}DE##UfmN zg?cY)AkVjtYUNGExs>^#UOW5DB3ZM-kIH8+We()DWwz=tUq7DhdqN;r)yFX|nJp}i zcSzE`F4{hrtphL5;Sv3-f9X?G#`c%3F*fA{#_6kYnxEDwbHJ;($$=kPnL~CE(1Wan zb0RMFKU@w(?wZD-M*-Z8p)3?}w|fj%+%(env&hG$_?66-Dur=HmD#~WPR@;>rn9i>ce|C{P3U?4vd;`k2Xh)1mgkY_80S>zl!k9_NYI&x{VAn|z7F239j)j%ikZQYT$ z;eDnG(Oq`q(RcUuM_ohLUr(W#_$YF1(~uLkbU=dK6flHO;yaCL)e^Z}v-ExG>PXE! z2AE9Ja)cHG!nNaD+Y`2lwS$vFmU zwF6zI`<%-6Gk`?wi*2qje{p`h`Q_(p_I^H~$Gdgc@(=T8_YnP~0OMla#9IGVMA>Y} z=3osw!O9s+4@b^hVH;K$UxUjv`FwR4>riw%%2)l3yOxqpbrOUHM^NC}m|r9^G^$I9 zt&(y-vM+po*-7zPI1OKY^CeXoa1&+v5X0IevS$M#OIjF+DSL6P^NKUPRXpE8S7SEz zkqg=RYFXS~cHtrCIUt$xqU8CJrda$~%Y!d1)nD1)kwr0p0+^BCN&#EewmH$%G&$}3 z*W(Rb?Uwd8sFw#($}M+D{>~O5yD%GTxDV*jb2xJ6k@2VbgtL84+dxl&R{73%d5cR5hBd;;{%nhX}5l zht2_Z$@(9+cdl@!J+y7BR7-+gI$P5=A<$Lzo9RIs6*^K;GI%|j>_nhPR(+i~&akoY z0bv0BswcbRVNOO?y1sm268<6B0jE%4bO=H`ZHd4iW)H@|yTFA}o$=H=jX zs6I+|%qPZl1#YbL>n)6 zJ;r=27O0-`DxnV7mMK*p%*G_L8}pa1oGR8qO&=wq0HKX>s4|`NIlt(;h~XG~s)6f6EEw>y->remd>=QUXCWwSrWEz^!uv60q&kWDhUuHkIcr(Ol&vJx4%gA)|0Lr#>Fep1(m)ElMUGyVl z2S4HD5HT13-aJg72c11MpI(HUo(5eOmfFY^EI*m3cqk>1<&r}^F{0gtH%TR^;$|;o zJxro;pUvcLr7^kuByR_YOD86K6Bsg}V8v=7Ed_9IXw=oGHfQotT-Ayv(|41%cYMs% zs9J!x)*#ZdGpAkr z&>I`YI25*fubITCv9r7X8gM%SEfi%Py=`gHd~U(p6%h|30e?uYKM)1WWYQNEwNPgy z{b$i4(jV4+EZzO@ zR^AePsJ^*teb4!Yub?@7rdoN)M+KKEgAYv!j+y&f_})4~FaY6xrDK$_muO295riP( zF?)>RG;>eVa>qvm>ZeLK zX$y#%)tMzb)kFVHADyMv)#KjyvR&-3egNyq@mA31=Ksdft5)j*655cO=e+DD;qG~m zsx#WQgf1{8TgVCVV*{O*#6QhR3+!aCGN!lmp7JGLZEpNQot+N=`QZ59wIBN|KBkqr zHk5G^_Xe%C6dZoqmq&_+DtyNv_V=SVy;RIBp_Qlij7axs>6=c|^`t>Y*IOaHJ1KV6 z8p^!a-JH*ZC>cQm&paW;>G>352U=Fr6nKK^2Ztr>CmujoaULqNKua-;6*Liu69cr3 zY!%s8=AZ@?c@(!a*!phK>udm^mr)~|W0!&y#XT*7231K>K3|J`CE$KmcpNfR{&B4TE=`+1Xet z>vd(rcfD;Ey}K&%2}wD;ba6n-=pac{K+B!$`6f)Pkr(pq@w?Dn1SLdJL2*pju5~P! zu-tht7ayeS>YP;72PzNVh5F%a(-E}mTXu;4 zz=)uhjqJP^E$Q0Mmllj{ihsA{`1q@|F8hc9>|yg z2NN@Xh$t2fshaKI9&sNTD_h&?RW+StS0gW`D0z*f{~2QM7#zdt#cH3eB;BLXH=;{IjGp{?g|5=e zUU*pl{?YP1;O#X9Js$k7+B;vs!KMR0DHTPlk1ENv*0Tt8ugYpcwzWyAnHiFeX)zI_ z*xvXNk-i!L#tz=4o2#R`4S>jckS@XkIHc1_9nU!z_gzMZACh-Wp+0eDGqbFeDF5u` z*Vk~IuV{<+F5EqK_=8o9^ywdsYefNz@b~Y|TKO=!+=&CLx&R*SUO4wW$hRM^Qb33w zu_1MX4r%I9lJW4Oe_nBoCYwDXMB;T(hQ*vz8f`@AR5Pf@W`zp1fth*$N({d7+ zPu@>FSLEswv}*4E9tGcIF5Zp{1d7+9|J$+j|w{oAB}8>D3{ zyV%W!0=VYsw=Y71ER2=R_Hyd`kzcH~^Uvrs=)VoXJBF!g9CDyP3SixB0d-(k1b_?B9pZKXvG1^uhTr}yb87-Zm5 zG%;=q+cu&ND^-AdNw=un7mmLM2=N#6-zW45VH5e)I<;VlJoV|U#zDCeuXr?lfV)u% z)Ewx;xK_!%wUAa6r6K}-Fowi9O#-d>PZD|vXkH7sd)0M)$#vErKi&2AUojQk{x*86 z=eL3S#Zcc_ocUz@kS}WMxQM_l^*vVhva8m)qF`z0S$&XFaKw|Mt6yWu}_hvzuAln zkxZtsx;kg*Rvq?CNt9X;EOZsgzQ_Z+H+Zr1_~qcIzjJiT@IJSvuilmWj@1xUgk-YJ z^cQ!z<4-BVW>cD79HK#(D>4iGMP*cWV~+dVNy5o1wI;}74H4*XMCHMbopHsMK1Qpe zN}l@%ttR_P_;evu3!1Mps>WU}Pol?3Sar&`y&?=IcgB--<~DYT<7qvO>Th@R5Zkf$ zszFGx4#X`|IxbX+*?Tw0)PghKKk{Sxm03Y&;A|`{&;P$n-F^jE=J$ogWi=BP`REVd z6zLlfi~dmDI@XMrOf(+s6o)hCc2bmM*T|?aI#+htOyr$G6qrd@rJb6E+Kgr1&DToG zbdG!7xQeY;Ir%-y6CoCzs&(50AAZ7$hrbH9Rq83fJ8yn& zD)hOpyBQkiyQD>1`DQ9w0+XA((eS-{fmGz&s`mL$X1|fTD03(*QkvEXY`}R_-;n(1 z#$Gh^CP+S5tY)+5$@fzj{P|T%?S>YWYiwfwZzf42BQ);Uxt+~*st>+!TD?mo8s|jw zv78&-LH8)U#-z9;KV^sewqY0AC*jWh)R1I2U!lQSB_??eiAZODRA}yG?u`+91up+( zP53z|RTRLOtiVOpM9aXekd zxhH`Cgn+%+^AZNx50BTfb|r71FKEDtYn_Eixw7*q2G)Q1gs-UXzSm8lm3Xs}$jcg1 z`HoT&CLTF3CzsUoV6}Xt>~WBisHXDX_#x2VIn6Ild?{7jE@aJMH6tv=){y9Y)!=`w zpN?YPg=@XR?7AlCU!_C-?ror{RHGsBV+YO!7wKg~rqy#wFzgcEXws({(XE@H_x->`xhWAI} z1*Ye!-;98c-ngl7<2DgK$~tBwV;IZTVW+U7jMobnT#e>DZclb!O?1t97AeyENMm9A zmSoj>xw~s=y1Tz4@v3r4S8%dYH`u9A|Kwi)8eD9UPViF};ZDDhyaL z0==2;i90dKz5-WbYfI8q>w*Sk=U$yGIy?)5c;9kWoCAklG%M9LYA^g(1^X zp)&aeg%AIPbbv9A)5P&hC_8!midD=tXd_Tl}Tq3nlh;9t0&h+RmJ;HgjvJQyF+8;C@GTc#BF?)y{l=gY3rs})I zJ41 zudDlV7QKDxjC(vtpV-K-l9xAgBKsVdi^M-Cu}vA6U5llO!$FDgrt$J$(OZTIftTfL zimv`MV}pKGz3aOyh?)=IU9YU~e*LKc=`>g1sR7W^cA!f4P_>9*@u5yQRTn;wFP-SBi+7QVm~$GbUsF8ohL36wQ-!dh!5 zb$kwOsHB;d{Z?-8Mczh`BG@?6r4v}a8Kj`1v2qzh`tY3$)`7k+uVN}j@7l;fPjtPS zw$8mz>pF#3W~Lc2r?dE{&wU=Cq}V3{zBcDg6`I;BlRG3$3*}k)JDj(src~2uF<7vR8l!S8@vBfxZh-k~a)KCr* z;LS~m&ov5j;|N}U16|3UdV7ZwdIu$|C(zIQHYDf*x*Be&uExUFO&z%Q`*o7*?rtQP zmv4hAOUNkf<}R8IQ}pI5JgHYt{=j3vDH#CL6ux(M2uD#2Jgsp2B zLCEVv@PfNu4{H;uxEH8SFc0nsgxX%7GMZnM_5;n(0X1+}eagX-SD!Dwe>=?5MfePU z5PuM-V0ciSX#8GQw`vo|f9p}#>6#5#uttJ>f+`S#b)NMMqJ`50loRkKVRs;^wMTl!AARFkbP(DPG9c#ZH6sokI`DSqq zB3#RgmR_>=;BDSxhi;F_g=v@H8}s|nwY^mdA;vdom|o>XCsEGkW~)()-=UF3hl{Vy zIxe5+@uevuicAjvk(gKbZ+9=N3gWwqE?xQq4UBO&A1%S4|{uinX2k{g=p7uNwgicswSV$};r3tXe3af5>_q zRTw|a5CmPkA`$gn!ku;c1O4ZjWQJMFp=v69IR){9Z-n&T6bRUkF`GvV+DsE>hXzf) zioeUw2#K^x!onTy-`NLmGFEnU*9}wlYE!q8foeSIu%*5s06iA z8wpIe_Q2A;x9|J(&SJIEIurVpf1|wFPe3!LIdqq|2ly@>mKzH~!eT&EEZ}01PKF#$ zBF9sLd+rB9Z`n0?BrBh9REd>{BOPC%HB_ztzEXV8z!YqaH4?$wqMPMe%vR<%=c?dL zxOObpe-Fdz+?!8i?j7K`!=#=bBBT#6R9eESSH6O?uZFq~kZqN%(IL^7Qf=q=4yWaS zwFIL!GEGaI{F_Bu&T77fO{7*rD}6FR?iIC8iK}W~VvoY-Mt&waet5K1bVlh6!{?7O z+<-SPNt({~+QN3#vu+Ojvov%V!xw}1WUR~~ccii5-@AU#)^?xj#!dWB&<3$xLB9(A z8ZCh*WBvwl&x>pw(#`vq(K|^R-7tAF=Bn^rebu(BBzAT-0P6m5t!82P84)6U(+bdQ9Ou%_cX{cp! zsHDWTDw%-#xnnHynt>jr*VlP?uvX_PK?u^6a#0Y+^VzjEa3YWodi&M+@Zz24S*+v8 zvhQ9=*u_MMYFaXi?Z448>}~%g<~4cGVHlxfq%P>iQ@IQNe3fZGyg!NWb^>PdviLTj81*>G_KV*s zg7a;g=+-kx+njms%?1sU+4-M|nzC-7^!+gw2K~9F%7-{VT>WLHSfBiZ!6@~Wj`3NyYvsB z1{JJrcA)GKx)GANdD6iA^Ij#&W+-c@T^fk|aYM2gg(OxG6>{Em!Tisb- z(^-Zs7I(g=^=@|4RHn+TDd|_L9B)BDx>m*BNN2>T*WwZ8;hu;&|U=R ze&%Jh?pp68dLzdiO6B@$n_jfk941}aKyPe;I8gchxro`A|BBdhZM#y>y&AV`F@!y+ z5RJtLP_xv~>2Aiqd@ehCchQ928sN@fxxDs=3Y@w0mQMOM5XlE}%%F*}7%9;H^YlU{74XV03e>H9nJ&4$m_}P?eJr*@9l4dT7Gs_p2sBlNx|osw#NdgLoeRT9M_Tl=L)>7!cqs^m+{dt z-G0ZLG#S9AtOY6XsI^q1;HG=plzJn z5HR`t6Q*Mducdp~xjCDxT#)T+2u+I`1D^t@U*72ay9X2X!OM{!Tv;_rBZA|WwG7+= z@XvBB+tg5E1N%o!V+=@W$wWh8h6rDQEDhPK0ywdBh!I*8r&nC&5&CHCb%*~x*iFb* z0N7BOg6TW=aW7)`1PjC(D6KWLRT$E1>iVF{wz^U`Ja~KAB2grjoepbID<%ZR@5W+N0L-Q*8B0|aN!y3{+p5$n``lX#-B z==wqXYvKMpi5lLWm7m9?3o-yY&Q2)N*7~J7Sx1YS(;{AXT&7EWk5a+lY{pj!&6lF>xl51@JX->(ofQ&U_In9nzFJd}z7Lo+$h}f;HvhO!b*q&Ajkxto%RL780 zkhuTh)_w#TcZzwS5Tq=HKX?%1xtgU-Rwwk{$1ylcJH3|Ow6E?0Pi8xy^SAS;sna$8 zL6e_fAU4g!povVkR&Z}5J4f2j{5Gfh^6t9U8$&!jK6P!nGWrH{!N)QGsH@$HpQ_QgzNQ50lW|_B+4)mCm(>w(z zuA_Y150W4K%2ou78pR8@Sj?IBGFN{2W4Z3NZ(!3oLz~={ABk}EJ+1lb%=lLn7 zbFNjPn2(E*EkDkh&aiaY+3V)QSZjaS28_2Y>6y5+qgUY=4c4lR@fP$ts!o7{CweRk zR-5saQ>qF_?@&!r&3BBs*5C`+l=hdN%O7q_ja?OdKQzP2?UB6wwzYFaG8(92`bBHf zb-X%%weuHUI@HzwEi-`UpWhz)68rDOxgr63iN`YJRhN#6bOliUd0>BQGaWs-MFM|{ z|DdlWyVLowMg9fK=V4GTD~%;3(RnQ*VMpI2Wu_w(xvC9Vcz=vAs{Kb6Rs8#k>PG}mdB{jvjmX{X_D%r!wPC#KEn%X8nJOzixWVL|iN zboefEY-0ZPGi#W>^%@w6eC%q5{8`&UtZ_Pz_dTN8qW1Rdb|bIK3A@}?Vi2VSqPirl zrYxU5LE6@)0vns0YY{0-xJH}*HvKeWw}u4}l*_9wH+l2eY}28cPxVj5VyYP_OQSaH z;T^9!D8Hsv6tmGTbB9{?UyuKAJ_#eP+;}rArTf96Bk}9>?mqRfc(|%)Tt4cL#DWU! zSi8dpL{QJ2V_qXvLHCUDpb60my$&>}$K8-#XNdSFkAE-Yw(z^<^N)_$h zkH{%1NYqRI9j#FX8R#uKQf}Qqy~#VD3bJhnca`+NpXS!*?x?i3lLki^LO7ePs^k4r z+OZ6Vvcv(1ViA7B^ld(e$*qiYlMdLpn~rGr&_hKr#n?N4vkrlXIeE9f`a=757NRgy z5WVUz`KEkP{-<>mXoi9T3+g7I4;^$b+-9}qbTONE^FO*h_2!}SvT|O zbguuH;#R8H^z2Hgf?b;PVFRq(Z2Mmu^w3O9nhP(2sgl?mR7wLZ<2IN8AL?c51EN{9 z>#TKa9L>Kv_&91A9p<5bV*-*J>L`&;LGWTs%uKRUxp&>=TMHiKCx@veXHFD&gwCh?Zfxo$m*Qeag7hgKDE-E3vUjlIxC?2ui4@p zeQr-%VWzzETBoqer<|~)AL9v9_&MU+o@!p(=S7-V1M!5h*af#Z2KE3p{PML7ErvH59ag8Z+CFLqZ z!P&*tRb~-$)D$_uG%Ys%Q6pkkW)oQD8`AfMSmTM9C+yhyqPvcEzd*c2BW?tIHNUlP zs&u30v!tP$OvyWD7*|kYiH0yWKlH%(P28uoCx?ve;H~<&XmHxZ?9j5yccAZ0CiGEA zduhrsEE^dWVY#R_1MO&B=`>ZoLqX^^i_)F}1YJD-D6bi3y)-7Lrcj|JrFJlex`~A zmfW`F$)-W3a`u+r5!U}Ns>+koC#7u*VlS+u_6fe* zRtfC^V?EgU*|#UmkRx|3f z%fH~xP?6jhQ0LHn5B$;nr!K0^+s<_z5P|)^T=0Uv#}*To1ehjB1yUv5l1BnR>2wsa2AewpU5%y z?#9b~4`~^4yQ1i-*3t%e_fQ1me=Fbr(L4XeJ^UB`08u|R|5_TR-NV-Zw>{He@) zmWS>h-7(67F1?g@QHcg?-Nv$f#|DDKn6s+ZKDllT(Nhc5etm}hG(@1Oo8;Y^|7HOM z<)D5e)rk{3oHk(5!X|tLZ(ILe2U) z{#1W%G!CNn^IkG*BrR<=t^lSOh$^4|E7ebG!~@CcVz~pjQzQ?+3y_R#)eka@Nm{NU=L_9(^}|wTbK~;e$<8LPKzICNj}$j*kxxwq{D2 z)yH({U-7l4)16aUJ0)zgUAz$B0kHFXnNJh6A<5TTZSi?Mi)$QAta(Y}M9-m+sN`y5 zO)M{)_yM@tg$Ag$sfj?tCSdQ1J}hfZIJy0`amo|4z)LGh|Mb29Qljl`NPW^BIEHuj zZ?8|^Z?b?_)|9 zq_v%722D=hAdOpGutG|_p^MSM-CXiO?4zYhBSN42Q>njZ>38@53m;GGPPITYwLwkg zRYqJ$y|w&rzt68aSvR)LsPc^y%{(fHB)WSH=)wX)NrJ5bt|`7IVI6n=CvjBYcosfm zxOf^(&_O%lYoxf)S;oyVk+_^#9N?a-nWsy?ma9uoi)ME@b?9BzhnP#`xSwm`5nJ{{ zYF)Ql_!({p8(R1V7OnZMPD|b-g7!+>+pYuSr0$0%fRmM3DYB>3mvBNBlrXlpz7NtX?(6( z>(K6!w6Dnu9D3cA>K`A>^iVIoim9JTJM5D?wI`VT}z>o|ecc;mH;&HYKe@u*T1 z)T%|g)!Av~)D;D+w49A^8oH6Y_ioVp1{c3e@z(QQRFcWFKgFI>H5_8qR#V|cQ+0GC zeCs%ihH)U<)>!73A%}0xx9;XqM|nd{COba0%PV9s=e{XpYl74=*aL|O+coQhq$Pbc zce|aD`|eq&(eyuzpY`gE*`p=OM|P7un$z73K2+1IdA7JU6W)*3wp*%hZmZdn(-(Mo zWFHSZBEceRx>PHZvGwkA>G*z#em{8-GP{oI^L3W(cCUW@A^;CwIztYL8P_I#yqi@4 z&!f9zrT}H`p;IX{Tk8l%uV|S%>L^fypXYQ#WzEv@D~AKrJ_x7X^@SwZQY&wMi}_X) ziB!wVer^kYB;5SsG^J+44N`xVu;Xt19#i&Qg2J(*+(VpN3&ZHu$sSn4lGJ>c8pOxj zcicL>zl|2EL3^Z6Xdb3j-0E>S6If)seq4N_yiVcr6E66&rIvgEVLjnlY@&#`a68EZ z`||QK>*MkFguO=bHun8a0^17DnWN8L$;=)KWR(|ii?H_bzhD@|(K8W80h?FneXDW_9?UMSt~g`Vr+M7C;c^*%RPktQGm3wGr-O7O zoU;9^`+pm1=7M**K2}vm3`DveJWcz0hq=)A<8QQ#9(fy_||Et-4b8%+(E5c|~(u%rdx?b3AlzAWK_)-@7SX|Xaq;h>09=y%$y+&-{ z@y8Gcu#W-qAq?M*b*`BFGTTB8m~>}&e1dr`tktu-dR=a7JT>O8`BO;Xt=$2+o5c>o zzDv+-lJ!4Bz`O#cDSV)RLKV=1AXjI9pcoEBM+JcR>(8!kFhNFMzbGL@QLfHkknISF!p$+#eBFU@-w53deu2>S*}9g|$zLbe6;vc=BJ zWg9b0TCW~7vB@1PRK=)0{z`Bz*?c4kX^)H}ODMoO{eNR@Rp;6eo#@MC;GjK3ORJNc zcK_#a%OXL_a;x<{RC~#@%xYFT-b)pvpy|Ri(98OuS%Q{GIeT$@^c-L z@alHvZISwNt|dG;5KF64A*~B*2KjV$AM!Bn@;TIfbc?m|sK|@8T&EUmqq@0vwVk{o z-k1_>$d^6Lpn~r9u<${b+6@a*9`mn`LzIS0EyNni|1DucI8m`#!0D8Bs`BG(s?GWgHQM_tD;gck&Mhc z=pAzlUKne0^vWc8JgY{}jU`@pN&B(}{k}^QzMy_N_ekioXRF-n00^9K(BXgyfY3%! zKBO8@I3Mp zlCI{;RU-fWjsU6q?t6udbGyaSGM;~qHKimdOJ)Gs>rZ$3mR6c{2SO}FWy4f*ZQ+%N zO%ZxFfn~+N)1y3L>P>nwW)SmNN5L&*5U&$WU<3X0>sp-xq&tGb{DH6AAWTo^&COq~ z(bYcqkol9;Mb&#*f?M2&rW;j++>vLXO_(_S?LJ7_{qDi7+chwFpP zHA3hDdJ%S2x3d;OXFGL6J8DT59&D0~w1h+};jweypdZc!DN9`qNzf=IitH^)=m9wm z@ekAI?gDI)2WG8u2pOG{Oo9qp_cEkLA^Q^e^&@{WcH3r2Q4yQ53Bt+SJluJw=4>+~ z4%!FVam?A@p;Op#dicZL(SYX47DA!#7Uo9Ex99e_#yuZK3!tvRP%qiX3Zc6vOV)7% zXih?pcJ#Qf8t~HaA zRX-sc7eSAu;iIjZHg5blxL}57GI~AoU2t!$Z;wrik;c{b=KxORhvasNh_|y2!+e-Q zKB=|#AXpKiMS5?=;@ee?zNc{fJ`&?dV5-hA_=8Amg&<&2k6M2@!2XPKHTrcB5jx-t zGO!x$U8`v#%Hz$BcmdS#D30;564^I0=H9p-pN+dFjmHoC5fSneSb4gb@b*~|3c@=f z(xRReEn=a_Ll?Eq`ih1v;H+bPj{SopyDs=nms2{eM={h+o3b*CR!k559p`V3&83%7&kZ6-I_h7rgMP>h_S&_HL^ z^{xcz!+m(X`F41uHltc*{WEiZnX&&cE8}W`Mh~j1B3VnQEJAcJdlW)Xr0!XuOH42$Vk|Y6534QnaLOXSFepJ#Kixk|9OY!}#K3?nmfCNDzII=VVUQPFl?^qHb4W3|M^3^tzC8GN*s#I@|1+#qELLQH?8ip1$^M^>9*fSR_MDgD|p*oR7iAv3w}WaQNG?Zh)7I_2v(VoX6NgogK{3Cj^i^CH%|s9^uA zA6sNyQ!ViDoF&`Bn3*G=&6`jK6i`(yU_7@(S@_@$yXPHffCj4z_Yv#iMGzV9=@nPO z3QVi}Jel!p_U$D;=SJ58dYjBL^F!LkE!t;9(7b(T(yQWsWm7*Sxi|Ku!+@vH;r)A* zPk%=PYmArLmIWQJYL;rm|McgscOQOZa&4)>@WK@^e(kNOBjH1d9dk$lmaQ@B? z9wVu@?Yy@io7oC{V1Ja{-Mr(K=y4%klYkKH^Jnz6dR2Ry9lOGP5v)Wto$;``yy-!H zw`-RAl7#^7;qd}wC%}*@n$eL?8Rsz%BP9}&d1)spAhWe z*p;FE8Hd=$iI3oBuwDU?qyA6(>#R6}8$bT@0xtf#D2zc*Qw25yxDo{P`VeFm$4An6 zBT4(i)2m>RGGrHJn6sjIDXfaoShY751tI9}?1=V3#qdQZWuHrM61LSjjE3RVs@C_n z3Mpyl{~_$H!=mci_F+Q08w3H7W&{KQ=~j?biJ=)9>FzF38W}`NK}34!?q-ngMi@GW z9P-;f&-?!F`*$4QcYOb_VPH0U_FijU>pIW#Ixl(blo>Uq?ENHDAM%&Q%`fDMU;Cq9 zbRtDae{nEt-fwX5fo`k0|_y zwLbFO5s~8JmcY)!IADs2oq1(ohugmlS_eqpxgx)v9J7nq3gX|~*dw$4y z>5k{^W!6Db{@xQe5^at}3zhL#XZT4;m2}TtO_fnd(u~XtdwdCJI^O)=`xqS(eGy6( zY7mgZ5zL=weKKP+NVPP0zsH(Y&-(_$PWL7%^HU_be~#%REGP+G9NGoKd#1S)e^|;G z%Ttd|Xb4S1f?k&hZW1I-)}jYig)t=WXW4)R_Gv-ZYj!KS28B=TrkdPsc_kr7+kkUKRCz;7Pn;q)e3td= zu}ur+eaOi`A$yaRAr*<22`whm{Z~w;Zz&&JFFA(99)hx6Gtnq`Nm*xpf2(a(ZPvqH zdv!bs^B?WSk6FjLJYD`k^|5w7}^&>S$5D$6{sitR|4Pqe8vpFQfEiI`=#sdX8!)hxlLCHS9V3cdtWoGq=lLWXPE>%XtxcraV`u)%LYvj^P`7ymkoeBeKLERd!)=$zK!-|e z!9ywkTS&u<^`7#D9mHo}UDMRP{k)U?OZ5w*P;2GH9bXFnio9d{=q4s;t5jYQCF*yZ z=l-841mTY${%Y|Ug+sF-NDT>a1BsUHWla9$PVo_W^x;TJbNVm}E}I3BDflS!nY6;5 zWO$T4vWVW{tZp7|_^fC{o7}Qew#o$CmpkOd)8y%T_+-PJm|vj^>SuKDNP0+xaXF)% z|DZIf>3JG05lc*e8byoLAE;c3VJ8)0D0-y)ihW7@iusODIXg?34%1Kmw%55YJhYW! zEqA7s;=dUwS692!p;=-oubx@mslw*i8&ecwOJyjh=l-S>_pmilH$d5_v0yb*BdHLA zN>yp-6ffH#2fg~cDeY@H@q?0hyW5@pywj!&1P{4lsy4E!hwk)JW5d(#ktZUo9cNEi zSpBGVif#P5KpNmGU-RBS{Xk*o8SKHg!TAM~nIE*6NML(6T&IgIe|>T^>Q7QUZ+J2$ zer$%$u0hEPZt+Yek@^yAS5413xaQxpS7_lB}%4KvV)abB?&K#ZkL^I z$293HI4^3027f%r=I~XTMEws%8q3JLZ`uir5JA!G)-O@JBkv4(wW8rNs4*j!ri#KH z(LfNW)si1)*ziMDV+it0nq}~=lcU|0hqss>>A5&*7W5710ekh$Bu1ET@Z54X6Qfv8 z>Ar1r>%?=U%N_rpKqG_yTsfqY8hVYcAMjoX8~TY>YP;6Jw53CQ?6=MEN*Ev0w$UTK zgR=BVkwR-y!w)*7n8_H0%}}PU@Nm%8S-u0?(Qn`9)Dk~odB^K|#%!-&g&=Nmwpa3| z#XF@`*HP>8uL=!LZ$4qHu5y?GL$@)Ty}g6)BQEp_NO}}(fssWBZH;1F3A(jr{=zD$U9YcO~X!vK9A7NW*19eChgBY zdvL{QsO1fTc%1m+QWp9)Gx8bTs&T}x&n62_4g;}YWF0$0g*rF77vK3>GF93=E`xE2 z#yhq1nXoOdl`#jtKSrVx_p%ws|L(!E6H-rX-M)x7Z;5WK^?v3kSkPKN$a=Y#eRp&l zoK~w|!oU^k)Oik8`?$I+R~kbhx1QJ%^8*u__@&!%1lj6)Xmv(h-|ULPc%4dd`>^78 z;}O-4e{S(}D__{#M*0&vC6&QqImL)6ieF<2dReaNlAB`O6Xsa;0!_-T#linW#M28p zG@hjaBmZlAou;iSjr!H0f0aUKwi5roA5*bt_{BB7H|?iv6Uk{F)Ytgkf%g3A6KCAb zOY29~Z;KXL0-fBj;d(dQ6rk)Te`wmQa(>$dBW9S`?21-T*Il>~O9iE0L#-Blpd9a6n zeU!46S~ZcLdgWVSF5{~;EMwcT(_7MgG;KU679HX9#Y70C`ns=CdV20xxwimV$_4zQ z$4ouUc~w@N?4bP+?cE}l>6gT-kabf= z&%CRZ3w?OQtk(lLz50>Qp5V6o>Al8?@P`m*sLj{eB3KiBv4pE4#};*N#Qkkrl&7+G z761y-pS+9z@8gc8w$ugpRJP^$v^2hGnV>KKpN~z`JNC|)`dX2F>OWbttq|;Z>bmEHUhS1@4^t4@0aC<0X>&R)jYdd8Vl7fHuu7L|-O% ze7<-)itJeURo-VRT9mEkJjpwle;snqm_UAicX=v0g2&PI+GT+z-SF+7Q8bT9eVZT) z6a|HNXXe@{Kv1YC^7pq`C)*TP0cohG)UYHdszq`~Ukz2Z2#C~}`a7Fz``SLWZw`8P zNAN8ejbf&tpIvPFny%F}wB$X28xTWl74EI^B$w+-cnn2ZRd<$czm&;`U{~2Qlt1fa z>DODff@PfPS&^OKve#H8%iYN(BB~E@|63qhb|1YYB`uk3iu(Pz*Dx#wp zJfyL~s&UL^qRn>Lcl8pU(vY}!8W`>;Wp+qpF>k$KW> zmBW~`L)#1pnfk{{bV{Ozsyn}lj ziUUM}#q4@3*!&K>Dx-1#lfAeLUC(IobdIn@S{6C7& zU;pNd3>G8sdU_WT)R#0W*A$r9yaS~qS{2oC+BRay{glwrxT6SnZ=09CPi{aLldlN!XV_z8Fn6Ie)3R-D|K?+Uh zu`^~J5(Y1QDerUFzaL=6TOjf?GpHT|k)Wj)o4uI@iCzCef6Q<9mYjB^GJ{A6N;~?= z$pt`j`2X}5YO`t>jng^O(&2F{PI_A=gMr3cJzWvn{T}p!)YA2}eqk4=PgeU0o&O2Ro@Wk&Si-cps#$~v6=TMboyFsR_Jg4}!3|q+` zZbg!JjejY_eyR`@#IW{J<@&;B7XvFRe9UZ8pV{Cu9#O8`y)HVsPv!R-W)aM)Ci+-9i-uAYnx2P9m&Tb5qpZ0CMv}#_|bV5<*~0< z+N2qLoQs9qNn>48kwgBpHg(nYfT}1yNRJ&H2NmjFZ?pL&sjho(-D@3f)4M7dRT65d zQ5?e}K6rP4YcFP+#O_twEUER?)C@6}>iOrS*lG-@z}}~31rS(3KWm=-Y#-A2cjqLT z-4GnLi{l*pNvkOEaOLDu-tg>fai}o6n2dJ*Wcv(*l__?Y_9Nr^;PeeujEpqNlcBR0 zUh&du%$PxXtudtj6s6qe5$&$nf*TkV;~xh*3`RVf(iiCvKKd0wSs!HTfF8yMTw4MD56P61ZNd1{TI_ zeKvLQqVXihL6Zo1X#+2%aH(MXE+1lIUJV#0fyl(k)2Fl}@62c?qkA6CN2a`cRK_9R zIM-Y6qQyGc@T{B|z_scwoaP_GZiM|IafC(Et{FbDMcTMGzga+q2)(-Eu1V;LA8k`A|eP)#Lx(zLNtphe}<)aD-s*$p~Ju z6{7*h5gmQu8mYy!lMAwwkxYm2*HzqXky5KyVFok3(Zjj;c4Wr@H}29x1APE_)jwVV z?Y5n`|EmQ676pf2!0Ind*(w^v4qm#0pm4IiLc&?8);H_w%cRR8Z{cu4D2T3Bfx54&00^;W`{yqg^)x7{HP zt^9CsH4s`N1#ZgqXzH-*M8-|DxR?I3YXNr1+CUYAns#w)EpSbD5Ff)Pa>jI^Xw|4l z;+GzTY-8D9j}YFX_@oaTANYujh9%yYE&-ve^FJeksI=x=o^Lvrpu;sh8A1Ju@^f7Hd~Tr10qMvXmgI1&oj03< zpM;Yb$G;=$*FxZ){^XwOnFk6g?qN;!M&YJDZYkn^=YVs;(!(796DQK1uTlRGH-!J8 z?a^P$geHeWB{gv|;Emgg2LF}-I{)PP4^IXAf0ucnb)8}b5#0wHsc$`ELw_Ifp)~X? z_5ap(-2Jb%;{!jtwfg1N2Lt?SS0dfd;v90lJL%rK+hLcj|Iv1+l2YzSM;ftHI=+sH zx42h#zp9AmM5#X}4)mk>)a2ez-kHZCmU_qM>-Ze{W$96MYcy=Zk^qm3)5bq^IHRdz zE5@+9fc?@wuCyR}m5Y&1Bw?Rk&tA_-$Xo9BfXwznqh9zex+bGTAD`gm?h-9iZC)yy z2(Iqh(%tQayvVfI;AH{Z&(->jy~7tK=r!6j_rkhMMq-IH5WTNYyh{45pIP!f^wHkG zb^5>c7(>TF*7VTE-gjiSRdhzV)vL@n*G+A=h-89h9) zUU<2l+cb|o>vfEDJeJai>aCZ()~382pQW#bv+;?8+1G6^0zKNhu7CnT%?+`a4c?y9Y_5cJURCED6OrZo-n=;cZ1ZwFJ{(#q!u;}KGPuAb9BSj7kqlV z@KCDJ{!2x2j!dl{`&U14o>PA%*~GDjOzaQ7WE%UJw(S{a`;(q$!s*2-7T45{KNwpE z8;&-9cffz-Hx_bYlz4l#6>#P-9(2=V0~l`n{6*|*$n&xVr}6i#?9q^J|6a4anZg@T zH2>X|!=B4SLsyfbbZcm^n!95PF=TLg*^ zjH#rgy0JqAzIsj9#}VdhCYTCsUY(+2`m5)5Z^CGgVx+*gi?Ap#k+~D^HPOA7i{_7l zA0uYv(AmA~4tJN$Mjpul)6C)Bs#%{r<96)^wVYqX;1u(5Vq!!9b`<9cyR)O-ca`bo z$KIY;zE79Tobpy&A~vj^#zmWZkhC--shZ-__MBoDubup(bG^Qk))`GUGA9+`^54G@ zDb`I@p1+36WTdZn7_Ofj<8*LSobkq1bnw_c0`vZo+`d|xS|9MgcxlkWhS5Nm7h zR<8Kt^Cg4P{^N$EUmXJvQnYKC9`d&{|d*Zf6H^c z`qw7!|73UnQjGzNr?VL4ikNg|iN{#G$m(7M`6BV;Y9G4VOy1DX_YU1P39vtp_vBM` zz$TQWA`RAhq+en^qq++(W~00v5Kv6Ovuiue=`7J6TuST0+?MYyV$+#4EAnf>Qv2Y= z=`ze}7DgB}@`VQJocXfM+@Z7yMk=x0RSLN*h3hrWBHZkFgnhL$qxnz6sd z-?vv>w%#rqiIjj-duIpmC#bvoKt=PtvxmbT4~7TT{_u<~?;APM6W8ZfC|-fTEmZ4e z8f0u$`>_=zHEAyT9$m?q#|ZaFvc1sEDwmp@i+;z2b&v9#U7IJ*8^uBAXbe~-DF+l~ zhGKzb{o)fG$+y30iZ6>as)^u#Rj{&@scA^!G7kfId?kd=|J{MH<|Y><)#yD&uTkbV zp1zdmiZ^~dk|tN=jovtf5up$1CKpn`dSRgd6;`v zqS!l-fD}42Q^FZygs{eBY%ho=*Q1T~+-rCb&F_1ev*Mfnm8>@nW2L69k~X>q`7R98 z`30NPN%KXB4I=J#{a$GJ32x>z=;52*NW@sdtlhExSIbV<%MZSGhhHjAWlH>zQ}`vn z+zUrv>fO9rXC{04VreAgVY#PkJ-=PgVG5TC{5^c6Wz`Oe7N^D^FvyHb@;EmL<^MPFlgQ| z5_23*X~*90_#NVyH=hemxYhn6d3REGb2EWBaQvRiAW&~_s8!!{fL!`~-yZD5D-Hmf z8OK?aw0r!~8EfNZtxQ5EJ*l-ZlnO5L{pV6#Df;|=S}iHZ37!yW&aTqXZ=$(#=|x8! zr@>}63UAUN(c|imK^y+mk0mk954og1+=9|>_puHL82v@M!{Ju0j;jkZ@>%8j$&G-8 zRnAy#qOR}w2H&o`c+pA4$$9ZwaPrj`F1?x|vL8h2A2F``CCohC^Kz0$xg2#OK40*T z_oXn_>i<0Y>{2@7TsHmf%c7V3HnV@6uuW%ZfG?F)IJH^OUB&lZBYJ2SFOp~;7Sp;W z!^W1JVav(jWYaqNCn=+-;iS~iJv+2A{669UmA-x?@O zg2Ztom`*`a;bS?Nt|bu~L|hYnZbT0=x2VcA*=K5HmGKTow56f4Me)Y;hFlLgRn_yj zM8OphE-o?CZm}x7sA?=9Z0*t>%@@psp`dcc6pKzIqA8r49%{Yc`dx~KhWd+2hdIL( zu6i?{$g*q8ApMUAG~NzkqI?be83Wy)2F5;Wzpk}}2`V@pfz^ypRvx5bT;6&2G7eRR!gD=qeaU? zQ7%DW;PdV@+Zgr5E2i~GW)n?Evi*xchhOuGv*3q=!$Zy~-8$S1(!F+OFZ*~b+Fwg% zn=r#a9Xv=uEJ?~nb%bJKmrRM$C~kG+<7OPmt+ecISA-nPhGJn`_Pf3{yBv9Lm)1}u z&-If=(WPJRyw!HJJjBKIQ%o%lc0WdS1r=kxOO=jR$_>x38jJwOde|uokkWnhjMulD zE-qNo{$x5lDIQO}N~>r0D=VZIGFKl$JU*5&-2B{4qL@tZzW%9wY3Oa#>@nl(b4lj5 z(Dn=S@~}lsntNaN|B3-4WB7I4B&CYk%{d0b*W zk%Ob03%FBav|PSYesAfq4+vPOor9>C`}eI*f<1cIBx^a z8lF`-nY6M@Z$mPKBjO%{d09a5B}DLCQfLt#P&T|!)g`=Bf(viXCxiB~fKr7ppx2Z* zC!KYUgOyFW9j<#Dw-TgQlzb zLA8%TG^9`h$G(rx;A_KDVB;8=;k$rzAlvqdkk^}i`a>4Xh#xZbB3^$v36>!b<~@{w zEtCdV{ju442~@UZA%#4EsH!LVe@kz~8Zcr*5$z!j_$r*bOdzkiy@#WKkf%Km*rBtx zbG-a(-}NnD>9723e)9ISsn4zu4xl_6uWA2k!2ef_7CnDx@jv1;5#VQ^-34*LAuFy_ zi|3y-H38$%-^`|D!S!$2A@cJRkZHxd&iA4RUdtExdpfA84}1=$Y2jlx^Izc__C*^7 z13;=?zb6r+|M&J|P9HeaSyix3d#BM87D!OyBb|dH^X7&1|JbxOJqWr~_vb=^t>g`t*b+pU}yxD*qKRP4N=Uf%Rj>fQT%QoYiIT%s?H zKbhVEek{Gu6`|RKmH#Pp>XD?;nAUj!*GL_6XZZJ(h(%&pKLXvOT8u|{8hUt=h28~5 z5Y$+wt=4A?w(lTiQ~9ZieSeV@i`$3JQ!|L=LH_~=P0t=}*@q)y={~78e$KxRlUw;d zY(EG9U@8HyoBnGd=kcxvQF5NAEPG3vA@Litkb6j(dnD7~RJ+fUb^h&^*OwQjlhzyn z|82n5ZrvDx7&e*1`$<@qellfo(Kf_D&~#$W_=9@p2k*GqZ7Vt;gRu798qE`Pg1HZd znlbIo?1li%yz~0Ajx>oss@S>G0q%6iHtc_|teV^(FrMqr`tkd^7$P@UOYqwypUWgyUh_BQoloOo$3z*ggg- zVbCAOuv%N{#!;~k&Ax)&uu8@Q1-H1**W(7LeZ)oSA%9hDpE^3&m)`7#A^0Q;Lw4CY zzmI|B^dfL0(TGDaMGLHQmBZ=twdEW`;!RP?RqXWC!S{x{s;Q-ferP@!7P4{A(QT4T zGhN1JqtsJRM5y^Q*CGKj1j^Cle6%G0dZuL=r*gBJk6E&cgJgK&XK>i8l=n^UxrbxP zLgp{ue@4y=%)dk_>YJ_?%eNyXHE*6d35lpTfdW;&Uj*)%*V7Ft^#VhO0Ey&FKnsd> z7(REU;PYTv$;35FO6(UHOTcL`CoOm9lEx#@*Y2^iVJ5%6^k0h0Fk5HV6$XnI*`sJj zS{v7PXas3B-(*U^B^J!LV;0DWs{i!p=pbkx7|A(8KqWBv?sAL}Tv4g@cCRB#_Nc=$ zlX>o2@bDB(+b)lrLFv5+sop^pBDbtG*fj&q4AE2cxlQLyAOFft7RR9Ti*djyQLQdW z6A3rQTsnX8VvlfPz0k6c$`2ZBvqb9HmMJweFw)Xs<{n?qFh@|9 z+-+a^U-}v-d!#24!Dnqdkw-+YX$577M{P_r!R#F(MTX9cDEyh^jSxMP7jg9C)@~L) z4&b5i0!iv+gJfMIf=wshaJ#E0Im*zkoYx|-!xmJ&Rk5U}EMd$pHLfI!kmmML+qo)% z1TvuEucGY;P?R7$UTl%&q1Wn$t8J%jg&E@-2n?PrnbQ-%XNNA9e@0$AYPU~iGS;0u za}xqt9|6h`QFk@cHZuwcDx3Fm_*(n?VK4OjeJA-3nw9?fPE&8`r#6!k3`4FRI}X%! z=NOoS*ZsK5cW)jW4b-)Z)g33vY^4^<1=*3^&00s1(4=%EO6*;)5gpxfzdK_C;2Xez zK7>(98k_MU4N-cWR)^ZX_{`p2E7v07MNqQN`0uZ1@LBbHKMu6Wj3;3l)Gti?@qtB~ z{f7L>f3Y_TY*q1@D#=ddHTwX>h7UdT3~g5N(!QHY`XuPAO~~BR`S%ODt%CH!fU1y~}7TN)>vwq4I+mb)tV18FhVR`#BI5grXv%e>q_{Wr-4=wmDA3nZ* zBcnieN<~KX<4I_^agvN2`52si*4WCr#gD`OAw4;Ho6OLyUWK67!JvfO;ph7dpP>c^ z1_kVA{4RBb@bmGJL^hBA7^g zFRVX{TcN!h2Dt7I_;pooKERs(@Q~;i#&>%OXVXBwXE(^nTp>TU)V=KoJ3C{zr+X=d zue!ae3B~cniXN|k@2w+JLN7A}bM8;R3~R`tMS}u8qtP~Hm5XmM@3uE#5~afIS#wd#f^f3Kg~dQm88ER`qS8Fs+aM~-++E3 zPR?xUe>AEZSUP*$C4KSL;3m~IB5awh7O~=9+4yLCB zSZoY2L2Lw$2gQ+UjYY<& z0zRLj1pLcpS3w-BbTqHC)Q_@so=L%?f+oTH$_#s=JE0N7+{|rJ=xY&PC&sMW6wQ&t zdIzMET}*Xq_!lIFb!9ojqTO9DhvFA<6HfUb6ccm_=i!I?iM{<~qA8=rkC|(wg%woy zq`#IFe0MCy@y*)jWM{2T=zoRoH257ze6X<} zXsmoQGJ@xhJ6N>UD*7zYyGn9_GA|-c+7hUYK8%kJ;l$|Ly!B*^LwxBzZg6@@gW*B9 zb>m6yL$-m#v_OG5F%_ZzbX34jfrl(%`2JSnGVzL9Ao3z9)#zYM6U<09(9xl%Z?mkA zv3zF{4MD9^Fi5;;#vmW|eoK^mpbh+=vO&R5QlqwAOC3gEpMY9(TWOjEpFVgU zyUx}Y1L9Vdn4X8We}7Nox+ z>7g!rI3f!o8c=XD8}40hQhL)!x^%@>IeHtkNs#${E#tki3m+zwqb9Yjf}~mT5NW;i zy#3gM7=p4~FnA0IYvN!x0@$j8zvc`fs7*mi($}V!r&ykS%={8!;eZR{4kul(>q`a8P>uJE0{)}XuOGL5nRyslGac>hzjlnztgwoD>fqm&s?aj_z@gc^ zi40n63SKI!q?F1iW$A|+^6!UnH^zRK%sVkw}zM?$DM_q~p6(QlB{2+V6EP^^rIXEgyNbY?@5jnJ#zn8G} z@Rv6@)}gy&n8#m1CUAO!oAYq#aswA`@`VzYWTAipA`-E5fV_Gl>r7G(ad`zjG>QEOpK%!>9KPkK?ZLu>_)vj{c|8&&=sb_FMuop<;?Je_!Dq@% zvLY>9)!y6R2POF1y1+xtwHu}};Tnmk3DnU+8ap86u$n@Lz z4Se`=pcb!wf#!?5O<5WSHWQAl{?Y-SL!ix*jGFA(&sIa$xu!oVd|0TN zmG&u#h#&^%b~B8{MavF;t{8fjh%@mQmtVon6WR}f_LEQHK|i@x+PD~(?(iMJUvHV) zh!p;JglL95#IFK_jg7FrjwD|tx2k`mk0p&K(ehP2QkIU*&+co4prS5%IzGe&cA2e( za-iF~i$ohL(nF#2dV$i%Y(Wr=XvU@8@OpTWltvy2uSxTFU}lv`{s{MKDg3&e1VQEX zuw=f1e9!QwSB2C!j-=|GB2ws~@A&VYANx#^t$-Uf!C4v-Lz|>U(DFr0ML%kNRZqq# zHmc~+orx>Uvycw#PUOxmKP}b^-;ZG$EfpQnpFb*rYKh==9E2(3Tc;HB{yY#LPShB4 z**BkgnE#PKC*eU}goyOh;8^h@wEGDF8{9rdX93-(sopQY8uc*Ne<%2e-}9waED9H1 zWa{Gq87Sc$6|-5*7X3p*uC{$Yk+kJ%4=!}V2_SPnqQ!Be{@N}lbx*>Q7;DoxcGUPP z2GrZ<8jc`h;`{yG$}Ivx`9eA%+ptQ)CDpAS!(ZLMTO+Y6Ez1-&AoBU!Nuh!E`^-Oa zpnRE(P!}&c_v8mzk9a7We{Yr*(mMmQx3Sh?8IN(vC>quzdg``-{m=BZsl#|m4Q)jK z%2Dw5DgN&Hn;887B$PiK@$^MSlZbN1>GI~J+39d@SNej{!5&YT zNIo|Y1ohmkxBL<(2B??%LH?wbYp}Fv0tZfG|2tBW&l8)i{LNJ)n$!F0w-)YgNq8mQ zhM1G{`RAb8n$h;Q8Y%wbX1+e$7eS}#f`4cp&%YgbNC;oPiKi2`FTGwZ1B|y2K2NHm zQ`(lJ3K`#~n_Hj+DKJ*PH~RBD>09iz8A@*FM^YaSY~!>#JoU|#I^95hA~r8*$I|l= zis$PkFN$u>sAGRYKRrYWk7ZJu#HzpjwhMBRv#NVDRXD-B_wH&}9Qw-= zf2bg7pq{*kjC9=<)wjuhzE^h91Bt&OY+xnHM{?|5SZbb{7W}P?DCZet z*^PT*(D0ghBKvW4C6@Pjt7kmSzug_H>lOdeY`l73Uy+acW}k}I!?c4)#Ph40lkCFM z;fcZs{hAw9@*v*Z`h#l$5l}WVj_5V-`T^sdyj)ug;X)RIJLz%Q6_kcd8UWtG|Ffk3 z=TMhLX;Thsx^9g69?pt5)dI%H8t%GZq(a4k($gp|o_F0=Sxsz|4&V>OMh5(#{JZra z-g9ya=D?#^qA3TrkH(1X->oCsN-jc&Tk)}eMXY|Su}Jm}KylUkDy`(a z|BxC@%#Af4N&NsaT1fS5c*Gaeq}Gw0kHQf?EJ%$NF+bQIv!mr%Y73iClsIQtsj#su zUa1mzjl;wF5njWY@srUr$cbsl@Ic`F!{cSF3L{Hq20StCKWZtpf&Z%o5M#1W_`(_| zYfI4Jl<)9LO6Ns6Iezbh{ zlaWmJ+1)j515+Y-Vq6Lzb)n1wiDOvS{yG)cg{Fge$m@VkCyMkl{gM-RQWL3??g z+)*!)M6v;%)O8op>TS=I{U?af>!61t7>OO^O?~Q9E>V&b)Gx@*)SHKFb2RX`fGTW& zrkKlQtXDxNi7z~AFEffu_;Avz)a8R4O*p_;@UhCaUl^noftaY2@X_(oB;Awk&FMcN zr(hjZa?|GoF)g+0s&3hGywPr@Xmx$~M!m%FNBB<-a28>2#qSYz@Kb%$Iu&^ee_yeo zGezjTVdT={kKa-i83*&$Wl{2n>e{A7S9c8%)R*?9qn_OMwnXcV2_UD8&eYDI;wJmm z+Q7*qd|0C7y2FbLFJl0e72S`o*QA246FxWAO`RlzYA?8`9Su^dgvrU2F-)Eyjx5e1hxv)IqtZd7kxdFAVc)< zS<8V&zPA%<=^Z{<;5ee#Gi0U?_U$p(v%uxUP>m_wcGrfcv=SNZ9sIbi* zF779AyWJ&nh>v^^%cSjc46m7SaQeoh($5YuO|_R5J4FFl{C@AK7e+^EHsU@~OTxFo zKcdNu))jTGNrg@`OpdAgcWYmDTr$eCDCB#5R8~=+ngD@8?(FnROais-1AqkO8PY&&`NHJ6BB z(Xl!yq`>Q1_E15{+m0>F1^PA@kcy6UinLC} zaOXR)fN*|gV&;~*xtL$K#x}udZ+(QOW5w*jQvnA=4u4ojtSt(*G!6R>nHXkYuQvGG@;8DlE!Mjs)J|x@Q%GT+gF*K~h%U?6x zqBkA1aantRz(E$isCe)GTEM2Qj|(NO-#!aTLr&e&a*W@$xt45+Q`~uv;!=mlrna=; z84UB`QI~~~#Z&!E@FH;7TE>NsMq)jI^GUiocGdr;g4VKoa%(K}Md@@^W-L7&`G8!r zl>l8%p(ChlpPKHOa>dYbV&VCSHm9)e8OqsfH`G8N$bEqi#BA1Yknzd>T`!+>OS65; zp!TvrB?_`?ynCQhdb0kB^h#NYn&kd=i3{W8YG5ylCn-M3Ex*p_dE(~pOz>q2xN*dR zc2t*zo$Bf1(LIt@KRl%I@<(T>|KKYBlSki&Vmu{=nh?bnkO;(r^801&Xu=VsD^m(q zQBA@e5t>)?3@rU)>y0_5OQk^-EE(OipZpeF3e4RuIu+OIPr3;-syFvaFtIWhx8LW@ zvh62i;EFqN+bRt;?yD@o<7wSvyh->MpT9;OoE}vibW1(Y`k7ND&1#|2yf=$qmSFt; zQ_=l2z5c$(a4v~TeN6QWT}!P~_;Yceo-3`I-%eJZ3eY0pC!JJhTXi6QH;%?f_NKItGH)Y#m(SI#!Tk+vB(GM+IVE+&p#h~Zb8e4lz+_1voQVZ$w$OW^qHTj-$_QA7rxrF-$-AMhY^0qY8rAu1e=0rIs{Dy9wx%vTkEk|D1gDf0T zP1)7wTFd-pg+daZ?(18>l-kM&^uL*?69$B5=XHDIf%z-RJd7S2II zG2pw&k?bgc%lD+mf+fDrKZ9>dGzeA>*PvI_7cZC~KDiclb8@(FGH8(Cx37E}DGYzV z7ujETz2#dRGesR4lRrak=%!~l^V20e8Q)9NUi>TJFRj7=LReK!^_={FuE)HAvIE)k z%hMxO794nXstA0kDyg&tx*-84b$atcO>*yUNh+g$!E%pGz5)U>vJ8gZn7nu*RHR+= z9K2NA)f@XyltuzMRejbW z19*B6Y#*%xqnZ5EX)n+lIAz8=wiGwEm?zAA2xQ{0+JezSChHcx-sTk+gy5MxSo!Lt zuwiEpS5<`qAYODTLlBC^Y6d=f*s)$S#L{71D#nhwpKFhIl`e9BG0&=2Fxi+5*&tp0 zKhM6;zHtm$vHQ64St^tnq+iXlL8tGuvOD!#A$uNq5~C=)D(uFeE0&UJ_YmZfsJc(= ztXCzV z#WG>0^{w%`Y0pR*tBXCMp=xtb(aMe1E1bMgR_?ALy-5k{9a)3(ld&&#>Uj^dXl^_Q zcl6Jlc8wA(i3$E4ss4T1|HBRdFOGx)E74LYiPVAE|No!ML|_cUQU^-a3q6+-i#R38 zbh1afn-1eh^}r^4t>m+LJ71q7&3#ZU(OElH(A1O@hm(M&2Oxx|Z8tlC7OQPzJZO{>Ij^p|U&9F^wDuUEZDl=JUIC*cE2?!aKtCx@V(@fcwE0cvQ&x5 zEi&!GvY^@Q5wW)O=bkF@$~H!tcV-(}F+r4zEw|{Rn@!Kl1+4Xy!~Oi`A5H`@ovWWz zSKfRc^uUyygAvjiMy(F$4k1e*odTZvcP?R0H8#k^fNvN&Th*t$zsKfS*1oC z&W;yG62V7O2ax^qMRtyz9WOxruI8?dS68Wifp}%}{d$=0Ax*W0H1F0qAQ@^)8-m-i zI@n*hhtWys&68;_6ni&%-hU45J;TEo9O8-$Vi@{n8LAg31^&K$w>E~x?lPE`hHbe@ zD9ch(1@W;_)yX6JRQ|4Xay`i&U+95nU-D%Q)U9-TpeeU2605YHNTpybC{-_yVqbm0 z9yV_ub!SZ7FKdERXZb%Z}&NG zoH@U-qfS|kNhTxjGnG`jdRz`6Q%`nNFxm8(HRD%ukD7{-+$xAqaGS-8QW1W}T6Xg- z?hUWreI9aK;q!*gsbJEd!THa2oMli(XuvX`)s zVO(aUnaGtz`^IMdteTF=K+~G4axn#(-Kn(JY+)tU0IvGL65#g-C3knf7k5P<)#`2d0qX?CEUyZRJPMr>@i`n6e>^Lk1E!eBm z_k8X>OHL0zD5}L_%A0rZZCiT+rWQ7SZxWr-JEb;H5j7^}MJxuDJI^J$P2YrY!Eq@n z&5Q*5hiT;*HA-6t<4-+}>EtUm8L-efKk%aj0>;lu`?a_Af@ z^Lt(nNsPU+f~NL9$bM&S88NG2C-{J3-ugGY(b$COY-WV2BhO|pDvt)+SvAmSCu`Zj z2$?bJwl##Zpf~<`t<mw=j5fN3vzmlLH_a}`}%`< zI5ex%tGV!xr8#S;795o_D@jZ%Osz@rJK@`g3>2?U{tB(%H~o<@sJZ_Y)tf4}i7MstdSmZZ2;>W@3);`sO0yOKz+1gKurUyhUix@BsUzg`s4afZ{i)9Otx7k&CQ-OJ2Z%7*>=>`CBz3) z-J960qT|aLC-{KEXr05d>@g_*G0boh4eXd?jm0A*St<=acx75&hD!)9fx*{<(WmjD z>3E<`M=h`;pGs2tn56HbF4JRON~oPByVTDYAvHh&&7Tv^0GOfmst0#teWg5`Mb@^Z zZ3L_d16s)&-N9XH^bQ=TV}96QkhY5r&8A`*>JLC1)WK2wsX|0rvDJ z5sbuy9mri?0G+De{QE~hiw}SaeQ5m#=z*&HO4pw1-`Uo#Hjr(_in{(y2TZm^bjKpG z0F4v2xg?w!ATZVK!Tc2rXaMMv#dD`dPyIJ-pttJ`1yXNO}aKaI4k%&$w0-WgZ5EBtgkqvvjdes7Qp#KA_=_3MwH~4=zd+VsU zwr+bcxI=IV2?P&NcyJ98+^ryJaCdhP!GcTB;K3!hOOV3dy+Uv(EO;O8eed1-_2@VH z*ZofjV=xNN+2^c1*PL_BeX*ncB(6VQha14V(_?uARB>$bHR9^Jt9r^Z>nRJE&$1UTDTjJCId~7TaZ$n5sZ|SP;W#(64c+(2pIx;N#Z_l} z?ThxJ8ZZ6`8XD4JG-ql?bBp5JesCe_3>$SOVKAWvsjBH`FI(K1Z^e=MAujXn4~ zwao)Baq)gw`8CJ2jm0|F1204;#&53gVO4iS7%K(%7@UPnudgw2oL7N(3n<}FB9*`O za6mj+w_+UMH1rI>L73_<&Q*&dAaDwpN@MwR_65Oj<@mX4;Tb))O1FY-{__Kfm{Hm@ z?-+sgv*`NoTLDi75TPocyDfbOH3M425b2!!aU}n;hR*et8HdY!gm#b0yKn4=n4HJf zmT1EJWRdFmgFQ*(wV4DTduR;n(H-tGFjft$k(oS?bWUrCLvE@=)SkbQ|CI)U7d+3Z zF03cf_UkjejukQMUhgt`{<17&Sf2A>IZbQVSlGvdH>#Nl9h-tN5F3pj6+^A3)jg)W z+PEO8A3+F`2KNKyVJc5!ocR%;=_HCZWUb)%-~P^9VCR@9pPR_v+r?d^I`bO&AOW zm?U9+T?1PlbFlCQ9O?43Hheoja*Z<*uhTM;wVy-xz*0Wjo*Svf^tLrNj8BTeQ-7f* zIQa2?=$*$KgsTX0Jq` zK}puH42xZvG;S^0&+Fj32l%tRf9!b?Qb4+EVU?@7u4xUgx6NBOW^uQ7LkWB-arCzfBIPx!MfcF?hrKHh)n6c&<@-0u z$pIxby3Z1kCgy+|g&r>W+N5>TktyK|v93vmaLYU*MphX~Df%~CMRpu09bDG!bO=x` zC6c{8HCzl^GKDQTbCjz#k6GKL18x0(bdUdFlLjSw!e|0^B+E zL+qUe=Zt$9@f39*#hL7VdMz8_0p?ZY+TSTBYugOtxq%b;w{C5xdn9m67a9@AVN9+n zDw}2yJh62*mIj%Ecp?Da;0BZln9SD@dO2mFtoK8dYFJ6i1<8Jkf!ppM}nm+A%dJAHge#$w$9rY0_;aq;-ZlU(6b=4dDkA;Lytz) z?bY}2sAObF+YF}9qvne7=}yPXlRIBVSdA>a!NbSUX&d74)0SVZ_J)JOYpD%GeWwvw z(7B&sq1`aGq9Mc41L}`s9mnk!jXSFrZ@nat~&>)eYZP?sLao>Q-E@?+YtAhaN zImm#$2csJv?BNrLJBo{nhu@7ST0ytIjD+D|HM{T_n*m+_VQLlvEp*6R{dM0z0{r)B z!wshf*-zqY0_qXQs*0HObA-y_`gfZ3&s1|D%Bog{ zml(DBD%0~ZbgyW1N&b0Hlmo4cMI(ct>T_7mKB9Suyy-u?M)MTsm4v-nSt`2(-bsGr zZf;0|L-Nw!USnurcq;G5zbtiU!=QRzOzR6x?GAfY2&>t-mAd(JqO^ji=@od%v7XWx zWbNNS2iaKyhwK^0&F)WVqWi6aEC%JmC+-QKOP9y5vVYnlGP?fpFX&jFvcsmb-_3dRT+yl!)YY};!=7iU7O!s-yTYDO#Yje(IrCy%1}pJ(aXZ+ z3W7X!%Z)*y9RvEzDvMykp$O)ma>g?ba^|E1jO~hLAd4Q=0;KoJT9ztg$vCv_+xXcq zqP(9ezRIR6_*3tZ?R_^5&>%&^#|RK&^$~l(C(>Tc+ngP=jidaDwaf}oDdxDl=%Yat zJZ@6aJtvn-E3eysG?3V?GE8WNK{f`=zm5vJM8G^;o1 z?D=QgpNRKe>-GNLW4J0`2(+yx;d!!_8(9cc_Ak71IX_On(&bsUJ|; z?kb8dld+4I?0=by?!#i#Encp+90w)%q{eo{a(^qm9#P^nv2>R=wuiio6$m}Dz1?BE z*4a}7px}OPuj2qx-twrh)_i5(w(Dk|KJ7If&QD(1!2YJ8j z;dP0Q?MK0it^t^p5WbP;N>!_|J74Rc3W^NM)$QZw_D=4*Jn~359ouSXkYoROjCKPZ z=*}|Ulc`~o=Ywt4o`(HI>|Kg4wlr0MviuV<4(rq1DgXfDn-^8O z8?_{zSE35?Z7}Ck0LkJN03_3+eE`i-@ zC0+uu>g%g#5hnNaX~Azn9{J~_+HhLGM`6$|?hUzI+{r`hQ z5o7nMWjM|Mg+p(646hBmF^nd@sS)DzHH39;#Wo=1O`ydJwl+-GwgMT$hxd|yRSSL< z1)nRViR=s_tH+BeU5Zodq7-4C8K4wDZy~BPdU}kuFo2E&0Kp2a$~;=&hx0tAsNAHh~MSG?651nnD>cfIrn4!~F;(bhLUr~1oU+nP&U z$G^v=1#bW2OZ(@VYs@#H!g!t}uOVFT#(w9k987%gc$JQ8;h$l1b-+bkSWyodoW*PD; zOXYz~JL<56(pP9CV*{J-B(w4?s8n^9t9)P{@fI#$2z0kKue$n6@fLYbl{Ys3VmNLaY zRzc#sb{Q=j&R_h0BqTGSx|X{y0>kT!Me4OB_L1b7VXA{j;un|vLyfQCRJD#1ohWEA zG}}rVb)nBgil?J(BlnkL7te5$wHP+hlBb%)Ke>C(3Cps7Z%v)2dwByv#?LybhyqoX zTgnAPu}CBD@l8+8Es_B1SpOy;{D>Y4oQ3*LBOfw*|Fh8OT8c?gd5b=|@(KII;5M%S zpt+~(fhmdXQ}6k~Oi0gn@e!T)Fz6ESE%L8F6Pin`95)paF1!0<`qcb+d$6jvewr8r z9N%TccR#s%eLM49K@hTwvUg5<$R6);(`L{7ajgO{>3B{T_UVy$YsW7q`lhaqI{+mI>v9VOh5v^N;Ug1^X9U zXfg}F=l$GFVNt7YS`{xfYw(Q5BDjK&%i6IJ`fY9t)D7)ZmQpoTU|Cxr?1HghBT>Hd zsfX4ILj%wAWLM=X#(fjdORk0~#V2p#V%?r6&k25df_T)R%Hv+mu{!{b80RqwLa2L~ zMBgHf6{&jQUE8AcAklYB&`|CSESbEfr0;*_%?o~KqXG0ccrq-+)MJ*)@K_HEXFMnn zO^xN(P1KOs?9IT6;BL1YstovRTBes&Y?YO*FdIpjN^)6>9kIgp!WkW!4dpD03t1RW zayPsoXPV`D!J#)T7{180)mjXP2%LOQnTq!Uc{UDWBvi=mXA>Qc` zl9lM?n8#)(YYQxoP0JIP%#r9T1-?3E`>XmEQTDq(H>ul3wH$UV{2TL@t|j8}{!ztm zQL_bkc_PXhmiSCJ?9`+sq}tVw_w8!c(zsg&46-suU+tSFpx@WFQ`F4~u^J`kBoQVN zi2Id@oy_n;owAFjucgeB1N|2!uxwjA7g?05GU)y!4w8afdY^IQoytQR`&-xRy}29= zi?D=!TMoVz>QI5~e}nUlHCRj~0z4J~x~mO%kGDNgu`dts68uI{MZOH2?n#y;28_5} zXRA|#t`4*ne-zApZN72$y$AI9MYcl0itJ??7lSsTKW}EvVgmc6o(I&Ps_tOCdtPt1 zn8lko+vGf6O%Rm0INpKArZdFR-CG8plZSEs{L+8>Wq(0D#rX&~|56Aq^w8#}`9sk- z)JvZ0fTmUUu13_{#C;Fcs%XmN?p7Q!%-IGi-)1=!7H`fs{#2)&d&(m{vXDshlE=TGN#4rV#_7d%oRBW z{{r3#vSc3VPJYHGqGJajp@-NL$t%jXjfN#avIlgG~!{G&JYCs*U9e>?GKFq;V@e*ZDt?5Huz0&R@3g zYY?)M^)%C9qy`*4??dr>HSGH1s07i!>( zh&Qc70k8Jzl~sG#0!I!UveW3a8Q8-jY+ph1Xx%0@k^V!p<@x@^B08Hqm4uFQd%-SP z)f)yuZZ(wh%~JBWfKz0wRN-X*O5+l3riC2fIx%~ZLBUn6`ry@Pgq6~SPvG(|ClzjT z?bS8=s3wD=XO{xHv#552{&6-%`e}-R?A5tzFad&DdineJ{ILz&N}R-O?YS=`uilhz zDZ!xPe@O+kV!eD#m4f=laoNzB(E;5rwSJmFb4{mTpz{Jm@m7?IZcX%LkDgM>1$x9b&+8%Z?{$Hm)f ztG#_e)(@D-5l6szDJVi0bRQX9yEoz$FbA1Lij5QHX8lWiZdBWjobY_ObFR3H(cdRO zr3)sD|Nqcw%(*VJGSc}bStv6g1FF?5rM}Wb>314Wh@+0 zArj^3*>)1()g1gKu8L{Ei^G*ntQG!mp4zqOFP@s?FG+nO2Qiznrm9`vFGcahk`C~} z>`9+2=;&*XHjL0`l@Ou{9|F|0dnQn@PUZbj^5{a2AU|Lrp1*`?IhLMUT?6=QFHbc= z2-#G@8_<}lcOU=D@9S@(E#1umg;)xEhf7Ev-z=^^1Y|htr-RdK%V@e+{5}NV9QUkR zw!0-~$2Zxn3oGrv;`aK$hmR{9aGF%{Xsf8(+M?L7uxtU3$s>VY|4JBBtKBL2cx5Jq zLV)?Pv5V(}Un|=lq6{|I|97>y&dXcefDuCfg`<&u@vSN8Pa~ORvVn>gksgoMBRQfb~fgc?b^EeH~S0{p(q=7d33aV zmcaXKSU$MMA?$UW+g~Oc+oN1|?X`Gg?wAMLgT$pM!=^`;T3PxV?vw??h6U{VHc)(U zJGSNqj7QeTHa);#HhgaWktHGK@O9N*au~UY&e+;!Td)f6jrNa+5~Q7l1zRwOtB+D?REwRV=L?EB%Cm%iBa>^WF5zBfWL2wQbQSVH4R8)TvkaV? zx=ywHb4F)2%{6ztkOpo0lyFG&X9+g5XE?)ZA(hPkX95~AJ$viVZq59d{-A$7l7G*R z{u`41SD#pC2q-lT>%p-tG5_yBuAKYKd9JOcLiW3xKH~`2`?}_Vuu$_5s+J*KX)XO^ zg4WmuIgzMyey-{O407L+;BP9m{ollBBkE%A5WT}3tIs+Xj#@Gvuv;WWRJ++kraG1` z5)URB3p%7>w8tOhI6ub@ex`Av-P&_ktU(r)zV-6XmaJPXZXeWd?Y1m#SJbAz#V*M% zZSZnWtDkGr?FPLob>x>Nz}DBd+R4Pm&O+zZUUR?s4)T61 zMZ3zM$}d4-Esbp=>GA*$&0sjjhE=TU&#^x)FD()@g8P_)(mZyK%ETx~pAS1Z;#C$$ zVNSt)KzUSN-TdgnC<9n7vb+3FS~XWSPU0>^?h1$Vupp^L7ewKRZfu`SZNb@=Fjsi9ygLZ#yFcw*|x7mS+zK15=6-!bCH)uBkW<$PxpCIyiu<>@|Tc{cJ zW7K=54SyY?*RSpdDrOALZ;{Ycj|Gi0;+^rxk`Kj%hRoZ=| zV-3#-Ur6k4fr1zH9bEEtBoS#17y5n%Eq$#j&J#D?JsIHzfkP6}Dd$KEe4JA{UcY?4 zFHZ~EUXKiKe|XGF+nMu1uG+KnFH-|9qx#DJG5HQq{vxZR7 zOxs;b9GFwPPCsm{d})i83)Z)RKjAg10p8=W)b3i_s`OXJXG>R|%c+m0Z82zDF$wM7 zmSo8`(TA_c#N3;0A`sn33x*l&Q>;F#Sjky?&t7C|c}z>wsWL%9F*Q+`^-?z8Kf4EL z&wVB;=Jng>N0(f0cYe<9YGZ@sF=&zbxfbplbC@j9Ui*b+3V<2+8Dh0)Ub7r{d8MpC zTD^8Yh#4XkGyB$jldt9Q%I=sAbQWz;XA-W8@wK~qerW;IGDFN?@FYK- zofLc&2$#l|lpS&5PFBZiZ!`VwSq3Z(}F zy1MS{=4E|5Z)s{hCc{i=_OmDjGU}6fSK{@nbK=G?|Lnl*UM-&BS~jnj>Nc-VeBY>| zEZ)y8eEk087+1=2NvMeA{TEmJvT|4TcH5$#8+iRMcY{A@J&WPVgHppCPl{qfFwU?q8iZo%{i1bLph27xHJhW_}YSAJQv0N7Wr zJX_@C`41faGovvEmz(@9Pl1(wk)j{IMM9kw7#xlK&Siq7(;_TGUzz5MeiSlA)^0A= zR$w;C9YUm|tWw?=r9-3&+~^@O`G*9FOrC0KPQ>O(hkR{x4_H_H$604r2qv+b5&gCD zmK>x6GI)^$*g42b*+S+4t4o_gsmu-4Fvr0vo^O*_{c=uV zKcV?&VamBUQkqvA-}07>0i5a;HDymk^J_qrr93)Y@oV0hO13J&0LoX>jG*Pxrfo5H zxg$~%`lfeVq7AeIs*_7^5WUg}A7Z#wv-t2grxFqzq~0>n>KdhHK{JvmEhC%fPC%^t zuSYnf@9tbB(Yr(%6GhbCFvn^XM~SfFNIM+&95!GC25}zis`%rhf}Bsr$;wfhcP_kV z6QNbS)Fdg+?VnlOm5xsAXqmYQf8WZ$`$Qu7PLOJZm6}Um_0*btULqf?`>r=ESj6nV z=%^)K=uhQOd@^dhtU^(izO9SkifYwg8ur6gLow z$#5GqIk%#-Mcy;z*l($Uj+voRoHQTWDzb)k*{s=Im;R+i^4Xxbwsla$q-)H}G@ryM z!c*;M|AEkpJ3C4PYF*EXa}pzlzqwJ4#edZ+pzq;~U_>)F=I?PxGsrsEf=) z-H}l^a{4{rTAQ%mwyI*fkw_LfdH!^b8x!KepOXC!`yQtm!={ip+yTtt?OD~D+UX?e8~}yB!z5Upd)o;fLj4s7q!f2x`cmFNscKo$uxb1`xI!c$={ws+jMr9?-vJfKD!~GvvH@>54yn@1Wsy)6P?v}xJ8o-p^8#q{oGMnBR;lV&%Rf67hO&W zfcKSEJi)Ljx)WxI4xxn&t9CSMqC%Jqo2GxhiK2|LMu#Zjf=6|wsswqj1U-m3@cL? z=~GkXxa|Qk+7&nMSJBAzd!v_4M3Uy#VedXCr&KU)I)BnY| zvI!Vh>@&>&B8LC#lRT%4uJsTSUmKCmR|SJBd2;`DVOWm=zwC+O;n~3S_ho$=@waW* zea-zIj;WmyzBH-vVolVvH?#e9+_Ssmofiytb~!@5djELo1NXI`oHx8)PoL4!GBN`U zjdO#dNiu#Ay#uehfZOe|L1IyqKyC|Mz)G zCnC%kU$Fg5=B%n}?}HFa+_Tsf2LbZNn|s$P1U1=0J}Db%$AH!)PFo)dtkm^Af~mHn~V-Al1B@faKG)kqWSK_6~Xdv z06(G@NQ4HV@M1&0ImdoRVNaTvB(Tx{Xxfw7LcQ)%11EgLTd+zU`j@2##)JSN6Chg4 zoiR^FwQ{o&Y=Dv(e1j9^zi^U&Gp8 z|J*k1h~;UtQ|A$%vgxyvH>q9@Q(?Rp{p_=9JhZ}Yicb@Qe)2Y z;XuS2aAPDOysh>1=DT~4;v4p%eQDP$gW$v`evaE|=+G4u>gliaIk*T z(B?8-1xTI zN9#6zJ0O-z=T zvI?>ZzsSmVY;?i|swYR)vXq)*Or4$wYi^>JbgM%-8uxK+SE9fSn_sF<#!rmxWu2cr z2d2op&h0}?fX7k+tay7IMa=&U0`HmX9wado^j@JRQw2+gyn)@=ea@Tt8zIntlK&cF z+%ijZoHB9RcCO8UJ^Nk=2RMam)6ThjP zNlsuN`+#*Gq=Q4r;LYxax~~r6cHPoP8VA5%-UQf*z;_sUF<>G(t+2jv`0SvaXVhg! zY&f}HOVybDXqSk(wz33P-wx5Pt=;Is(b4F3LLV}3BZOll#1O$#)}u%*ROaUeBO`?> zvVHY9rG*o>Q`7h3!wC4o22>&lH}qaBIxUDMpdkihhz)` zkQ{!2*I^RkZ^s0RZrE=5p>a`Cxe)!2kW|uaeHMW;6;o=BTX2RTwL{JlV899F z@nSApyg-C7eDb?alE)pIw15d5Pe(YUzt5gRwS2)KoJ{jYUY4WB2EJ#7eBo&Ad|Z|F z{PyUA7~in{;RZ+`QZ1J2I?ZZ(f9h`a9ZTP5cTxrF9t{iCZ)-K2vkNBKP=xeHev|YN zij@d|yl*JM6QvNg32QLZK;#+UtT)PCU&b2p|ML!qNlTAE=xg_5l0koPS}Q1(t(uDO zw=&*}BK7jF+qgt=mLNn#hXkv-8hzp>L?>q)hV6Mh9zg@|+CkvZ1H1E~7d*2GL%mIu ze4Y5;UI5FtcbG7-fNqcUs6@px^%v-n{#cxV)2%zn4yU~j|CV)t9S~59-472i?Aumx z6*Cya=hpZ&JtdH_FvE70egLqdQ}}aLtLz&9cLYOU;rpx~YDXx%h&1qB_$nbkxW3VU z6{!g-O}+~3rXp)S;dq~%K<*_e1YrRAd+0Nm5RMnueXen+onz%XUMQM55ge z)50jDb7Rf|QlNmvzhCrQrP#w)=S&|2_}(7s2ooIR(HNGo<2gHjLOf< z&(R(HI+WPLTWT}5%XMnsD1hDV4dtCN{Ac%D0l9lhUG;zlZm|@pvZ|gieIN z6eseD`7@bl$DJ%uhOmNaqwX7meO)G z>A~#};oKi-Zq4P;dquHyem_k9_IRP7l()CCbkh~?S!JD)>-1r#4Ik;1z;}sxrHiYl zg*>Kb<*;zMhCxG5rXFRh2s2j z2khRR*g!(te=VjsN_eMQY=hk-AZ(?@SX%YP$C-xl7#yN@+{dBFwU>FEASk zRpwS+)+}E7D2F;SeHLe57l$OkNA;$;i~Fr4Z#eZmsAxL?1-J|L%pVD)H;E5}*`D-H zJx=qUO;%=aJE1LB0r0mQ#@Y?)IbxnjVKRYWz3|X=Ec}g+oJvYl;XE;MSUol#IAxsS zSNr-Mn8o42$L*Q9DGiKDe5gI=+_k}r=Oh`s6c?!ixMjvga73Wu6Y8S4$+sVGo&~nq z^G-?bi(UzuCjnuvdo<8x|Cc?XL$?_5y^E4Gc(D`68b>lOdNAo|Cb zVUdMi2Mi9>+wr}4jBmq@m~8z6kJoD&Q?JEJ0_S4x z6RrHk@3Wg2#tXXRNlAo;FNk?M%uGQx=ygJp$&cs8AK0Z(qa7;sh9GB4sq7@(H*OG09X5gH(-AW0W9IX;3Ft4p{-gvKM`^3 z8sSIdx=lFt4+A^B38kIXnNMEvF4$rC!O77a;m+_zTjEJKA~VS_{PL}pOo6%Q#Qud3FdtiF6zV|1fd!gpp#>%qkhQ+0#(y7s8O(r#)O}1N_K<*q3(NMyL%_v#Dkkp| zHVoid=ID$>v`dxz`l0~~!#5Cs#Dso_)7@cSU#ISU93~g!?3Qr$7e7U)T8e3+ua%HL z-oMe2Z{AZpk!i@j$x-va*qhi_IOuNV{ihSxHTuitve*Xui1K>{k}Yw5x{dF_6d~~? z9`g)cMH6Vx!N+1?{Q`VI+3bQbaS{Rh z=)6L`5*_u8rg~=>)i)0fQ3mebZVg-}c*f7g**Q6z8ehIWm-IqoZlkBa*aqSsHH}f^?%{TM@azF48N`Fd-{H^lzd3-{234;nCv+W#ZHnGhqE&UR&`Eli3-^q5%r4kyajJ#PN4| z521`jJlE*CKpkdDa7-5T_uosf+PXB!J=d&ibUj(H!S)55zWgYf{;ZZENPF4ZHFgAPN+fna+~Io$@@~XQ{b2Y9e4gM-tC`= z^qZ~z{f)TmuAoPk#b1e&% zx~X$tXcSfX{L0kuG%FTDLmG6s%l6X*1ssQ=N7EF=oeB%%fJO|tlk6h8LdWF0Lt+r*} zH%0fVLdnAT*hWSgUdr=X$#&s>zJvF;aEC6Kky+@Wx#F(yKE%}bORWLb|1A}QAT(rJXrW# z17@BV$s)XZ2$T;O^pDM{hd~N7PRq5$(jiGR`U#D-q$!xW05X*`YASx^`&&G6W3pA17 z57EV;(XPSD4nxU_xyt6ky<6t>lrMz7EbsA%kFT<85IQ}pZl3MZa@cWiU;_Tdx%OsI zzksM62g|h5lrz8j^Q0P_`E=CaK(krQXvk7Ppn=GP>F=Lp$2^J(TGdOu2GIO1NWq$S zjO(%ES0J(Yab%; zG2TxOC+E|>$L)q?=r-g|%Lxq)`Tp?val$EOP?qV1^$e7v)^30{%XHuj{f_8pQue$jOJXXGj zo^qp-)kl}dP8}ZN@5A*xyRCTmvnqh`-;!x_SQfL#Rj^X)(n9*;6L8a zY0{!k*k?gOp2fGb0>s}%#K7bt6PX$u@d2L$`ya^sg3viV>K*amE(G=}76#y#grj?W z3GXv@uJy7Huroy;vo1|0k+4(0+-;KUJPz03K!RQGZ6CA;qrR8Xh?VD)9-BqjlG?`K zbGO*ktxyS=urs1K+nJ4DGgou*pyq$P>lUw-e$>*_74qO-Ij(TLzLg-$TK2dV{@Sr3 zF!1|mKYoA{;$z(6(S)8*H~ZGqQPT!~fAmYsjPMir1Mu$qDT)}Ek42p@B55l10^AAb z9b}%yrG_Orqn*((TOFN6igKlQu)VqFFUReRIG_9K;}e*xe)-2;lv{RG`|bg$e6HDa z?MJv98WY#9kv&~q)EFF#-qQ2r{{RD*F90bUaq_nNt_j+Q@Ku?86o@y`Z=iGotJQymMa*o%Y@X+=fT$}&IJ^SoAcZ|{e@yFL= zlZ4793>NcJReS6P^BsTA{7|Qbla}C*?2&rf|MScC4bjXezF*2;Cz85a{uoJhoC@Q$ zomi~tC!geHxWlE&}G_Ct~2O_3x3K`a{lJtHlyG-H-Fc) z-PQF0SSV7lhLt*+dz6H}SC?C4jzN_o%=o{u4ZeNK5{Wznm`x|b2Lkn z>yjz3<1-kJZ}KVdEgsY<*19t8BZhhi>XkJk-?q?a^fns($8oszKyHSLhGWG z^f(=Gghc40`F_L)JoG_@^0nVbRAx84>$*isawLw-CuB$0fL>xf2=$%)S+u@>wwji0 zM`8+}Wr|Iq_rm{2qwRKHAt=0$bhI(ER9*KJv#F;vvTj}-%&)q6tTvqTg5^8Ma&RyT z`3Fk1yZv_g(#4T7mqm1dBAk<~Aw2|cSeP{UUvxhZ6!r9MePCbMMgi-adI)7fF;78S zGnb&)*ICd|1&?Iw>4U+6FC87`O(9ztK?gDG9g|^wfL)>WgISNNm<@PaD+nu+{gZ2- ztV@G@p^%rl09LHc0L9`O*LwY=pGAnaV zN$GMo7#ObP3CM45EnFu1xd?|pS}*h+U^q>6PGj|?we;V$^RDqc$QaJt``^eWDK33( z@*LaQ_HUT%$cxg#25B`X-V(B0Tkx~sc{U&IyAIv%u8AiXj&20La{PV$+k4N-_qM!f zU=itEUYKmmPq$QKqt`3?RDt(Ns&osG@^n3h9|dl5j{YhlpcLh$!VVPBoJEWdLJ(_p zjg!nWeFl2U^R~z=s77g#3K>xr)(ET2_*>H+RbXw(Z0n4w@yU`!t$MnLYKQJVQcr{x zFxKdr8590Ayft{C?HAYSq(vVD4fI@yYELyH++fr)4N${NJUpzj%1~W}_Cx=)ltoF{ zv1KWt%imf>X?^Hud62oK20hY`aFa9rQ<-w$6`0neVsD-$as+BmGl!TTxTIvFK|r(T zM)?!@>9*w58?!pLixVoeNH{o{LS8=>#-PrkYf3DxGMooRlil!1IAD99N05f4e+rJwH@Sn6bitx;+Zl(K{-9f{OC|YrA7F{8&A8)-bw8bE9rU zdyev!;y^7JvpR<}zmSE(Eh1EOg&lW4c4_o>r`&PTwLWpqnCkcCd?;zpAby;d+5thlY#`p0M^Jtv!x~SqX<^Ws}JYVY*tAs zdUOh79T7;4rnj?SNO=^0RG3H8J`Q14H4Sy=$JyCVP-YJaQx4TSodr@XAUYN`hFS_t z>$lIzf)#=RJ5p@Hhi5e2q+$EAF5l~oA~KyFURau2H&)K+v;O$@vETU=kf$p;D6iE; z>)suOrA~FSO<`%rzjWv+rszN${FLT=;+jV15ICjYTVVT=CG%mpNl6=nQ`IZ}l>a#X zjUJ2Te92mKq9^%U;@3+;w$8eR$$UQRq-_FTh-Dj6=8(p(=^8Pqvc_!9%4PZ#cCC`3 zwkxv$YYBPj0KF~Nsma5_AUv`ZdaYung01>T9z&&W<|dH@V~Vv5;r-I7ktGk=QSFTD zpQ(PBJvGPyZC0+A7SV-*kzBGg3_3Diql@o?`UZLhVpbC?c4il8UR&h5bKbUj77o?q z>$-xL`e(!E`!HXrn|QXnsOmCO1q!kR9|V>Bj!^tLa&3t z4az01ErSbeT0ap#&mId`$J$uE)iyBhALbZlZ<3Fn$J2wyM_`0u67oTz zCnB*1ek-S}EohZ*6}%?|!(T!_*(zDHRvSflZ}#eMlIlXj`XDR{Fei_G;>@vgI=`(5 zp$T$vOw$K?iI~AX+jc2U;evIc{WMSI& z3n#4I7X2|;srjR0y5rE%m!?)6&IkQ6xo)~6zo~|IV=&6A^c!h7?pJ@5ndY-y(tIhC z%nijlJ_kjc2zL9_Yi$HDK+pZ!>B7&7yUg$^a`{>N^wToh7PVh~+0RqcSMD$QIluvX ze8V(_IrQ0)9A_AYy9ed)k&zyd5h-~!n#fBKXo@~K#b=KNmTI6~PS-l-V%D^mRV6)Z zE@^9}Wxx~}+cnD`OA??a4Kq-fJyqiw`va9P6y}iqMa#*MIFwcr^KI$byaA{FeiQrN zL|F-co7dNni!2wPrgLv4tWBa!kx{2~eNF2J2xCV`Kc7LgFckMEc>|lTTw=B0yv;Ee z;!uG-&7mQY)UXH#`tq_;8<@4pKG3S8PX1vk_h>QVG_Zu4Hp+Ir-c($1y#Dxw7F$G= zwUl0Ytc=_hsdh_M*1)@?p}X8i#G9)S8DiEG5b<}pH#5ISyTX%_gzvFlm?sy?-KD=G#$8;yLP@6e#u>6C$eJSA-ZqiYUez+;Ied%G+ z-WukZPWCRV7JOY%9zY(uzc7E_sOg=Yc9nAMG6ce9fNR$)(B5&nAhfA@$4pW5qnO~b z_*qeVmFP!KX%g=>QGGjUPkHSRZ?-U((QuTtXJy7>YL-#@5o2F9pHHarzKmvXrR4IY_I#98>u!8{EP+`SM34tEJNW zinV=>q>AnNvRVjlz0HpqKD$?qW%Q&(HBLT2Uh5zd9Tg-+CWgx)kg+Xa)waCK#BtBT zl|*fQxaP*0KbW#x0;Hi9w_=w!0>&XCbR2~xgYsA>n^)PogZu4)bs;QlSO)D zeLw#rBt3|*$`!2+&rQYmaV0+YCt=Ew7M~vTLo~DFCGTiJ-Ty_|TgFw{u4}(i(o)g_ z(gK4%jxvkG(esyUbe7gR0rwt2J0Tv%kpM7!3% z#pV&G{RA(WuX=PXprj#!73L{f*wEzUQi|>0KI8j*FR5J{3b0@F;DgsC>cYDYoS-QT zFawqjSN%|8v3EyY+eth#3u9nmuu1>)3$W&j!O9)lLL_ zBxTa#Qdr9gIczN2j|tOO8+xxNfgwHvvsbaFq;lo}O4gXtUB50(v{LOnE6B@GqwuCpa#iq&_ya;@Fu5or=5EQ;S9mIm@0u@wR}Vj$rvG;&c9-!a zTgW`-Ir9h90x&SRxsoT~=pn2`=LsQd*h$>7)N6lAkDR;jGyxqWA_`uI|Ind&{QMM6 z^`8O5TEj$qkdg8`lGVSOLh2+HI>u>6z)%S=S>gixt9_U5OP~$9y7_}OWO+nIXW8!L z=)%Z3*?5{$>2Hd*{O!{-;Qx|Bd_v0Nmrnt51z3)!FMyOI>F?)6w)Kn0jbxz1E3PdN z`PPCWOlrfdG~NL!T8dWzud5M0cPQ51sk@qAPvSewpPqh+-!GJB;1>!$Rv6ax9{PNL zfOY$oxKYhjMRdsK3?xfB)0Av+ajjm<8mV(N!DR~1XMY;3HK@Nso}sVF5+#(El(6%r zE<_*d@$G753SkEE!1teH`PJg!L-Fo7$>vLSSL>ib5@0%Is5g zm|A=jWgnQ>tm={gdVQ25(t#<6e1ilZ&f*|PvmkE1TCkGD9Q-r-Jt2h5rfW^#~jV|rRYKH8Q%Mo{=P3TD?LM|d2eJn^U4y41KU5feq5C=IOd)UB|oh4)lf zuKNKccZY9N<8D7|YGEQ9<`bqk^R3!A`tAQK-1Rj5vu1y$d7s{tla~2Iub@5aHfm6R zUN{-(vW7v%eS|Fvs>X0`Y?f#D_IsVn1xXHm&fbdz$Su?AVP_qM*{=hRr((wDy{$Kk z{zKMXtvkt!M0v-3yXN~g(8-MACc9&@bhWfrctco0`N)}N29;ClOqY`_?&z;SCqe%I z|AS(QPq+Cgc@M~MkB2sjok$(SN5OdT`k>s?z`Ze9Z+ii3FWW)FP=ddUF9^q74J4~P zh7Sb3>*WW*{yM_EWtj&Zc{U(Q>Op4}yazo=DNq9$0cD(t#Uf=`P3pC#slqzJYr zafnXx_OQ}<={QKPBBXPnDE`K!1G#z-eev@U@(ZMZ^+G;eEtMHGH}|!p@v-i-%<+%A z!(6|0vt)GJSv<_p)m^3E`1ED-@GLt z*j$TMUvUrv2yZxnkZv5N+QM!nSNxAXmJi8&g7B5VO;j-1(nkTiMJI5T642XR>`vD{ zW>=>QSyonod=*x6nSywu%J2l0uq-_nvd#3qmJTrrBzF@&=T>xiV;t}3+#L8P$egT# z%*|YLs9(P1X#p(wO5QVCMIGjTtWNzBk3h-m=bu>v`8y;)!QwdppP4*rtv5Cg_@wOEFdGlcV9g};yz@2khq?_TF zsnk%P1$fA73c(lcx2|3bt-?0n@E0G+NMw@UDqr#)hRWe_$)RavD99N*w3q5*@!q>| zg9~2Sg?&Wa-xE-H@o_~$2ZU*J>b{W<7mFb+A{p~;Z5n5u=($FQqBqAiY5K0w`{wo> zX(0ivhJ7QNK!K$z6&HGt>1Alg@hp>N=W) zyrZRL*2<*70ypVz2U2|qdMY5*h@r=##mRVX%;yyN;nVQ-Iwd=bM>E8+?TuS%^zq7O z(s1n4X@5aHxhtUG{FP4a(lQJTko4wkm&EYyoq!M^M8Hmk0_E&p_IA5Ilk~_X43P;J zQ-LxWZo|OjzmL@-yk`LH(AYu0p#MOr&Qa9|Axbqs_r*W14rw_tb`%MBiw!gU{*VLt zzF%$!maz~J+47(EwqiP&Tt&yB2pH0mMc=`R;q)REu!eRs5F$hqNQ8zDCD3`}wPhOH ziD<5e>AaPgr1ZAQ!)H{weio|P&;Bb|P9OE5Phrc`DlO$WSsq5jI_gv+}A9V>|da;@JBFfRwRMHBn8SFl!_*j%vmp9!gl0B1ew zAsD}9T^QqpMf68&RrcIg(x=iXwultov5*vxTUp zJ$Nc)cr3%@m!Zux(%;7{=aiTZLjKNN*~$FA1{*Y>Au$q&W;1NBoG_8^c6NEvHp9|{y5_nuOqw#}NX$w|zaL;|;!MI_>W*7l-b<^*nE?Wg5nSr%g5*+nu z;ixIMyF*ggZ_nPa9x^U%M?VecF7^{nKmVz*U7`+K%kM&Sccfz}hspVHzbN0zswVy8 zIBeGy+3K#Udl2&r2#P=>`MbGa+#&=gG~W9&L003ss}H)Dj1G5*!^2H;=TRGvicoS) z*oXGY4EN;#_pGBcPnMrL*SBgXD~&^^e%!JPBv93wB+qgf!OMfxgNUip_`C2!3|r7L z(6jJMP6e8Noe!VaZUVG$5bP%#hhyI7n7%W6JkQbd60JXcEcbo}Xx{ISSq5pJ`zNV} z-wLcPCH8DqxZS8aZs8Z>q>pI1aUd)8A40FRB00J1y+{%-eKxV1gWBk|rs_3PO%jk| zO#l`9DW2a^WkT31#oFY`&fXDfe5~iXSI>Q=7VcxXT|WX^p;#XO!2z?0)9UIg(r*h` zu^b<;00?~Y|G27Hw>K>(MlP+}Ye-Ip*S$L*LmIgeh!du;b(~o@fwpOg91v2#LtM|t z+mY#RDz??{J}<}(?;0@eE-s~czu))<_w;BSd5aj`lQdc-<}qMM*bFh)~8uSyAA#tBUN8ZNf5%k4`9 ztOFaJx4NYZ+X zAaG`%e#FOWCu&}^!0`^|nu07*G;^%SCb5xLRRct*Z13Zd8EUkYGCXUWlp_Cl>>2nv zj=AKd5kxBH9oy<|$E4$nw#TOc71kI}EBLs7cn&RKS=J*i-doWc{2|h>S!7yj-!OY9 z|0X!rtFfZwptEQqV)fT1`B!P=kn9{Z^n-Xz*mo2zci*{ken{rZe_8(!2-nXi$)HeO ze!fqPE^Ve_;l_z?r;6zIJ~XQBQ3D>LGjzC4LC`Gp^$l(iHOMlQYMeGF&m)fr^IFEOYB2z3m2m0{bRYq8uFz*4s|&8Z zq4wCE8+W@_YG|8dO7jcft%)WeJp=d=0q^XC2h!D1V{5pUwh#Q~qsnfdP)nufXQ8)F#Yz$ZEGia-nI-UZ>YhWwH5!JAc=sQWI~C&F^Zh6TPej zxHjScTD?CgKOU~n7cJ2~2CzQf`PrTynWe9|I^5--{`^T0!1vOBE}nX({(U5=zaLiaS?D zf;|~p+y_9mt2lseIbt(^u_N72H1zRAoa7A+043GSwh=|atTd?!!3M?Ebz;Q^jhyNx zJ1TV`HtoHP{q(u<$_pW0lW@(*2agzPc<>&!ns+A@=7Z?YpT zbas5#DiZ&4#Xzf5zQro@2)wm^cF>a~h0wbdUvX%S#BD~MJHj+7a<5H{m??-jgqV-< zwHi4^zp_{&f^y71p$nLNNufYK$K;(b_Mjtxk|kf^({Z+C!{D0&aEpE3&c=VhU|=`C z1|7z8HNwUQ71xZxvP;G$e?i90FY7Ay;KBfyC_u7`OBPTDdm^T|!A0c7aF(-7QespS zv9`wo#R`oQcZVWxi!qT2)>iv(NdX%Wc0kJP z_aCGEuA>*Z7mnWRmr*??JC}_cQR>rI_7iH3x@>g_rp>BjFu&^F-(XrabZH%7YaIzG`f^nII-5Exo(#Mj3!CI2N*_Qx$If~9RUzkj<{5I~ z=hH!Whx{w6$x4QE-dXtdE9#WxCJGlmmiJKU-L(indtd*%{@EssBF3g^Y*$;Zmka6l z`?&>5L9F!A%#4h{OHTT6CBybU3n8-o4FChwU~On7Zkqc<_KKQ*ygkV!!BYw|zUdui z0?_r|_)HcGNPoB{6;A&%yxp=S4$SWmu_nf~*l-7nJRU#^2V6ybt5xb+IH?GNuutbUKdhoF0&EL zZ!CWu_$DvLd9#l8+-dv%r*FDFvNVH4RB&AnS_1MmPD#|gi{qGgbWIjWCHVzhr%bDB z(v9!Z*%3YhszS@{P&e{p_Q$4jtE#LtJWzq?d=|JNacy3Sw&y9ffeQO5! zxo_B#uC3`gro=WnParMuT;INFKD~H@$3cbHAf_veM3YPZamtA(cS7D5z?%mD3|{>q z%-NHcueXH_|P6k3h1>aIQ1&@R=e|DQw(+@}D76A|3{WwUzG#x1y za^_mLNFKQTNIn)LCTaJPHq>`Q4V}vFasqE~H~nuSmh7aT`NH;jsg_0KYm_`dps&n6 zV7Q%_aJ1^(Cl8%y6I}=6Ae~Z&9Q!SW;;lrP`$2Y<&bdhmraqVaL;0a> zsZ4EzI71<@e2Bj3-S7Dp7GQ@RL*x+&M(;nL$jB0X*0SU!Le7BS);WR6A&t8V5|Bxs zH->HWzLR-b>Fj8mqHQV+X&SmgV$wXbwUodjSXoT+n5zr@H@xqLHfmx8zMbK7_`$g$b-Hdjd=!wQXgQ72{%38_~5(Nz+hrgMT5f zTI)<9mh8c+Bgwrzn6Ply>FKi&avUcl{9}Ek+|kbUx^p-`0!N{gPTj9?$)s=XuS*`J z=_B$k2`qRHQ>(j-r)K0e!vcSt>){%rP+x8rXWvnq_-;N}hZ($Dsh~8>qIl*O>g%{k z-+vD8$SQ=>7;hBC!e%`3iX{76B<;i>lI1e_ST166UHhck9q$LBL*iVkLfPq>yKM1z zuX>_GftWgY2@kmUQDdvm)X$Q9w8YXEGX)sjnSZOb3_?RX&!tFihIPwpb?$G4Te{U4 zT5N8#m4(tbKbNX59Hnv$DW*cN5va9o-``8U*u?M|VEbY*>`Zgfx3)Ji`0I;0N#Th% zx8_^X*oemuDhY;iO2Ma2+Oc6)g#!jxk>TM{9`Za%G}dpRAul6yY!?YiLMX1xGsfN+D(082-%I zVt;lq1@s&(f?e25f65duQt32O6KOHrH%*?qj9jmRa<&aBH<}AhB%P8@C;kOT0VMAC zI%c!(ePvnzZ6TFkG9P-MbY7XGgz;1Ao8SBN>dd>C+li3=>~4{aF+u`XB0{(YX(HE8 z-E*UQX2$o~H{JVx6YiEJjo&A`T^e9iz$qnnLB%X^OW>ihM-CXX>oQtQpWjO8ot41u z0`MW*A(5d|n_I`)N@Cr>xu^NVL$i{3TaBQSyNi0XHq(4ezg%|JenVW|(i$p!!Zw=; z595Tp9N~pZtW}s#A0+VRTFfE-2*vU9Z;P}sy{>q67F}LN#U8MhUF2_Vt_8Lf^^@Gl z{_vEIw>yRg+Dt$pxA5SV8(3v~Z0U!!p>bVDn0OSf1$m`WpgCMz{zd*mgQtv~e}8kd zK=om}&ZnJ=vHJ_;iiiKKh4G%?Nk6iicwZ)%2Xi=*((@x>#+Q%K#wcxHX&7?yb^JuF zaFjfb+4Sf7Gf$~`*-;n#_)rfF`@Wgcnza*Vr}Er>UBddeVEP*_1YnK&%mI^<8Q><5 z7pQLFNNSctJZ$hR?d^K1(c$6(7wCoGIz1omE|1F7-yHUrxNS#j3J$>xWmcXS*#uDU*s|UAKEbW zrS9#UB$^_`2)rV@=#KTsYxuH%8!>3lpD%LX>2;vj6<*FKkEK&lZqrravOo4< zDrULWjZ-Pc!}K?9ZCX4Pd=tyTb9pa->Nw^J%UfahRxPqgmiia57;`b-IougPIZlKA zqnIrML|czRzC~lwZZ*Ow=Hn4t*Jc8dKP z{cNddw7|CZ28n&Z#ad zBT*WkvnKtjQMM_9e8{mjS0nj>Y2SD{k`$A`&^t}mI27Kq_Ddc0a8&uEMe)icuC8wD zkhe;RU95mdZ~ftmjj(ndRUvW-@2kZ+4SN94X~8N2U3czTWp!5cVWM-jE9)Fa()zWf zT$?<;s?1}nK_(ygczY9hp-=Jd)I~9ij*ER4^wh{enM(r{s~pfV6945p4zyu@_&rfh zY1;b=_hqd%iBk6;svr#S#YfUF6)Dw{kywq!Uwqp=gr6n%t2NTaPQ#YJEG&CzOw;@2 z)K;(iWxnkifpn9O4E36o*QPf#twxMRV%hCr@eQFUzm-1AjHhd?FOQ_ncmaNr=@M-m z7t&b8&95Szkx1yAh2$L;GphX@!-h#$)cu^fSDHBi5*bFR7Pf<$T?PcR?Ll5he*z$- zFHiB0hRMx*2duXD5P=tZEHJ#QPR0lH&at*YG5P(!i}coA6)x-iwZXL#iU*AxFzV#G zLeP5zo(ZuQ9N5v*HN3S#8Z<=J_svkQm=?YF_;`kHro|r?8bWf`k~$MCgSWexK&H>8 z^OcOkCO`L;gEQVorpIJr6&tl;>i#17U@0+WYif>(fLTOiVc5(ugiwX*R=WeP3M)h_ z4aDQl?KyE17d!(e#3?lGX1%7`Su(<5W!Q~MlAIKK!C!q>LQ@(j@IFMAHV z;en>EABM%Rqa)+TrrLbl!C#g)@@AwfG{GQV&nAJQl(G(%>bb%iKCMk3B+Y2T8q1NjJcG_#ZT1(HPkYDlppiFMRkwMB%>N$Egp+(vNrA~@s%1`b>s&_ zFj{?YeRJxuUAkUGJ>Zul{qAi8X(r(DhTG6%>KwcK)yVmkORQ^Aa+f){MovR0Z=)Dc zWifPN>isBDp@TsV`Q7h4ixZ92@_q2pcm=4PQR1F8>uC6{d$x;r3Jd+6XO;7!)AXW4 ziiHH<7RU#+5WkY|8Tg1_A@weyi66sx+0ns~+TWTV_g2gq`-mb3mwIKYOlIaY4dE42 z??UAO;{59rTLEpONPGsTcwWJj4jYNC$3$$sJ{}j{pJnMf{~o#e4^sL+H}aFa-b3rt zv4)rBC;s19YsElIwG}$MxqijSufEF;ulq1s<&*;NSQSF|^&9DR{xhULiLlznp!&4} zqAgrktv>eUd=ih+F2sFx2bcA)ybK2fs-88jQfEq-#jh zFd&<)LcT6!CQkBPbhxhlfDZpf!>uB)t5R-X)K6LY#%v@8^1-dmB`px~+PYsDkw0YG zi}E_LwSWFtXD5}_>}^!Mbb9;)=2sIG>)_``yY=flLeVYE1K#BlYo?*pOSNr>8Fr%k zvZc10E)L_pJe)%2TK=UTSs6>Z*A6O?znB(s0hI6e{?4TkFC@#atERboe zI0q6EKOkO^RiGqCH46{wYeA0ga@`62DJG^COSnXEp7m<_+dJ}I>1Zc`jrP*pj6pDJ z1}X-wS)w00Ly6q8T@D01Y!+!4)gtDzP`Rben6i0b0KI%s_MPraOx7+&2A9UsK89i1 zh4}-;ccUL4`|ie}MkCyU7a-InRui7eD6Uxt;GSBrAU_sJl;H#7nCit2_Cdb!oT}c1 zO01Eg#hu;!$UC%zn^Me!_#j6@qy-gB;{;imu2?bBQuTiKym8(2ybAkLtgYspP(HSx zFn#vVYZumu0(iBXH@B>6=IxP@MN$NK21oRp;L|(_X#uUcGX-_O{5v;J9tquOeP)zH z&I|j`)f=CgomE?9*W3t7^we^fuC6J041$gKW^`+L^=uKw?l**kRNw4w`ShW1lJ6(&#V63pl|f#4(jMqHSj>T_a0)@U(p1 zsBFdCg;>}KZImC2pu>g zoMoxV)G0j5axO7BkTiHjRyLGeKDGq!&sSzF9EbLOC!=&9F=!MeY3xSDQE!VkR4O~^ z6NSfp<%PcO+@9k?o&ra^td;RSN93tk$%L^aqTGxpsvM7K#M>0p($X0MVY^?ljX~7n zU#_{(b!A@?N_kjt1ovLkl8NjY-HjJ)R@RMD&fq+*@{(^KKI5Dy?uZEAqmIK|I%QqU zE4!Y4^i!Dortv7K)Hub~G`cXsrb>48|OXhzo6Sv+l zyWDvgxo)jTOD0@}!IQ0`tF}H`cK<>=%kvqe#|bX!_P+7~2pX{-w@6hVe+F5iq)1nz z);CdOdca=BJ5*Ihi$6~=Q;GJJ??`fdJ z)1+~oQl~|wzJ!S~<_QKR(kUNxA|akGj7;3;n+N$Xsqsc7DF}JXmV+Q0Xbf?mNUwDs z2^A6fbELTJ{lV`Bt}fe(aK@Iq%Q$S-wg&)4qUGm+v#}CUH^$c>8+URP&%{d59 zV@c+l`MJHJOgdDhIEelc(l)k}onL=`rLF(1eK537s(^HnmQ-r!Hj%5yzn-mtAx^RK z>&J=-2@h(;B~RB-!5!~{VR?4>yMD~g8nI~;w>PVgMhu$=8(2HT%q$;*yfbStI}evB z@!R@9aeE&;U=PVjzTuSA!d973c2>EVgAq=r6SfI7bLEIrD6M(EngE`Y9_+N_POS)JG_MJA2(;q)>C3b{X>libFi8DCvv!hSqP-EvH z>nk{Ul0YS8CF(R40Rj_j6Q_s^6y))z_B>yL;7{YrDOp4UT5WRHJ_mpD=!IcWLsLc) zdtIahE}|}(2b?%rCvAll@1m=;eAr}s*W;jK=YmfX=QkT4RKW*;f)dbO(KsZ6gJ^hk zwKjAC<_f4&l=GGDPp}3*w=Uh^ln`*&bbk36C00^B9ABx=0VAyI)ow$J*pGY!NTYBv zx00bH94HPGY|*4I5W0C8ac4&FyZ+%Iwq_rt%?404BY%=R5{-4$90bgUfo5KF4?rX% zKWQ5|f}hGjKTX@#zXHjRrfnk;>wZ|%<8ORs;4!81dz>fw>exKmdMZ)n*nTXe=N6ezQiN-hZ@_0HcXp*R(=*pvRl|$QSgM zu^5077>k>x|0AeTcm7i@eg{5C;{k9P{wJNIfo7{eb*NW-khxz^Gk0&N)Bq{)QE0$3 z`H?92?Oag{Fjcg~O8boE+kVNdSs|OGIp!yNqm_#^53ADQ=eL8(Re6PVJRh$5ysA8# zS|*G39WJ^y!jPeJ5(6$TaO^LHTaW)iL+(0%r%-T@T8>ZsEyo>LVBHfvR|J7-{y*$Y z{Bk*9HOySraJ^IxK0Tq8BLR7u=`zjp_Eay1%5JKzG==##EGC!1?qrtey;J5)G53P! zAN(?+VSjWI{M9AQ&oH@Zec@#f10~JR#5W@kNYgAFIFa(wM_ZdJ(u$Tg^e$i;|W z9b#``!vLxA$*Icu8Em~UrWuM8*t;hygF6TH}m6J`g-)Rs2IM-Aq^n7SNZ z@hUYze&jm!IOwN*^eGqrqaa<|yNo?b2jF%IQ|mWPoeqp)(C4iuB2#`X6%YK{Rkm`5 z))PCNTtm+#tJl?2TJPWrC;is3T%1~w$J$#vkLBc63f@Ae$ZZC&8wh?hFh|`XG<0o0 zF-Pkb&aIZ(>Jz-lSw)_N^b|6GNrZ9w1p#q}%ft2W4#sIx!X-x*5^sd%&}mIg6BtkG7tNQAA5SUEq8d%B^DO(K%N$^#BQEtcM?P{`CSv}pq!DZAqz`BJ9Am^ z!*aY}{M$AX1d;%QwbqWIUPT9HyS>8&Y*Zb77Sh>dQH3!wK;`Uu2RF^X-v74!>!XOi zz_ntPHX1oFWgQx)+5{*Vyt@vuR6ZXW$>Ikuj_9>L{L>WTemeO)h6g)->+hOC1vOKI z&+X!TYX6{#2a=9j&*w}h_zrr1HpM+vDrXr9{ssHVg+BgJmM;5LyI!Gp9bvR1)?(Y z$o4prUu?CJgO`{VVC2i-&vm{pAKx<_R}#-HNIvWL6Qy?ZOo!eGJ}Iu!F@C{IEOn#7&4tp$s}7y` zB32=&>7>g_4B=xd5lN;{c-$Tk6eA5EHq$Gb|&UK*`Y}E^p_P8;&|~@7wJFj0SC$X0M!^d2~VLA*qCP+?uRX?@{jgh||&hPt{-LvIw3#Wvsl8TzTNP-M}a$t=7z7p@1 z#>5Nr$4fS>h6{4{-j}LuDOIT|)6jnoSxZd8?|yl*i_W#I<#QpYAFwv47EIr{zJ`TE zNm}3?fR#|F<&%!iB_ED@Wmw(nn>YMnbe#7Q--9(X;M-0n+fT9wJF{%htma_fa`sp@ zs`~^bRm+D*xZ2&k-etFGa`|0cu~*!D-SV>z1k1yQxID$(;wL(Wo8e{HeA?|Bp1!hM>sb# z(KI=OOej37bC#}D9Gea(SZ+#rzKHyZ<*Fqzt~A4{;D;7PFKD}LKcUYi_i540;c6Sc zuI$+uw>TUPo{rJa>WoY4f11hU23!PtHI*D!>yk2)pKmPImLzI3{<@wCTVq8MCAp#? z;;-dUD#1>3cvF$GwIb~WI!7ojPW=#Ad_nJXzpMm3<7fKP>*q@*NUvwb*Oc`EuXWvI z#z&Cf#A6|JafMkD7Al{R;!*Kq61-()1r8{uTclf>)Y5N)K6p-&5(877VLnpCj){Zw zfZldhkkmlCpKcR2F`~|3pGdz{6PqddlA$HLApiVVfzniAo5xPw`W%)WiIlP^{ z?7o7lGC({;>Aed7PY~tF^E*b?Kw!z~yIx6+4sbHWzd4ykd(bPV<`rA(Q&}9R6)4NE2$3!MsRS#) zl(LpPo*qZU zFG)p@73$PxS4C9LxWGQL1@=*!&GC-Fe@PaCo=UZg%mQ4qi>7)dNjLI2QEx1U%KYBj zjeXu&khP-@wSFcW_1S=+QVKcbECfxVVa(549qT63!@;$Unc(rkA&Ll97XPj?)kTu}w)EWtp z9c3NDeACNJb$8J!K(|-Njpaeeqc2!hk@4DXkY&x!C{=@okThr0itoJpMfZT`wOaA@ zf;ND)U#R{(BvDk))5bFRnQKl#E%*>tfSVN0g76n|q9>ylha)yS62uq=K9&NZm%F>s z<%MX6F-$*GRoFow)J~90x2+-v zk=)_21R;DmM<$}2Kxjc4s;#as{PU=#hS$6lc|-nBFvvb$uTNn8R1TtPwCKfHk4uQR z-*u`1QWg8lMGki0a{2i8auGC=d*ZJ9O%9s zh!*A!q|HGyiISP|3lItc>hFp>PdkMng&K(F$B-qzwKWbrNY#yM+t)r}<+7nwm$P`F z;$r*nQl%Yh&;+P%6k}u*EiaMbN*`hNHCb z5=yUb*Z1?96$w|c=l&~Rc4oZnvr`;1;rHmWQ5qL7J|U0HEFfAXk53VHbi|yWv$Bc8 zSS~L5f!o2_3|=R?81LLPfM>V~SD^nT=ot;qtdxv%&GH{=t9Cc zVw+8T3KIZ}xbuN#ytKv09-HIVuhWaT6gDZdW%D1%m>ZKjuPBGYOX(uLu#dP z8?HXWz2e$@jpomWE(&Vbys7DG2L=aXWS-*OpiLkl1GtS-tc-hCbClTP$BAbGSoJ7F zLONt2@!1h$Y$vzZM9ve5G|QPO6XW0fTtb4-)q-E((8(8D?&!#5S+MS%D*oh zHt}^fHzk>Q`eo9sHpgkm(xVblao_w@AMS3o zT94ZEkbWs^F#t{-T|jC5zL^OA;A+v7%as_Ap3AK|`^5C-H|6lf(V z1{UD*VO(f2miND#TRb4#smCA0Hh81LP*I{kUq?>ANFK0ib7zb}+I_r*Q91*~8K5v* z&l4J_hNy!~{C~H|aDMkq<5ThWmrPB0As@O-bXkk^_KVn*Dl-ajV)$^^dln`vpJ~MNP{Q-0x);mzID6u??7P6YoKOIXEuXR6BY%lcC3ho;?>fF`(|RY(J_{5H=FCC!*s25U zL>{Kl%`l$8H?P4z2c}X|+qoDIf1Xu@u3@Liqh1_uVmx1=#HOe^oGn~5TEH#?=fJrX zHc}?T$XR&oNg4(JH<-9kFSg=kT=#sabBdi%XUs+*(l;(3?GeHlKCSpXQRxaf<#(>< z=m2iI!5}F?x0GY{%2DlYSqW)vo0BO|VZ@jeaQ|8lSaV~XH`T$P5UD{ty@14gKgl4ealG z@yEkR>tTc|@ebicoT0TCApfMC3TQ(OT&%=Ykw@DP=z1>1Y#bnT=6~iK$@{t{g7@{0 zUcNj(>ApuZbyy9tGMVocQKF7xVlJuxg=ZIfKybh~T{$d-rE5X`aJUZ#>4YtI9aL;f ze}v%NpzrJKP+gg!#CF5J`O;)8SlMW+@iQDRc92NgW=Hx#zP~NuJ%!<>{K_W(vGL?n~@Qpvyp~I1ezUIr|7$5RfXUTv4g!AMDK{0w zZhl14rpRZw;#4{L}YblB@Ms}zb$-sGJxUWiDfE1NndttV!I zB@fNF1AvPfo(i$dfeL!8EfdFX`N!G1OG-ew>OU6I?jUOg^3x$^RatlOv&&4kyH+u{Oc88KdzlwGMl&%dqG~_d`G;Kq8y% zk@B)N!J<)7czkw@lV+pWEg5Bb;9SPD7Vg}5yno|97SL(3 z5;8~Tx0++CVQedm#=@_v3JuvNg!!fVqnC?j@5LlUP_|)vTiBb2UkrOT(-Jhyf%}Ft z=R$x@ejY1!j9b@xMxM3uo3&8S%dq4O~m{A@|ZqdlzJ`=?6WzfdDhLL36| zrXwZBqf0}-Oj;#Ev?WZYhqf+StxCV@?PX{$+@*-ArA`2o{LiR1&s#bF2dSf(e>G-+Y~1J+lw--=D98(0CC?O8E=ycv<%u>6 z$XR5-Juw=uFrb9 zeK)I`?egXt;6{-`o;EU;QD-6!TcU6@&Htf5Wbv-{2lr?av<%XlV%Pfybml!3Vq#oa z#}}tCLp}P;@7_qic3B`){5ZxYbmM2d!W7-2LSVN>cB$to&UV_7qA8Tg77}k!K(cel zN1;Sc@iObu=B0w{;h|(?)OVc+qlDM9m28F-=tgVE&fSXn8$c2+!4UXAV%}W6h6=_dvPycOkPHnfRKalfHF!b z%`=nWu0nBfla1v&Ro=Xy;PDEI?Rj|THKxFirF|~_{)z(ZyX9+ujFN|xST%=zP&ydqD1*NiG(I=h}k1ezHCgPIU^e{Z)Dwf(}&s2jXKAz zBEd2IJ=(21Ys;|4o5p3K#+lBx-L}_*>}L3XsOM#gkH7DX_ZcbcXEBbdAlO(AMZif= z3E`jY2Mr>Eod{6p4g?=%pmc>PrA%k?m1~N#=PJAQ%0WZ@^HAl3 z|GM;5y}`!&)JJ?a|AlBy=)P-+afSxwsT>a^N;BjTzRks{AagtSAbaLkqZmv;s0|nx z;_~{PM`a2E*Ko}VV38Q%> z@ZLRzE&Bjiu&FC-j{!`8IvWLnEC=d3`U&uMHZ96h{>8r!1u5=WZDUUR z4@r*UCzTl$+^_pyGOY$rN-C$M z*6H{%tPH}uh-^1X5jdHT~&UFkIBPZ>@;jkJvpr+sKHp@O~Q{Q?5Zd~W^ z8|RC3=!)v#Ixr(tM#m<{Tf&ZxA+~kJb?jB)8D_j_iZ*X)?RKa2UgD^s!)JvE;O*=d zyq;0=u=xCgy`ExBi8QQ4LftH(&0bcg_XiJ;HjsL zg0ZXh)YA^+y^_e`nOZZX6Mp%Ep{0~_)$eM`RD*ScaPa7+B6qytHP)uWfP!^Gb;N#i z%A@X4SL@|VSw*2)cEqEoivp69#!V0MgL)_R9ftjPMLH*@mJ}-6|GlRj-b~g?Z8W~9 z&sWTw_I0Ic%z&$y-RZbq-+4a%TTi$-g<~toy8nM_M#~uAWdwY_&u3_22E@+T*KUMw z@%-_LIy)aUCl&dA%x_4%sMzez*)@=2WG()wzbBp*LzOi<#X*(Cf0LboM}|jW`0_Qj92{>v`k%5>aEXZ-S@-xQFv%o zS!*RlRFfsccNG#nW{a+x(X>`>AoXW!Cr^P=f? z&+?)mIMy-VK*NHDh6}QRJ23oNn7<4@lOAT#A+rD7{PHQ)IPKk)TnwulTj``TR&u4j1q}*mz zalI#OnQu*ayYPYyTCGyONJYzF!n=fTW|3YpkDKM2Ex46-OiJ6}2+oMl+T=qk6VAn%syN5}vTk}o6{18wVp50;X8!k&_K$7d|L{RB z0JvO=g^x>(|9#>7SAgs9mFaZ@IN23W^_q_I!AI541?Vkcx7cT{mj#*Ke#29A6s0#J z3brn8Ia+$C%xq_I0hu}VUA}JF$qWgp78$CkNQkd0V5P$U#`(OcOlO2UezjGJlva3K zQWFs6OKdl=;ZJoXn14lwM;Sf6x3kf`p<&*B(o^FkQ2R^;x7@tet2MY~Ykl?C>gmBT zs>Nx#RKCp;Ul6kZo9J-f!ngN?v1>2ep*R=^i;kloZ6&nsVqL2mrolTFVN3+ACf246 zw;wJEERSX!z@p!C__eyPHj=0Ls+DDDWvaQT9iiJBFQ?`TAI$FbHz1%R>BuJJ?+Ti` zM!NEZ%nipR0U*kC@E2vx9JbV=C9@ajHU_*mO$pb&^ZIV1)U0VUv#2oXpA&M3mu5o1 z{BBqK{tpX~DdwAzwT!jO^WxBo;oTsH)a0Q#-+GE6oA1S!M`NYNP+i##-p;RA+UZi( znVDyRu0?dIq3tJ)>FMTz2E}-E4Fc{dq_VeuC%ZWMACH6CO zd%T-q2a%IVvwOE37~+wdOiXqe0K!3GIRZi;)+*6D=K4l#sS$t1d%Ee8_f0le3N`i8 z$G1rb1D{>_;3+9*1!p#wi@n5kWHUW6O|YmadsXyK`gjU?a3{e|JPW9Yt;O`Rlt_~77S4Aw-irklpAd>?IU}A0B$%sUP-jDqd+iSiN~Iq_uul!1l!Pgx}p$ z`L>;w_X1AEnZq`)FeFL2DN%duMOg&|8AfTbJ#|GHIqQITh|tBx0cJ0I+6EqJ*4d?3HxpEKGy_WNc7ac+7A!OpE;NDKKd5SVPnk(?=F~G zUK|(3D*i-}?#bkc+LX?~}2y5VYq#NxYnc!)NUF>m|Fi>rbPiRjxGbQY` zq0a0vEBM%JUvsCD6IC>c&wV50-O}=9(q=*;eL&hZb{D@L7oY2@;rw%R>x zyFOx_Ih|r4`rxB`WIl#|>l=J+n%nStDVe^koY>G$H-9;XM-u%C6_NGOMEdl-j7-CF z2{Lo*&o&qw8RK)gc+CCIo0q~4A5+CXtX%5viE3~u>l{}TJ`Z-Ze=+PPEUE$6sxZ_+ z(0sw97zOHy6msn5kQ|l-Y3`rB@n%5CRnomt;+DIKj7>8uipzrXbHf3?ye8*ffk`ER z7FSa;Xkv@p&$XX?$o%BQugKJGp=fbGtQ z$8jV8KU_7E%dR6U&3xlzcU142O_}X8INZl=)<~=L#dDKLx3QmP3sp>2oL0Dx*Nqv4 z=v1%6)6@##cVFdnA=gSQ=;PrRa&DK59zFy&3`ts{Avm1FNf zyjyyT0jmE(^ZiHvu-Uh!(2|IomGXL+tbO+k%o|F1`V^HCR65pfvm2Qpxa$mzP@p>qd0^EFyDaf^5 zMqpfG?s2WvL;No)|If;nkA)JrM6ja?9&5KsV-mhzF>u*$!#N-&cGh+*n({HDh{qhO%)FD6 z-SOSexOqN_lv}}7d#X?E)+#);^)ns?>~~zT(`nv^FIF4A+|ywCb6N)OlimwI#sz(- zmme$q-B4>#uL7Nim@Fi8?Iwh81g?KTh7r}`f)i&4S5lD;F01p-eSrQ#vO)8Ghsgk3 zuv+V0J=Y_!13IigvHA(jgrpP8Yn>-#o&1w?xBviOUu}C1QKG}r#^(8qEF{%6lo2L?*T-OtwZoD_f1x!sOn6odL*X*5JB_op)!dj$9kKrmJr z*xf?zhKCWypw<%<_^)HIfUmC*!F9S8N~i|>vBW|!ic&-#-P9E7e<^j+*LhAsk`%;K zt)?$c_gQ}6>euJ#KET1j^s5Uryx4soE$z=8;}~+FbGtlpoBSn7aYr#ZIHf?I&qtw% z|H8!7J>V6}>{3rV`SfoeDg7E;H5HkE9$A}}3KAX6rf7bh{2ihQd~5SN40s+n2qhVC zAO98$QFu0ZZz{Cf^F9KUD$VU2CwI8dK@}aWTrmyw%M*4lGMyZ7UU>@Qv}ilE=Wy22 z5};haNZDDL@1}kJ^tPGGygf2{c|9xerP5ss)zE??g`O8K_6HO!iyHclVXtI99ldvD znO>~&M}*NC%+CdgUN3DoEnP{o+(1|D--(FtiTv3ap2`5?I47Q`f3M1idj=i35n>RS zucAdE`GLe}Yjrz@160W~7B#b9q94xdxqWYYiNym?=*;U_unJ$=bhMEWIplxNJc>FX zjOK$agXuwg8?ON2V3rz&_wOQ`bTY1a!#JX;XQBnmlp#WVce^!s3G7#B>GH#mf{)5d zx{?0JQ-LDWi5;>F!ATY(!VR2yP zTv*~m4;CWCr0{tktasNW6uXFx4Hh|jV}y=1+6H&RsNMJLC?TDjEi@XPXEU56SPXw* zVc3vq9&VWi7*WK=Z{TZD@Rxb= zwdYb9n7B_{6be0i+Sa3_{J6Su4CREHj{hf+_^j7TemgIlC4f!9+r?P&R&t3y_ zxcY8hV?_-uz{XwfnV_zQU!nfx>N`;bg^Z^cv0@1}&qmk(L3XTjfcvt^N#QBL`ung? zNx>c-wj6eWBvqda>C5~$ZSUexoT<3m%C50ZrY^^EwzC{4cmmO2?fPpgGEFGLnz3k% z5efz`+7Q}HY&>v`<hCxk5i(EM_v^P$84x1g$c$MHIBYW&7M_%hLbTP9r6&_xRt# zAKJtyLb#)}2weBEytwGNt;;L78l>0p=vK{gPq;`@1J_`vq&y(eD!!vLWl_!Gk5&A! zmb6!~?+?(fc>Dt-9kRSE)cq66;b7{n#Q7;L42B%% z>2khzff3vb4z)Co$w-lRrMzc*-E68uQU$RH6Q(oiwjmHr)ET!=>gQgHDAy58)K3EB zteV?;r7_%4h|4o>-BCq7X#qC_r;vl3mqVGdSU3uO8qitS=RDKh4zFnR9#hS^#=c*9 zGiF0I-S^Vn8}h!()*UQWJf7h2?b2Q1`t8!e9X+QO7GveZJ4WgQDk-1S*WxG?#A-d} zBBNysttsPo)FNp(5v}#=&e6)}S@f7q4CM(~?m4F91|#jD3ojeS`N>hq$jm&GmYGy_ zRiNcq>H5pVa(?K#DS5V?6Zx?#f!U-CPNnc`=Gk5u_Zogmy3Zuh-$ixV zKYMF!xH!IvWzc;USmB;iZ$Nuos>90urJwXAj+el)9VbnG$rD)&DF&#SO6sdAvv0@O zA31Hd?GoY$V#fJh*Th-?{A0Y@(fY$iM+9AVC@SVlk!H3np0k;$&1W0!J-@0?d|Gva z4{HIGP~L*^3}I${@CcB^Oiezg1u+e*qGr^!n|f6nTwX0aMgP6>ly&4m&ZEE(o;ZR$ zV&5s@KL0u~)<~ZYf`e8`EM9x|)CAKIBpb4NJ5=P!5{`s5<_rV?X=4VxnH*jG!89wI zdQBKQep#l-33b=Pv%IQSPra8MNm==Uv5DiFf(sUK3Qhjf_>O@KW)f-DdpDoz0fA7Q z<5J3){xi#$712=f%~`8JZ%Pui-YEyl6{q+wXd_37-0e_4SeNTFuZGj+PkuIO!-LlE zPr=q&mGO#&UuDLs51ZMCo~shZN%!kJib_OL)ECfhH;>45c6Z^sZj{?@&C&VJyI_2Q z*f9RqLg9>l_Pd;L@$!W5!TIYX;Q}7NFK)lP2e1@cd>9_Rj~CYnOyF)l8y2A@q!Deq zp*s(1tL-AW#`zV|{A;xlBhcwA5LwBkg!0uGD#}--PyAj#B;(K?5T1>RiA==`R#~S! zPfEMK+}<4!`t171(M-0zT00Q#c1f(>$b+XW7SKOZi#t-#gjyAqj3pQPdlDGKZE47E zg{)K$QwY1RA&lua%x>V;Gehab-hR=Yms*sD8RnYJNBDbJtP!b=k3Y#-@99U>Jz{iRK2DkFtF1 zVaq}b%cm=E+YN=UkR+sgf_J2x(ofD}F&*Te+P%08BF1w@L#YdM@cXIr!7=wZ_Oml% zDY~$>r)sf$3PqLn$8w^R1I&*`DO;wFEk8m8Pq+%S-GH16Jom_9i^g}p^5ArW-l#dPiL2I$}IKWKIg zbY7>kV-_W(+x^>{56yniHEKLEiMzaQ=zQ$X0Ev8ZB-Y~VUO{+o2LNyy05TEwwWub<+p zL|YRh&cO9y3u*(m?(1)Oop-L`Nd7#L|Jrx(-4ta-W9j06$G2utq=&G^RP4NE`(8NH_aSuay}{%?)48lu~RaZcIaPnab|JiJ7u zUutTE-%wqP5#W8Xd1}iQD@LeJQQ@)Y z+T>9lFVxwp3lu9JojK#SgM!Wqwo%pL-c{(5B6{BGVy{VXkw(JXk|fj{kzwW{g%t+L zLe(zi&aM0(s|)mN-$!6Tdg_1}n@C5_@?GvVStD>&Dv+ zFd9kq21YYP%~GG~n~^>C4u3O$wNsBx!h?%(8@m0+fQDGDv6j5#6*WxlSHm?(=X& z%slWxiPVIS)|)5 zb64;#7<2@?$iGwxC3Jp`Yq9>S3%!A*- zH0O&1&;9rMxnjb>&sD_1N>8QQ>18K~jpw;!SGM{+)$3?WKd8%PZ99}vvFu(0Qc$r* z@L?#Cv~#J(qkB_!!ge&h*L2b5;RnkvG)?9ogY;^a**?;JCKELflzs8-@pQI@<#+wVr||8s3u4W0wY8TkC*Csqeg#5Q&q- zL!5m+lo?(DH?9{8=wq)w;4P0WP57J4%vxyuR7QcZ<7%bUV~u>>7LE}sQPKj}Zcw4g zbK;mK54f3SJoKFW6%dVfg%;r;@2)P&`pxF;4}0#E42e$Zu-WWKXboXt;nw|OT!Z@V z9bb~ACgh9OtEVZJG-7*peea$!zwj)>y1ac#KzG65x|;?xC1i)E<+MWJ1QJU^O1>)cPaZ=GGKI`uc} zTfwL>NDyn+)=`h&uv)44hbGGahFvT%8}HZm?4~ozTgj}#fRS3-Yaqs|juzoYdT=lq z*ndVOLk@(GL9W&nLW0WBV9fcs#Dv_V@3qM7JW5Ww2VUWu6chR75JpKKf53ySXVIWc z5GqSUQ~m8QCmB4za4T&baN?mJfuYIK*&6Q@U@VgoAR#6#g&ao+#tJkXH(T-QdTq>K zjvE_CxbB$^I40z@iZplfI7u`7xU_<2zV%<9dd);`AhX*~t8gFX5~GrDb97T`j6*FK zSjYETu1XX$^hK9-PzQWuaT}yr*>uu6%^7nr!1Ok|u{CK%dxG>97O^KfLE?gA zQZilf3+t03p%4&x9Va|h=rO_Slh_W2dleRQ-8QnQv+3|TS}QJj{!={GDgxzLt>RG1 zL=ZGJ9}!CJ<`uL))=jw}hfSrKpXs8;_oJcw_iCx4`n@z>aT3L&5Bv{X_g(}Ubv5$0 z_B|Nyz4T3_rh~Zw9Sp%wU^$mdj2|$pApDy?nPrdh6|Fc{k1g%)e11DoyMuRCMw?VF zxYr@n{8TmH+)dYn*?zTkWaXwJK*GI*|tUW)KTkW?{wLj%Lx7eTUV?M&Fv6Q_b z651r(0spPf|F~5T=cu1}`bI0PPU56d>tVd4dl-dl>AWWTq5LTwga)%~{HDUSNt^)X za!~IC)cdC}q5`+x74scM5{dcPr%V_-jL2r7M3mXeU%%2yy{~NP^P|fHT%HX01<{*4 ziU(IRnm=1?Ef4Ui{H=+~02Ov^sg9aKy|IJhVoa*P=8i#$YJX_rNf0M%WQrI#XTmEkzAdDY9P*SQ~8#zW(DY+Qr=0F^BT_)+jq&w9ywK%HQJKC^TH@}Rt7M$U1q~KkfVd~-6%e`@P6)Jf)yYYNbsl@l*|8gvq z5wUntyawqBiJ&)yk%(05X6de%Kv=r5MMku%+9+sDB98C90L?*PS07y8a5@~CIz*LN zQIl5#$6jx~{Z-2fn7sk#o|KQ$nkp>XblpKe~^k(k*t@>f4y0L`!iqLjI`0yz>geA7k|Ga0;rt0cfi5 z^UTrp3GxtY1#^ZokoOwb5w@>AMdX!ck)*z{|z)V`l7HHuW>e`}#`y4=AA`*+>F7};-$)C>%(>kZQ=)F#o_(aIXA$}|W&+0qS^u7KC=An7+B$pDhAm8yV(K=o zkZ0;<_JwjwW}|O@i% zxs`R1Jb3qABhY<7#XZ(QRgRPev14PP(CMKbA-EoI^gx;c>0*G~o+ya&`hBMm`QSZK zno3Xtv0k3xn#Gw9%Xl@p)0K?;o8d>&PgW}lH@a1^-Q2|)V*H>N;!%>~UxYk^1K&O` ze`p|OG=aQvm|d@?krL_kEo?e(fS7kGB_}?N=ffO0omTzaRxMO_(*p;eqV5#KL_EJ4 ztNJ4|&XVMl2qg0UgHor1`nXst|Ag<4t!fMFnN)be(_4;Doutw)lE2T_Y7wl+XvZey z6xJW{A6ahpQ+ftnoJpH6YVAuw+lkW5zk3bpljoG;_4*^bzCKjDwYan|5mxz`Y;7ss z?*1i1^W=LT^%;SrWURv}qeCx$#y`>{fQQEgRw5n?MUoEtZ^Q`i`oAlw%s!LZH+^WK zSPUy+Bsy+c!aP~0HIM0Gnr0hyOuXIxBfjIY35NY%Ckmh9{}uo9r%x+5g09`I- z0GIx^0HB}pt&WbPdQfl6Q`W;zY~|Il#{(_|ma}ic&Ta;610EM#H=na6(l*`R$;%yP z9(HTujD*#}TZ$v11kXfooE!U(bx%O--j!LB;6xhx=IG{w8!-GAYK9yG5Lo}q-w%Op z1NeG3`>1r31JfAO6WdCyH3?Hj$H5g-QsO;Yrb;|JjNVnRu+-* zJwFo}7k}9=k;Y&asFx1U=*P8aw4wH<-7&wf2RAMm)dKiJk)~sZ0^9(E`IF(!#7CA;#6&{+0eUvnS7HcC{0{>Rn3f` zR@(wna9Jb%+dI8c%#nX(24o5&-0Mmu{uIDKQ+F>fsMg-#Zx{6CrMe%_6}9@<%VK!- zq@$zZH_0z_8SB&0YgV_dSwHfaSCe-;A36l1wA-4=iB&1*-uA^4=^mkTVUmn{1$1H; zM2iUV@Ow3>1aao{@Y<|?TO5bg5*&AQbIrI7KrQQ?dh4BHW4I~2T~YX3*sb49CHxQ8 z^P3Nw-a%NBvSHb}L-d`F0%ky%6Ql;u{ofnZexwIV@cmgC0~L7G$e>fHg-M{g zL~eH4RqG^D8iIkZX)41>X!rO=x4u&o%|URQMa<;6SO3{IgR?`O%CI-T;QAQd>aW{1WMiGdnsroEF68XQn24B>#$LXyT=5XhMDpMIc|t`$3|A)WB7bav(MW)wPo9Qi48 zRD-|LNj1{hCjeEvlvY{kV^bypY)po9F!HBOL7z0oOKewuYqqtwdM58bIu463aYOP3 zONlU5>?MTMm|O*$t?K1Tm~95DB3i^5#SP;c`8Yt7VUV2t7gW1viq_%$bnNOzQ-dRx zY%zB1hN9Bz8=#*$y9Da?&qUs5#ixymxlutF5=8`gUFxMuUwO>P3U?YneT+X3vMFf> z#RF_00hZ}QW+3Fj?=hkCzY{**pjgKuPqx{UWzZhi@`A}7&@CYg<8x`$FC{J*G!ozx zYWbJy$rh}u_@$2FiTu2r);HNQ<=U$JBA2of0hrxygevMC|HZwYs{CX{pW6(w?$eCB z?s;FCVX9r)37Re`+~DQ&U_b5lVT@ZiYdHto>Ga*>pu8pH?Qo9tp+Q9_&Y5R2S8>f^ z^(q+>R5>(LguF0Z_=nm1KjzCJ`W1u_83RHTxO-3jza>{~`)a-gO&^nsbQCm*n3`k{ zWaCX{3j6SngQc}sH=?xc_D@qye#{0u^9c^=)gUj3EJhl10GR!YhC+85uQFpUcH7-~ zxgL_2Ai7y7sd2QC+h;Abqb2(@>9p>b9mc1QQ*$c3Iu!Cjqt@OH&t+?7)l5(*%AQQO zD7YkGN8HyDcw^STVEr+$foj^1B7n0B&rbQGhB6&^i=~_~-T-M%&tBa}1%d;^c<&D* zcr{3R_F6bD)VH*9p3QV){_HJPqe4r5%6(^NzNxL|6bl!ZkviC9gJ!sKz*ieZp16j4 zFCN8qq#@0F+&QHw263#l)`#eP%R{_Y@ z*2dW^i!&U&4X-GnU_z&%*3RG3ZHW#w@S$cXQ}E2O8B?Lb*tpc>yVNQAv}KedDAbb? z^@4{5l49BM(9VJm=Y2+Rm$8M4=*OOvAz7z$`TnYg#sWsl=xbB_QCHUiaEoc-j%i=r z9wuZ(=TLi=Wxugm{Vs$j8Q#>VO!3=_*5@VaL${|L9`O*~E5~|j<;}hTc*G`XXBuN5A zwC~gbQO2yPR(+=g+Bm(J31q^6z@9(@ZOZf(e}q1zY$4REhPLu{=KBjTRTmnU6Rl*O z$xe2gb&midS?w7<*mT9E~dYwM@7yV0Ndd~NSaEQi=Wlhgm z#e8`NLBemLyf3ZOEZt0Tl~60U0F$&9FGJE^d!Y}_uS;9LKn6lwFHW00Kg1GJ>&M>L z{ixkbpj8{;Hy#_^f001_P+4&9_MSM9rm#>uMB}H^U@I@^k_^L0ebL#5Yj}cp__K{M zpFoF}#XFn6%6aRMjuRMW52Zr!IGLkKnE-~rEfQ%@hPuLxFJ1?hG4Fd#nh$$9rQh$) zO`nXyC@UA%pX6a%w%o0^FZ_7zQ-euu7sYBZXcP5 zNZlt z=?=Hhv<>4-8>H)&(&HW4f>wpsJr~*h;ZcJQKd*;6#}=xr^QOqXO38oV$DY6+-Qz!u8y0heko1(it3p(dwu8@`a;2=CY0gKUjQHc$4}4p|E8@3jFVfdyEZx(sX*qE{ z_@V#gg5(U;c-`LDFICV6XVEoKmRy6Z>!R-Bn7h|%tSvNP1JjPB>@FqeFZIt2g8~m7 ze>%Iz$Buj~8m=I}owaSA3p{zet{Z2fTz{-1)8f$6$my(@o?p(tmSW^y&B;Xl+5yriv+H0>Z75k5|l(=5)B6FjUi{WzSZ!2bu*+k4Z zO}fE^-KKi86Q+PzDw|0&o%XcsWwL!t0%02a({o19<&)I3s`?S@l-kX&zr^U)Hfe5O z700vQQs4As?2~exhv=J{-d5#r(y9$isHXo|Va8hHcpcWJN**-lv^b}yfICc}?U*6Gp3$t)vHjAbQN@hX zdXE=B-F824)@l2x7-Ksc%wTw;2P3OLD6Xwue{4d29SdP|A$u4dZ)_#ouVVIEU1P3n z0Q$?%xsjt1LrqX}lkwy|kH@t z7zE6{b%!)|E5#L*EVn|z~9j0%hEN`^aG)6LgD2yV~=co_;m>-m%;4bG@flk zr|~iSqvxOrCaqdCo}Wbny7G97&nzFI2@bF%6df_L#hwVomrQl}|~QUBQ#DEJWNQ-jg? z!u$Awbom3cP+&n>^wZ%*#WL*3uyb(0It#BFEM*MPZjlr={LOJ=8%mr-Xrpv*JAm_i zj`}Qs5Kx^SD-Qf=@R8f>s7C0e)O=n%1F%K-j%j~d>_dagw3pGY#Q!<*ata{q&>1h_ zwVzD+Yfyy_yI=iNAjYnKL38V z!u{TRI4Lq3N}5Z2sfH9rYnUL zM19HdIa!6ul@7MH+uY1VzjW|HcXs|MAK}hspCeD&xQ%ul z)1o)r5DPzs?~a~|H%w%OEeW>v>|GJ$lygZK30X@EnO~F(BgHm4?okR0e#}BsVabvRUi9K4JdlE!0 zpkYI|7_n>ima19HF^|TT;cwnu_9xI?!L zY)EbI-*Mr#m56Cm1I4BZ5P*K8`U}TJfkZ04VcXvK05+kOq>y(=@>FO|NE}WEoO@S! zq&I@=&`%NsNB6SC)SuW|AGgx5v1kzi*hljl1jnfBruugVK#blcIivo$tT!r9&vqtj z+Kb!*r~>Xvm9}>d-=!O}nbYIvgl{r=+p^z%c>2`WkDb`!Z4pY}5JRraW8Yf7OPaX5 zb1+_X*Xzu8l2108b{T)FDAIoMc!@fXuAHZTF*Frvd&T`=qIFyBi;R*v^BeoPha1hN z{_-TB+j>JDaM=NTEm4=xc-4&smgTGh4@cQN^-vkz?Jxs}cZcgk1>5@pV4)&9b{)t~fVo}HdJQ{Ufvi+c`W-))5#*lTw zaQRC?4Q=K{&)4X|=f}Z;+*pFVx5!OL%D94yOB8Z?obBTdzsfXa5$~bxf4m2`g@tG% zSm|?HKo{Vr-Hi5d$+HM02VZ}ahIf<;(lO7ov@P~Z_(=TWgTBXtT$&in{eqrH_2Wt& z_zy<8KU{}c@xDa9jp!zSIdGMjVfFhmZ&=VqM(JHf3+IJHUX++21g3vE%cH7(93?); zAH?fpF3Xn z4sxeEOK#j1mjjztg4(+im@Q3U_YBJV8j+-mXbu25C~E9b1P297qVsuu}!W*%-aw2H$(-I%7l{nHFvY5qUe+%+~-9v;o+giK-9^^qQn8jQWDKK?kF>j8QSa z*Fgu0Yjr1Xn{1R}xu*ROAE8paDL)Wyc`SG;#>|cRsoOoD2R6a1cEFtYV(JZgd7@kT zge={u$lV0S#Q9-m{N2pcGpJ7F^F&2A^@DK6&-f^MI*k+2sQ*w)EWh;>0sLhliWit) zgb)DdDH)hz=*bq(on?^9ulq$C)Tmn`jPM;sK=5Pcp|ojM=Gsm(Kd@c=zYS%% zx9lj>+|9@7NB#qRAfVFmYR+Q<_SzD=>~ICz*u)cE^@^&;*s z={*Fnc-G~5dm3g?Uivy+1}!z{KG%sNjl;uLhM5qE4r6XU6{$vV5z*BTrfStW63^=` z2*R*B)C_ZnwqE#G(oE!e?m5s~rl)UO5>QUddm6lt)4yDK=bUuZ$~uuE5p6U5J;)#V zK{}}_CJq6I@Gs_|3*St8793d4mK*bk$MJk9y8u&%J!T10(|7;3=lw8{O@8-Kv>uQR zUC!0fA_#I3j|ah#{DJ+~Y;*2=SA><)|1~WHuXiyLxHqZ4tnj># zQ_WQTf}Prv>ThEzAzEb1Bgi8_JxmYA+P!qqd8_Vyij0WRbX(W(Lu?oj@4?AMAo@k) zx3&`h^=9|}l?T7((qt^vy>GiwF)*H(je`U7GCqRaXES^z{n9x0pW&!lK}4^$h(LMH z3==iq?H|<>>fBx_8_h5#t&eEHMG|?tKt7S8=iJB#=9*2)4_8*?vQOZnzwkk=U)wq_ z?9`B2jkEB5Vneop@UM#e%S%ZLN}m-gM>O0U8|>Q_i2~1{m2kG*b0~bv`buw!`t{nZ-Tgh+r?EcFp5+THz9j z`uq6EIi2WV*$yRz-HY*qMM|H~ZB?+S-@#c~>h2%ZZ?Os=TbUv~1Y*BjN*#`e&`?#d zmlz-fJFIfI-R9r!wwkZ|!uaZ_ye~umEXf}~SUA_0t4lLjq6{rI)Ukh6+kbuH^{0bI z#_8HAGCSc-9UjLhaM6K{iK}V4VQ&SkWE7glu=I66BJx>hyguUb-Ngc9 zI+N_5&@Y?W_ut@&8Z2%0YTU6`fc`Oo^}#<=-;LUzC5J8wF}4sX*Si9sJZUk*V3bE= zqd(p-DEP{)@CR+l2B>@^iuf5t^x%qVmrMV={8xnvioxY176_4#T_(s1kO%*-!Ik#9 zU!T-(apE;S^XN0pI0X^w6nb^(7h2Dea`8sY6WySAjFjX9;R=_{E~y+10M(t{LgM-D z0k)k=*66b8uMeVGybHD`y)>3kvn+?o9|PvNGukIa75(`Eb=#v`wh=16#4lbgzw$lb zOn%Cw<%=V1e-+sJ+miVL4a#x~qO|4hf8*vcKyFAX&lp;}J4sbc4Mlvo z|60NofbS3DrugHk>o+U)iVcBQ?17Lm2lygN`ivo7Po=%>t$ijhQ&=J;hgCz0t1V27 zRPF&!Pzx};mih3#Zu=$WGH-w2@?Xk7>#)Y`FEHt!wR!R8g^by^H?NpNLQH#=Pk8cf z$*xl|Q@8=OI98b6g}35;qMkDLK#oJ6_u4s*s&A_ZU5%PDeOtp}G1RJvNcc9@wV1&5 zZiofTv-T$$_C2}Zu@c=(?soc`ZS_y|-`Uouw*fVw4zo+M;Dk%#jYO)-x=K-6MoQ@- z@kYbY(y)C3UFEi$#)}S~Ynkg@1y!Ge$!)E1hhp=)o!Q>if3SeIG=!&U0|gNM@pphw zAcI;*O%UN#Kpgs^*sndLh8Tec64E4ZeY-p_g#Ln(4#uCepli%(Oh{Q&!SMiahqO8I zAcieaqkMh{UP@1&@@Ac?cv)}@E=T!KdsY4mMD-1>n4Ch)^ZeGo$tq#$dIp!ZTy)}d z35C1|#dmP$jek2$tG3t3XwNL@HITatB9eT7%Ta5Ue5rSfkSJF7`d#_AUV_Qb4l6rT zY(hW2X8g~I%zgtELs{dqzb3YBLc!~`hUWi1E|B<>M;feQ#JNt*%KTcMGLVcII5u4C zh$_NqUKm0B3zw8L{O4%-9)Cas(g|`94o*xZw<4JaJm94MVT6FE&Lp$&m2Uqh-Q}P4 zX_4%P>KiU8y-yt|VM=qaL+`LW#?O9irNay2mar27F78cfNSEshK zpoY`|r|TGjmAo%=704x)*0x}6=rISINMXN_F;>c7PUU7ucVzU)`Q6J~KES0uU&79gyM!ZeC>#Rdzp+N3apUK-2(q)MZy{VJK!VQC09rho=)T`06 z=bKK-9gMlDt8U`m|6S%&|GUgjDE*}R3Q|&D1#;Qj6l3rlVP0de`EV4r2C~#z)Yr(f z$sp}1*N#yvi!Nec%Y{Fq_7-B#P^1q+Q(qHdJF(IpUw`>;bl<72J&!+AJ&$WEmGPK9 zmc9O=aU#19ZX0SOuI|&yw_{g7d~_7j+^&`~_{G>A2AvZHX2VS0sMma!-a4L4yXSfc zcZtXD>bp{9!+_eI9_n`H$RnU1n|!EX6UXG{m$Jxt>9$WI5NPkx!FiTizqq*ln-i3K zOGz&1fItpP|EGr>|0~dP*$|c<3KeWkQ&axvJ*?Q+-xWlWJSv`E+HUVMQlpbV>7X6& zSxnze*+E~1ML6Y?BFadeyo-{hzmFqCJWksA+knkdAT{ZWR}p5m6sW-;YP;rI0d?*{xOn(S`8mNUmX%?^#tAg z?lh=g@c$=Fwo$FN<=4?w4)7IU@la1w{MXRcK`9JbkMgI353MI*jDPBl_8q5Ug!nvr zV~{00(;!|{uDbkW@-)c>oud6gOa-QdD*vI-Gm)GFDJn`)5mQoL*`WMSM(FS+oiTGsvAh_4!|gf@8pJhQ8i6!@>N_5b7+0fZy8mH_v3e|E7t^Dle)f0sf3 zOkV#*tKy<00gOppEu<`ioP;%szGqQ(KwKB4?)O4)&Cu2oj&R%&8b;0tFGr1;JWX1R zOit(wRG~4u;WdmVCds`*1cvzyJHoX52G&Nq?)t^J zp*1ZQkFv4FN18%chvJrcfO_qKwOH}F!3|(}PzxSeV#AYT`9}-jB@->D|F+8DC5g_R z)^@=*@{^IE50cwjpOxMop~&-jys5xkV-#OqXbi9~vM7QdHTG_t(Me#A-{~G`<%oAz z??j|{HpL>%i=@8f?#_Lk*xNT#dW6;BT0iR@K{6=&pjag1dO#=~Y<`zoPQh`8Gs5n4 z2ymW#1tBqUQ&cT*wqK`D81;oMl;(*VSvXV&#y@pjsHe%_?Sq4%6!_dRhdO489( zZ8uHToRgor3vw-*&rMZWPJW5uN=kh%HN~ZJ>R`L1G&%gTKwDAk*gBi(zB4CzG(-C^ z^^k(3aXvf04#v>hcjD>x^9>q$z-i7v0w;uzpi%JqU~tZMQAjO!go_P>i*0u6eZgl6 zFe8v|eeA*KW=}}enrUIY?)*+tC#jP|bnbh?5Ot~NUjH3X95o;*38?(id}}&nZ@mO1nZzM9;j*yVB;h3{}=*oA^j#d+l)~ImTppnw#>^}{C z6U0xg{cSdnbBA^U<)>IRU1iAIRi{_1?@hlRH5@!m98t(ge_D3@dq9MD@zi;w#fR$Y z=FRM)NaHO7kJw)FhgT3@+i_6tiNw|U-aCyuNzL^f;=-VGDK1T_!ouh$mBqWH`qX*7 zw0Cl3*-(K4*;v*&mbn6Q4N? zBl?p0%IPG_NHFxS;Gk!`AY5-iRFqIA8YEP+ivkW}sG_VkkeZ*a)dZ{+yx2zTwc3M& zv~4M34#S^U8pK{5t@TBMqD^OuH3+`!57gJEGHpbDi`O>zL0k_xyV>)3_Y+kpL#PQL zC)IRF6lstjhu>nR?|)Ru_*rVxSw-n=o!j2Y{p#t|ekw#|X6zeo&3!e`FRR3nEL1WY zciQ&$-N_(cr7Y8M4SoN>u>j+?Ty=XYS-&9fYZqqa7$jnv$4EU zkwo^Tlga6fMC+iZoef=&8+YgtI@uuP|@vI*$ zqaR_I(!?nHxd7`Wsn)J6kea!&Kev!9Q0d3=@tNLk$D@1leZ%%3Q95B~*jtpmjIH_} zYVFmU1a}e=ym7TFRMbWP9Pe|C%#*=n#8qW!ceY`ZefarK^yq`VP!tP{z3rESw9~4^ zxAq@N9YW%tA#yfDp?!*EaDr;MAx(tKQ`l#(ub44@Xe0yonWs*vhW&|iq|K4iB9Qgx zW|ogUY+NiVXTIN}kr7c8!Ig~(JfZ*sE2UZCiV&-VT(zHC$(rRj()2=Z=U?UyzGA$w}&Op>2wOxsDE;at(rxZ+Jx z2RzuWXeWxF2kSt3l@8LKr`>8a18Q~g$9W1FsY~7i?*q?r35!u8hiB$dzohs08CTTn ze!jI-5A3$65d+UayPA}LL3HEd@)>Hsf*wlNuy2oP73NJ{U@=qcK4^C)6VQwQg0J*B zF324oUMzZVX_F9hjieO*sVG+Ve72HPbMbI!a9zJVeQ3B*FuSkaXF@bvQ{tzZVJ9+k zF6=GU;N6CvmuNF;+;v=X5WndLG&NhYaMU6ZvfOVbIE`P~c!->gG!Dq4cukG>Cxmu1 z<}mC_8to621gP3H|H;=L$4naPwqrJz6n_%Dea6zZT^%yOi z9|c<-ACs4j%b(8OV$Ecj8>oIgBz7y$mf!^;kKj@e&tyl=J11actvrrE_elC}qo=rd zq+XFS4@tP)xEti$b`0)O5|oV6sFdubs987J7y&tQnI-o zSuCjyBvhW+C_UGt@toV#9{O6AHh+o(Cg~?ZA!cPlU;y6D%RQy;?3TMzke9G9c2n^6>*#p>QGr_z@Z~;D80MsDS zB2~zFpg;yT#aAz_14Q^V1AQgh>v)@P>SF%axM1mydB98!q1V(6K>VEaHki}^l64UO z93HkO!vz$y2m)v=yda4LvDc=^5W>!*2ii=yRHv2xY*!BcG*c|(BVb|gMpGIIFhMsU zA_A0gz)s$|A3&9Y#HwvN0YlZv;lU5U5&slH<3$@Eyb(8R<9WuN8VBg}ht&=KQiyec zGz@`IhXa+v<$gL)w%~#J%n*4xlWb&&UlN&rWD3DXgHeQF{W20G@WLt2KU88fMcqSA z1Tz`%YVRenrL*s0ZEV^rjz6}9wjqBY9aMb8P0R@aw~n}sMO?lMu@SgMX~L;dfIOg3 z+)gAzuoQ?}J}In^qxoNM`K2lz9@0Hzql!Q6Oa#r?geTJ5i2cuS&X)spu#?Qn9=(5n z-R2n;r=h>~HtIT)a%AtV?=#N0{7v&Rf5%#`zh*S|wp*u083{M6!}sCr9v)1!sn zwXH|Q;oGKvShhBfMl#?03ltqXRy~%iY_>rI(k!d7floMU!e_?!SjT3CL zfc8sx?E2JK3_93@N4`w?e7)nv@p4y9H^~1G!VBU_Q~vw3%eGY<7(@`~;S=^Cm+J>y z1{{nuLM=Pm+B=a?_S${Z1xuSf$@IHf&@LfCjfaMBa**GTAgMP-ha7MAuNudt@S>3Z zhzTNoL8=hHN|uZy;Jsj=)`=qKitQ%ibH^$?Sb`PW{RUsWAllFjd{X z>oqCR#r4bIyHBW{5AA+BEWJTJ*zWG&x0h=?|NVRH(Ua&KI^P(+H@m9Cukqs_U93n_ z{~{=@y6Ec!RateuS;a-l##`8B^6D`1)Ot=1k!WsR?Km8 zKs5}mz{P*84_FxrFokZCNM6Z|?rjp0% zmdMHsN!LL@^yY>Z=STbCOE~HuecCb9diEhAd7y9kR%$XYjY+fUOSZF&*&3AsPWQkV zjge4QvR>LWRBoGF{5b)Zjx>Fcu4k>mT&k$O%J*ucLtUe(LpFuay#>mb8{bXq{fi6F zE>2y;vcEbS`EuIH`3nN?Bc5ycpt%XsV6qs(1A9fTev8Ic#h{A|U_k2fd44hQ3tx2p zWjN7keg6bN_~YQAcjL9s#H~F)2ks8zP;}GINm!!^ToQIg$g#dTgPN-gzzZq2TP@}Q z%5`A1xHNOB`{nujjh{>)-bGs-0B_BLv{@uHZd` z{G`XTJE&u9whGQNHpf|E0abhsR$C;!j-+4;`ftSASUh@D^;@{VGuJ+m!0l%l4Lh^H z$9_EBSh6vet12EU`5QBw=5>bOgulP)zY3T}7Cd#9hu&bv!f4#w`#=(}%Tv@#3W4+> z%SZ(T^X}F7VYx$Fn5aR1UJnb(>T^XNDB8J>&LZGGNsuG@@ zeD?)lAn70!VhnP?H`6&Wz8=%LYC@R`n2)uG+w5>h&PLTK4auad7z6;8Ucc=4_p1Zk zl)75Z9lO!AuXZq}kuCbN+Hs^Bd?Ie5M1T|#+%;A4MZEpjRq`0>%QoC>SbxnIuBA|_ zJy+3${9D&CykSMwb#TUG4YAG&N|gSI-79~LK5E(x8%a$sl%X5UafOjWWIellL^Ccj zOBn+GB&f&7d#L=gm6PMyZSL5e5{vf7mwgwVyK;eU2#EKk^J6*rgr1v^HHMq1XtP_o zVD;EAOJA}KQ@En{I^XH<_8>7%gJIVnZEZR~?&I}eVdOJu%N;`nAF9cm4tFT-{CmAo zI?~H;5z95arJn2tv@67#6%1eMn23TwXGlK|?HbWR*Y_$gnWF* zK=DH=+NB-35P@MZC>h@;5L3&I`K2R~FXs8|5a*u~V62+{w%Zc~PHjNMXnC)q%5y@8;BZN+xBY5D^m$b5T{prL63Q z_9)=2ORdJj^gpx3agQV1&XE%|(Zv2|Vea1>FjD>Om!pNuu01gF-10qj0Z-2deFXVM z2-T()VEuY$hCXcC)L=g=0M}pMkT=R@y-wY4&MMtq&n-IWpi)+|1D*bLO9Ha-d2^KQ z58PFMf@p}oG_;#*C0l8$C)bC8Xj8Gz&rcEK6SPz%9p_Rzk1;}gzHVKDb9fnya|+(w zH0(kS%BY{X1sbU5~R%Xp*V6C_6m9{y1ZoV)g(ue!bth=Dw`6c%4{x z_mfcN@b)^pv#vc1LX{*T_n(ZwMEgmp0r3$we43s*H`E9c8p;JySSehZ4Jv@7in^Fx zm{$@jKVDo4>d^W4+4Rh@kJ4Jw0dDKtp1YTRt>;ZAthOFgwP%=NXVsU&Fyn(;CWKNa8`(=)X&$` z%MgRXN;Y65*rHcly=vZ&b3<1|qLorGlxI?&^xM+N0x3he;HRNrqQs}hof zS?g(KE_v&#$R{^+x#yA5R$Ae=t6elK0gm=t3i{v zX!yWC-?2O@G@>XvQZ|1O4^^m_b{^=+OYnR2N$}>eSN!4oQUjP8+JglEwlOj)Pkf}J zgQEnxi40IyrBPO4lg^*{ko0_yv)S7zqdE-6aVi|VNBz{%jN<3uzK5LStTTu?$KX06 zsc{vb!#Q6H1PUVoT@Zhm%5_knW~S>vU>XkLY9D zMBXu-`wL|>eH}ePG-=A``IOX)e~vMkRHF5@_AbB)saAjs8U_BtT;h(QBxP`9x2N`x zOTA2dX17wmM+I@7q)r9fDrWi(Uw+~NUkf37bKJ_niFMeZzM`wG(}~lnp!vz}1&pKY zS!u|~2gHV{%4J=owVny>_e8evZuMm-_uE}?KY-$k>s=vC^dJF3?AL%8L*0g-pBtd( zUj@{MVs~A#nCVf*=J&Q^vHPx$lM<%&n?Xx-YZn@ZCzTJ7Yjlc8x#Gm|Xu|HFe-S5{ z&l4(O%!YHC6*hD}LKrVGh@mj`hbYNe#Y|jB=1wDJPS~LYm>h*w37k8Wk5xaVavibI zGkF>%DhGfkr=x`>GrgI{cy;^qaWNe&EBN{>-2Lm?N;4Wg)uaqWn)OW?ym>(CDh8D{ z#j_*pG$+-wW5DjE1FrvFD|#OA1f4!weCoi;r@?SG4V{>{NhUMF6dF)6!L`w%X1eFZ zH%fHdisk57Ip<~3ECRKGfW2e@ivFWaPi`pkoMsF8oit{ z-jGKu!&eYMbSftvyPf4*m_Tl+=lL!V*orV&lq?eGMq?3OtrIK(i{W88|FQp`o7|mE|Nl zjYS2z>D!y^B+TT_yLCHIpy5rIC5kCeV{D=TG$?vo?&~Jl9xhWz23$m|X=-%3>vJAO zt=tYt4L$)}dkug>?x<`FXBYvS8@{M|&;a7YKkweLOs{V0wfoY_R6iB?_}eRdM@b<{ zL;UEXKNI6hKnJLnTsL?d)xC!8eC6brKX%OYU3)Qlx-6^t>DU|f_A;F@He)SPHfF2E zBk!2b(#|sy*LWGL*Mr!dkDk>~J>7RLaY{#hdOIH)-tDx;+MVdCzDAmnHK_79-B!i6 zr8f*$x2JOrO0oQnbQb@KbR$gpjK#xmkq)6ysll!ne4I*DYNg~x zH)D7AYz}`nX-w%?B}e6H<|0_P@E@)}c6Tqs%3Jg@eafCicOh$G7T>+v32aJhFv?Ua zitqqkS|fS$#06W)-sL4 zZyv8Dkgw$5{4fS^5^bc;f+R%Wvoo}jpRC@=9ea|B6EEeqWJe+o0|P}O9t6|YYi$P= zoU2||X(i|iFb%%yX@Kr&SI`09X8+7uH^F*N~gEhN5H)I}s z-Qb4v-_)PTp~G)_OGdY2XcW&?simC`>1%c71zjUAD5Y>MvrZmxGWuLK_kK8mw;QEL z-b}4DU~N)U60F@6!9Ig%vdvH+<+m|T^l&?fLLvQX2U-vTQoN?){2wjXmRE3tq@>e0 zu=36CZ1}7{!zs}m9t`EN-*xL#0her=0~8RlB46_iS5w|ZQoY@l(3M7$l42}j{_xWlvy&n> zflw^cM9iY+nsU#ID*G}f6{kp=`lB3i&sNqD6|Xttr<2z2FlSPBFAXiv@=J9w-aq5> z*gc_NamftmRezth2+|1qa!JdKIAQP&C|K7IY9cTg$pV9kKlZ@W_~E(E?t-vtWa@p`-UxblsOv zp~58arl{FxnKaGs_-c5)UkNG|yLCKdpfA&!v2^vRtq{lB(pLh$bu82nyg2DP986ri zP#g<#+$)DqQ?iFeRT%mPkE?=r=DcN2b?;Q#IpjXa;N8Sj?j}tN^`5H%*eYVt1G(u> z`;{1f7RZ$e))e9>zkHy{H+PBCWy!<#aO0MoTE6bA5%vfUUEX%dxPXf<-`r>F zPODl0s9?5*gy>$UMe5~smM}`S|EzqJ$kO=q32h~{qQA<>rQ;f^{bh3bt|m4SCrLsA zL77yAP4DAjqKZ(0Tf&R}{14YidZri!+@uXtVsRoy&rRf8KRQDmi`4i=_al?Md<8v( zT@^2H@ZqnBT^k+(_yu($_JmDa>pxL=BljqmupdD+kSm*EgI_Xw9i?|3##4d~`Y>jp zp)ZY{d-?NUW87bf7u$D_wxyAQvDtU+Rm+k;b%|6Iv*iPT4wvp1qt&``XWWM|7^_r6 zOjHaV_B9ZXLLGUqNh)epu%7PM?$_;QFH&Q3+9;X^S)D%J8cUq(I?NqKq<^`Hz&!Ih$4 zm%Uepn7rDw#rw?O7(9~E^vMfK!Mne^@R;d^+97?pv1fLx67yCH0bDd;D=4X-J z&pJKd;w#fJpY!1Uovj$W!x{#TV+Vdq>M6d`RF5W~jE^}fyVsxleE#zQJ&wwQm}9x+ zVDYH?mGP`zs)RW^llAlK9nG>a0K<&V&%<~PYIu&{I&bNdjxA9~E#z%VCCe3BuKon4 zm|=dn^*ExYax_85A0lz@@j#UglAXo}2Jf9tNFavOe?~uC;GE#Ex_xHoF`0fTl(d~* z(`#Ntu5WWj%hpy8f=-8vGuy%d!?GGksg$2+sPcoxS=$8Ymea@3J|`tf*8k-N$a2$x zY(NuL0cldZN}n>(yiWiyQVCp*18KV_CiG%<)O~cV0+Bw7xw+C?mXq=8Ki47oJj|^N z^*r6-j>!#k_-ZprSEn0m!1~Oj*tp>h4}EzFao&-lzlj-Az#;N&w$VvRMZq0)8~hXx{TAu@QOb9Isk^QkCzKgqtThwmh9HGFe_ z;6#=5J&9e8vxcvjfi6=omvy48Azk=X{d~44K1sd&al!RHWh?d;co!@`tN^1}nB7YU z-Cn7pLGP5e@~g27PSc=(C=>22;=u05A0u5=#@;%Uv^Qe+Ie&F-npKG*9 z;FMws%JO;RX*1%OQl9`>AG89}I*qRS*B?}oY32)_R4N|sCk|zYEAtMi!^8Zqi@)Bp zB`u;r>=py2Y5z;XZ*mDzb9?H?IY^<)qf zI=?qk$9aur<4J1xKSQZ{uKa;M{LO7-~Mslb_;auTZU znsB<@sWrL|=yOIDEZP~GWDZ)~cAD!qjhhKz1^7v<{jTUPU9sT67lHcYEGF!cn{8gp zIS)LTS!*o+vM?bX4X;r!+{lYGOJ|dkE2jaecDo(0?4&D#m0qU5CE)pB2~JgSPyj$o z4qj==m~Vga)Dj3`5NM8rOe0$AcT`@qo+B_88G03AtqI@S{Z&RrJ}aSwsr_p3lIw5RTIr@Y80}s_HDUAh(zN?(<>1PWdv@Ab_N7aQSRV#lx^xp2BNH{_Rk!o% zB$o{+YV|6q*ZZ;=w9pOgE`E5+L^ssGO9}vK^F?7(pedP;mqD}qJ*)GB8=FB zyEUDp7)<}2{^%@+zFxoX32xiekPjX%b|1@@C5k|ixw}4Ir`JcV@U0};S86I3Y`vB0 z*kJptlRwoPx?30M<4Es2Q4RPY`!f_p+-O#8{y|rZ7&vcm`>UW~FZw&((2(G6Uem1P zq<`yYj8+qbx8@nm+y~tf)9~!$f+Oi$)tPRhQHx`Q?Dt9RI1l!Fw66`W(mc`W{mb?< zYm;fqFC@J}nJt>u_8V>#=f^wD(MjSAV)_<|8M) zs-5oG=dvQ7f!I#r-n_(eNB+3ZRdL=6#F-Jj?~KYt%D9Vf=ZuZ_iTXnXgNDHc^SX%1 zihz$GM8qAu!ERri54!^K8ZL84pER*UCvYO-@)s+qi8b%<|`=lbrWn%sz&lLV!OW)38P4PUpP5v=P;n|^m590mTZc-RZR zxpu3h65t;WtcB+gR7>GFy<>o1r&36!WXf7JQ{Iu#N|+BBAGhuZd`kspGEyB}Zwcpb zHyOIC`nuCC5x=#g$pcwU>=nFDdI78dCWQe?!X6~}30vE@T3&CiuIdqdtIyk$P5M*V zXnGVG_T%UxI7_jQkzUsf=l!8XdbnZk=Lo``21NLM9_d)41Le_?M3naln#)X zQp$d^Nn3^CLrZsP#Nkmw=6^2;t)jfXotHkE@qa9-7|AK~jauEsyzi``BCgZ3?pZ}v z0(Wf~wI-$YPzgF4qub^%wuNgltiOBBX!=FtLN-Vqt1!Krt+0b z72U`$k9IC(8fQs{;os{hH*(+v4KoxNtdw$*(uUv!0jU-yl=q{3&{>@F7fW_KyS+L+ z8^=wW0W6O}>BL|4O7TU;e>Yl2nC`vUS;aWtTu&~b3-)8$@o;i|L0S1#9$X_d-u?io6 zZ``~z{WV;MDEwqLaihs*!GOE(s&)@J=92{;s;e}C!O|}v@PPE`ZnC`1gcEv`oaELc2d;UirU5uDR)`PQj^9@=(8JE0pKQ810j{ax1fy3Mznej%l{r$@S_NV{R z79>BW!MFeIlmG3tkayh~r;s@l@n$S>>$blHTWvIbTBDs6GB-*&Qq%G!MB5Ip7?0&~ zSs8Lkif>JKg_{ttEA*pdvh+&us;?F{864NtCi!1%sU+VA6W|zRg2!k_z#pL=-xG$1=V37o_ThDq$DM5 zGgs9BhDQpNZVaPF6$@=V~sH~c=#(RWj$s|CG5(TS4IMoh!Cgdy{mv&ocxRZ>_P?BBDDF0X_u;`-T$5m5WJ zxDEEo=0V09mQkz8=5=8}o%A)zlH;HE+#f@A8|h0wDx3)tpH^8kDADeFlmX|rjN7TiSm7MQv|4PnojHGZ+_)->9L+ONv}PnI+Dj{jD#z(A z%@zh^EcdS7E%5^T!WzD?=kVY`&QC6{!zZ=|U0$qPXxI)6VA;GV=^P2Z;uR;mRvuC4rdGm=Fm0vO zBB|k4F#9mb!eT%5lnac%zO4%HNm6(hx8~b*61%WDx@tNViW($$<71j?kGjx= zs*w25yjf{UN{#uLHQ?FI^HCizT)0I7|NZnlY=aE9G2Is&%23{`Y6vSwekh2%Cd=0uQO|>1Bx$&lp}==kNech2(_!$ z9)pd2b!+nZzka0tf=hPESere383CVl!|NKQ&}dR%7N+;!*0h6%p(c7h zy<)`x1s$2Dqw=#4O(Js5;vemuUUjOF10N|F)`(A5Hq@x^_+O$z5;p5D=tqgwF3xDn z8i{DjZwZAHBm*RF*6{=DX#qF5@h6oI0Qra84r&y$XBW3Ed+mY(d+pM(3unmUgy8CG z;Z7d2Rm5TG?N43l+t`YC&bDgsz$%fLVE zuUblkLwCTtjbo>z4J%GwvZ-w51@!vx7`7P7yX(sfM46iWLTKZVdpNabg^%gCDq3#! z=RLR$yeGpl*ACGyW%Fk8^rOw}0w>ZHcJ=~70X7u)X>{5t({;Y62n=Rvy7Va)Q(;ue zl{Wjt509~1nVHUJn!?HNu(#Q(A|wWFbtfy8tyERl)z8YBVLV&_f{|IDqI{yYG6m(1NoJB@R>nboliH-GWs?WB!aQ%*em ztQQ&2cHY%}$DXSaA5Q_z03V zDt^+x+0vfM-Ouo$qHU!Kj($SS{)F8=h+q9@9)D`mCP9+tkJPJ>y$q4;r$I;{#GnxfDDF+xlgs};5|QlebuXH5ovhfN~S%5 zN%9|}?{e-Usy2HoXzUK5%X7!UEMjb4%g6s@ZTq9YfXxU@%M11t3A}yGSZX2x_!tWl zyrdQN;Gj2P5f?$$cQxIFkYwmErZ&P#Pv7?^_18|T+8cUyU9&FjWB~VCCoovz9|S#v zMgf1Ev+J+7_m*aQzqMmyKJ{&h~7GoAxL*GTVZ z?0)!Sq@h>S@>R>?|M=P5(dEMR=%zk~$-3Syl0-Vq25kZ##`BE-A`~!qIwklkSd>yx zy*28s?dl$Dhj;yFNC6~HuGX7IZrz-&&IWFo!}#hcE}y8mKjR!0UDv{gD62<^15B$v z2NEYO3^10HnaH^`yj53cM?9*v;5}C00k|V5GY11S@JBk0uSV~JyG78|X4;r*XadLZ zh$^UQBHKOx-zqb7Z^!^cH}ETOcZ}Z(l()W=uHr)kK*s&wGSJTADEk%(Y~%lufxdhE z_Y8EHww({I1KI}C-oB^Jl(MA~>u;}drIp&rfP3P+V=K1iAB^mIN8jgoe8&3LC8`3T z|0B_n^-ZlMSK6EN?9MsjwXj+=)->Wp9u2Pwmaf636yW?y_GA!#Q>)=daSW_ex0Yb~#Y4t{{+51#1s+S6T!k z@a&HE;5zgJKId2Istkc|iR{h0oSnLx$jM9*%FxbbZC?$37ZUrD!-#yrVm1%OPUTcF zT7gRE`4&IW^hkwy+3DZVCGj3b#WyO!pf^_nS=(UCi;Vow;`*y13WpVZwPgVum?$9r z)WegR!*ssl=pRx|NNPgL17$|-ZOnGh{{;<8M)ubxy z)(mxZCCdF61KyR{3;_=hK}w3L%-80so$X>1#Eu;VRZU1Io28{eUNT+Yf*veT6u(@p z0f9_dFS+2lQ{9opbG=$4fTrimp#RuLpOw(Gam0$_P5_=%-5H0FX4N`+U3aH-pEXjT zB*RBS5Ao+KIC{=9uyI+GVVsX>?W-UbI{=6?f*p7Laxs~f7FoFsYM7AY8FjtsObA=E zC019e&yQA{>z;F{dNK3Xe%~Y*E_QK(?03Uqy@}NNFrFK#&0^lCZe^+0+9EQ2BRBP9N7OBkk3@xmK?``IgJ_av6dbiHxH7t1W#D3;KfkbVli4P@Y;`0ukjDdNH|f7hq^|S*9=&%JE6xF5E#%nh%>?!M->&S;&j3*%#_%97UF;xzFr8 z%Ox~N7{u13IP;z}?5=G5df8}4&AVI;zvO}kie9IQm~5<7A9(v5 zZ(IuHTE3tdrHdQ35hR-uCKDBpWB)*u`QeLdKH55IqVK6!av+Dd3iRRI>kl!jdp%;%`kZ%l#S`k}Kf&s#7lkOFf_|DdOtx`~kN7b+^jNaqm7bj(M| zVa|(=ENE0C9NE$iURuhg$-Uz<=RMV)#hQ@&z)dXmFZxBFtDI&S_4z1_TEBtMKN%ZxR_R@VrkBJugzZEyz3rK0r}i%n&##us zpYjIo&X^uhT*xJb3H8Fsml68N7Z!zW8lryAgM|Cae`k+8+fBTuKYj^;^28%k4e7h% zpGEwFvfQ?PMe%bow*bAcy()QmWEf4j1od-Fq+j<1pWU9!q~RLz2RQQh-90Gse(kM1 z6nKL@dRI7T%s(gxt2#=LT)z;R(;w=MeZLO)ZFdGRzwDy9qu;pM)XPIr^abw(q#<|p z`yPLaI?rgjDzLgYK5E!lJUk>lxP>~X)^TZst?EpN86GB$>?eNd@F?qvY!{$d3jQhb zslnl?8B4q?6$QFy*9G<^{uK%}<)_WV3>2}i2FZin3n_|X?#dyFAB41Is0c0SWKsvN z_4O$N^6CP0tK_9+`Zjqt{^~|MV~;c@2wcrKvk8F7NWMz_`o`%``AtpUYvg%-3d<5Z z-jpsiXecallZSd(k%Z@z!dE*ooEKMWk|9md`Y`;lWEBMpDAT<&6Pq7`lY*_vi;BEs z07Ix-!&HujLy8QDZX++9NJ|{27S~-g2?L*Dvc7WC$t2v-E~~))iSZrm4B@GZ5uB0% z5l8vY+cPlcP6d2 zmfO&0Y*kx=U+ySGT%p$LT}{oFNSX^pmIr-w40|s>797L>4h*4TIrvew2WDF5fhMOx zvjryzS9GU#KF!HfxQBdD-s;&bFV&;er?<6l$-D9vaCtdH$MH_>1;1S^6SpEW41^Kj zs0}_I;~7~YR8K#4w+@5>YR!}F`A{0ayU(|>`RzdaXCjv33c5x%hv`{_u13>$vE_Jx zi>GqC&;pZ5tfn^ipY9u8A)ZE-@(Gi`V#cAu1>B@8U;X!gzI3&#+hv{P{eKGn)N@Y- zZo&wwL1KT}Q$9}NlP))-MHVv?tFBOqpxx?6O8|CH>RGHE8{-;F(_G|7)x$|PpH2$; z;)bfG!xj89%`AlM183Qr^dl=7w0XI($fRTBC@GyFp}-{i@DkmV7rw?Q7?^vyFaF;( zBSjRklxjDsKNS_i1}w7s7(O49s8z&*&}}#`Gb8F&$ejt%WA@98k{Ke722?&yM0S{~ zmDo%$q$^voJbMEV@?jg$eLz-Pr;=t1YUdSw!_6;xFm>ELW;~QJU(n|1nb!2_`;`9z zwCFcz^xt6Q8f+4PWB~#4x9f(d*bwEpv3=%p4@q;oElriLot(et*=rqg> z2~K!nb}@^phb+zT&&j?+RoYg;Os30#c7b`MRwvb-Jvr0Jen$F$T^Ur;eo|4AkC(N` zc~f)tS3j`CJB&i0fVYZ$AMK9FKd*s$2#S!CKzT#ACb&HkcZcj9m>G;s3cQ=pV?cx1 zrnEGY4vDD?{Rs~2z}1aWHfgj2<1F7pT|?D*7$J&{WUii^WwMq8G3OMD=R^cWY6Wd(*?-|U6dXeLRdx2HnKP2 z(|FS%&!_BsbmuSVat(*Eg$BSecd_s)@QUV}JBITYF6apt%PPQ5VMr(-&31QoV5cy5 zLJ)b&zH{Bi5Yv8T#}Qy*2U@w(z-N$L_PoQ^xD^V7Ha|Sf65^U!Mqx%+_!dr*#gm6> z2~9(;kr@z@W7lONgh>$(OyCgO&J2z{GOmA7AqTPOENtM~=(iC@-Qg^o6-Oym?MNwY zx;Ciw?f`ELdIYw%)_Ig)ofKu1_J!yC`V|2)fgij}py{LOy86?iN1;T^PL0T^&A?DYFM7?73{b@r28M}_@)yIY zyCw{2^nJatyS!y>Jr#-=l~W%G)`S+y`m#HvWPmWByC$q~ff(QIn%F(XZ7QZBZA9KG z4E>McL5ixF)xHe-$LU>i(W-wG) z_n#aQ5<5U8?aeZ&5r>x%q}qub>Sf#i5dEP0;SmdX0;~K;ds=KIK;ryh=tm$x6}Z>L zLaURcltX-RRgP+Xc(Za6CM@WQ{=$%>Df$88(gR z_HUe@26@BPzusiJ`4@aVNauhv$DQUUUPx3Sq4z{2u;|s7D5&|wub=LR_`!B3Q@ra( zj+Co0FW2IzD^@0h70i;?C0Rbjjn1)vZ8n*UK)(>{=<0TUL5Du-``Sl}#r}T^dYFePpF0W1*ibAi~M}6A?*8+R7>fnbv$2dRGGV$IOgSeO97Q z44nMT48H^Q5~+kEVCu**t-eT6^ro*P{M>N-j-h4zry(xZOTIYN>c@HgcydpNAM(pt zdcDuV`ReBS5BDnGQ}L?g`kdcd35NjHPe5nWLwsXT(`xJwf)%klh6jp?k$3fNT4nj> z?#m%1zHz*GPxS&uousk5iMQSso`&Zk90%G_PHu7`i?y*E!>>-%qp`c-QnnEAO=Fyu ze!Pi1njU6z=xXgFv@kU#htvOtTzsp<+RK?5-wLKT30_6{@!#P4+^q_7*n!vU4SF}F z=lMG>^EGkRo4!oFcw#~-bK%DoVp2cz$DN^CBJF0(eniH6-;hB|7t5Dr^WZx{>_sn1yA%Dm7b|=Lph`0?w^Q2d(jPrO51=1c$e zAA6#^fn&YXv(>n%Zj`Q?`eyHv_pLICQKpuvoVm@`7J==&W&Aj6f$qe zL8`2S+iBAA!;UQ`ivp@B$zEA`^3%nlbn4X1kyH?vO2r7Yo{OQp-?IV0!}n zHue^XS?SX^XAYryV!>hijk0K|=l*BveM)*UeOo(EN%GyaN2}noBsXWY4q2|=Uq@B{ zfdR!B{59aQ_S?^r5kHozdC+UmOSpaj=zGh-pa|wC)oV-jB}T>-biC#WJnVe|@-5IO zo5)M5>jY!wZ!Nb(;NQL42xl7v?}u1zU3TJ2*(K#JSQ&}7mOC)^ImShQl3TR#T_PLb zJrD|))rpB2Q4#q%ZEy-I_9h_5Vm@U9ZQtw$?UL($i5a(BHAt!i3-9epJK5>!V}HB< zukmgwB&^L4OcBxULaO&VYWm3d7=<8{NX4Yzbi*aZCp{<#t?YgsFjSV;6p@v;mIH}> z_S3CfWvNYPv|evILk)&w1)J?E0LD%v{HXCknfw;)NA@ONiz{9xumM+8&l(vA zqW@#Jz*bE)n17e*M-s_pw0}9P(w46oD-Kxnc5~A26-aI<55byG8M%~*$Eq=F`RTG8 z1EfK?Tc`c{2UFu-Xd+lz--}E_alXJ^%v%AQV7`F&Y&@fx%ssd-mJ!zN(GQGbwpcHmL{p-{Bq+#4d4j3CT`8E0Dleo##5B=ded z!&r9cfa55QwByjhYp~zUY99Y{Ud?gF{(eMCf(lJkRC#-KJ5R5#^s*G(>Ori>bZtSu zJ-eDF#=n&VCb6!mVg}!`*3jF!p_2O^P^+#uPKQ@eY~GRdU3ut2TV7D^n4#iWi-9O1 z*BasZd9+){?M5j|MMIv4Tf8eL-qB8x)rxf*f(mrs2X${%_MAO41#3C+1og?2P;4p% z>Kzt(yFzGF&&B>VIUdtAF%=JEz?0+jbOeqVF6Uw;hkSK7&ZDFzV{EK)#GQLu8UU?rGDg!L%GsGm7D>kSKg}bgoG{)mf!3dA-S}!=^Krmb8 zZ!Awuv%Gj|TijC-XTbezKy|Rv5&=(uk$CH_f#l6RjMHNqutTm{yW>gr^9LLr= z=3=$_51I#irdig4aEAwc$@3^8TH`lRU6&K`hzT&3=pnF!UHOLaHaU@^x3+-tu;%s` z?(hP{)`M$`xit+X0U6oYf-TsfHRVos$>J8U3%%TMZ_Y1_6E4mllbwa$H5|J~$XAk2 zEzC=jEqEXyr0eU}EOPZ}j?8cS0Op9!H2h<|O;JEj;7M!%Q+x4mSdS>^b(0N6p)TFI z(dSF5KQ@_n^mtaJyN`Rv*Z*&Kb4HHYIlj0f7~xN zT^HQC{4wS_BuSb-KCwoV&#IMXrN{J_bEGz|iky~GR>z!@6+eC)oq#Wpw8hioOG<{3 zZ(a3%EY1(A>^OT@*vtAxO*t4`;zo+jpVDTE;1 z2u3-~NyjG~Xmfr~u4_54ikTJ^e9tqIX8}hPmCmR!inhf;Dc>46pdq$`*~EuS_Mdx!!E_SkMoWXA- zn=#Q>G2tfB{r}U0+%|eW>{9n^g9j1VMF^Xo3OVbBC+~0cm$zSU*IRQtC-;Zz#5Pdb zyq#8RpPUGfGx@tzt=PGwVnX+Zz+TP$w+ANYiZ`!0*e<1IL|B3HSI4-QS3BhVt5MwS zv_#RaBWn13)O|q;(MpXReoa2!KK^HwnCp4R^)5+0Ak2nX&z7SOX=AxIFU=^~Ywvd@Af&QpeiZMApWd!w!|IZmAaC0@0_fZf821t^f7l0E-lhrjy4`XgroWqy-qN34 zdsj6g!rMHq8g*q(o_ibCRg?GOVSXH~_tK2u8T(J(+tRwmf_k_2F@~HX^`kx7B8D2@^Qo9EYyl z6zo2Kn*Sp}B|xP7oLjA-#Gt5=xyie6{Mp{<6jjb#UfhqPzOhN9z}Aqz-4#D6qsBpO zMQDUCc|_$*KHgBOcgQgoT!Cl(XM+XPM4bD~$Q#u2nW0qYuuL&@=V-;_$NZ;t!g&1E zIuGBp&OXufl=;~ftUcNoy)f6z&6)qwhMRQY1lcS#Z;5goV;E&G9&jn|`<*H&WHG^V zZ#x^h*Lv&WxIo>T81=uHhW;1(QMQL0L}0|y|F75j3D}!?em-EeL@0HFAb;d+o9#C* zH*8#dBpPNs`J=k&ot!-2rS7jDzQk3c7>16O${%=UP&ln!c6V`Ehd28!dZ5|HAqeyV zN#=72x{~z8FPplt&V06;Ib%%d*->WesqoxCZAhINbTbMQDXSn1CSA=0JN76^4NO(p z;J&U2m%yTNdWw5!C4x{^0%6YTxwGVI@WsXIxPnQ|FwIXBcOWL!_qY$YSaoN*##_=_kK9B zW}>Z7!AN$Z2U}kcT7atJfG=H7)Ay;S4-rK`yct=ZGGFVjt)}khzDAcU@j_2p?j7GS z`d=cbf(gIxGIT^u9zfx|JkLxR!HHfc!#+6V3_Idf|o?l z_qA&#tamvp?dvbZh;44Gt}EAc&61Ni{yH)Kj&(lD-zOGqLQTeRJ|Wi$pAxhHbI>U; zk%KftSHJ0{E&e@ffOKcF4wFHdQWe-M?F1Ur=8%Kpb2ldB4Fa}wW+}|dCn~Q9@=={m zUk^`(cV(F)Bcl_XTx`$yFw4L`5JBCSn~v7TJX^p@9~eAf*WK^)d%qbe zv%%QZf{k5dLFb~KiSP4vqLoZdYJyQ)K9lx~K(oX^+r8$@KqW9uao)Rf6cik_Fy=NwbVsnws7lv4#W>A94B#fw2^>`D;tgea=oWiu1_S^>5>k-5b!idI?) zq;^!urA*e4&|O3_QtcZlXYdj-z^j^8Ky>76I(pE3cYG?81FU@bYT6#{Z0iy*LHW&5 z`JgpgmaUn+$BZn&utp=%-JRnKetg1qR})WYQ?DND*!k)@?U41j@ajzK)}jO?&FJ+Lvs_F4`_sFn#Sjr5nfx z4D(rq=5mYK6mLl6a1!ucHteGgHsVK(D>S9{x9CYfi`1>xQVH?-WL!$e@!EF~BSyc_v^kLLtHl&p~O1eu*S{i8tB&53$l~)hvjZ?a9XSIkl$J_q}hgtpWjPZxg<2QnK$laY@?!Cl|J|J zTzcYb21ajX?GM(19|bX9SRc;g0*9dB?}!HML1$6YcRLSO6 zj_2%IgR?LK5wd-zErTN7%`R|Wf5wa6?GWCKTZFbKbW$52?Aw_Ko zIKDd$R8B6;+AC*kmGGtPfX4;1-z1>RQ93w≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                          F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR379/images/cplsetup.png b/previews/PR379/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 zcmdqJgLfs)vM3yD!ikd!Cbo@9GV#Q=ZQHhO+qP}n6Wi9?`JHpmz29B${R7|5+AEE! z?ylZ{fPlRHfq-5BMczk1Kn`?3KquNjKpe?HKjr@e{cfA?f*_iwTQ1k!%h(9+Y;(f;4i44h5=A821S|3dqR zu77pM_0<@Ml&y&YV8CC)`bE$6PY3^>vi}|)*Hf5lY!e`5ZRntx+*(SC9De{lI|kl#Xfg*YHQf2 zusSc36Qn>PS6#>X?M>9bvGLw^XlNwzTR%3uJ*DOG(Jh7bQiJ``OY5NB?jlC#yqp)s z$D5ZIA0H7B3JRa+9mQQB&9Tta`=q2`j!#TH7nPKhq_2D@Or+QQ>L7fC zm6df&3q+q5bfe1QQ}SMa>4?}@lPvg`nAq4a1l_ybuNfHqS`qtt6s{;x)?mSyO7il< zQ8zcX@`{SS$#|lb9`wI-mt_;pk2A6`*gA}dH93yzUd5nA&l(#WHQ=$au|G8E9IvAY z5HYwwd|eQ5IcH??yOHq8Q!wmQR4{pt(&2U0A08g6>*{tPGmr@h3oB>?s&mlMR%8?u zh(R_zo2n6<T+wWj{lCd9#oJn;}a{YrNwd zNIg$RR#ud+FNkNf4;nq3E?TXW?0smiCRk}%nT)bBnO98iIrOY`b8Bnw#6$$%Zw{r) z)ZiJWC_v|_TA+MBfr$9zw5+V?06F~@N5lmX-R%6?9i}q*K|mIA(eje88JhJ+agAhL zTwG5tGgzS=cE=TI*&;0f+AGw#1g%uPd3ALOXf)f0EAo#ax5mc8@D>*rRe3w`Ye>O{ zdFg0rqs$~l+hZmvt_3<>?s<>d|gLJUI_i!S{ECZgbZGEYvW-Ym_I6RJrR z0aUUgiZwMl`d3&@4g2lwZTs?as!1de4x7Z}1>6S2Cli3%Mk?RWoFU}xIqvne1G#QH zM*TaZbdGZ4c28s=GbYC8?#>=}h6W!Wh>wqNovh{%?QbbBuPcC9>JDZkloDW{^R*^I zA|kN6KI+g90^ZI8a&q#w?4;J4$;Zs_C-2+uW?_sKJW-($Y1rm_@$CQkWig6l2 zE!AM408<=hQW*{4Z5u76ovj@PgdIRQhwfc{*Py#-FzEwhZX+lO} zL4nO6b#JBV{>?G*jIYb-er=d2G6+h#;F(*Pkq;t%9&;@lx*&cw_17FyQxYG^bAX_@ zgvl3BQ&a!BRI@MUh8n)9oEu9g0|B<+18h4B6>`3!StL3ZmIF~?|A3m=oP|<&Q3FXn zHCWjGsT@V>^h{*ROhs-lpgWJ3UIX#1ET9|)bSZB~0swW6m1)_kqEJwI%*4PY1slY=|RvPnaI_~L4y;Tca7rAaBd4*33gp@>@U5grIYOmK~623u8nnN^)L zvdlg}L%kFP0nwjt6xmrnx#ONJx71~@_rCwg7e4wVBj6{7S^kcTOQV7Xu2ahAo%}do zBBwCda-@Kt{Ts}Guj04$eZ^^OAljP^8%|XvhfnVf2~`&3_azCKz6ZUO*udXsZep%3 z@h_Owj(F=K=*lB7tm*VgbwS8M-F^m>wVseq*2?5BG z{YC`rMIb$zj*6}jO?yPS%+d$wZe$>Z5kwTCfSB{Ckq>-BZiNc7G&0p#V`*_pJobar1Eap58k zfL(2b1f6EcAir-G3m0OcD$dWlOZtDC8&cRps(qtsC;1-fnAjnUesbuGj9wcpBMr{O znx=VbauX=-AnBtfFyjG6#)dG^=wxp{|2`6mc|!En(uje=Mt*GV==CL@l+I&{`uGpL zP!~DE7yWgC5T72paI6dB;|{BonbebLWNtBN;B)Ap(ard^wS2IQY(avry%7@-&4CGC z(D0=H?o$47%OC{*I2fx!xV=-}jDmx^9a`RtwTHGOVp~c>LsMK)vHz+_)TGbT$>4%7|IF)$gF#X}i`Pty<=4irEYBM?&i2TTLTPXc@ld-Y!^Zg?N5`uCA{3uBfQUH?cCa5V+o7sCK;K z*IW-8=6_LT}n ztrpoLeSs#v*1q9&(%uny3#z-;tG+HY+C=c+{4#HH3hYMX%P!EKh{+iG65&k&tOwJ!6!ABQG6D6>-4ws>hn+h1IgqRH3o&3TQUO* z!1=qVc^Zb@8Uzq(txbiXsWQN8UY?(ab!^U^K&+Bcz5N(o(XMI<#3b{ehp}NYGIPbF zIuHv@%a6Dy=BhKr1qI+LDk@ixk4a1&g3w#NBSs*wuo5r%0OtKPy7DAc%x=6QV}P#` z@GvmVvgnuC_!4d#Dr3MC`3ac$=h}%|msOnKc%+P|GTC#ryv~8)riBd{<@8`5odzo7 zRy^is$Eg9jN_mV{r+y2>i5Zj8F5XRSXxJi_Pf@943 zpd=BB_rpqoJlP2vy)}b6vS1Tpbn9sP{ANJNR^NaX)~nZ#C#kv!J2nuZjgZAw^L!k4 ztcC(~do$nx^HzMiE7E*1yKBKTL}R_QH6jbIJF_3Xpxks`s$k{R9N&YB-Eb2RNT76d zXZsl-Zpj!ej z;eWmflQmy~ud1FX2-F-Y#(ixg(YpmUM;k%zO*J>P>tj@|(TT zE$UQ~g0Uw8c~f*Y`@i2>f@BbJk>ffaW0;v&77tY83*QFwE%*1(nrabvyNBDRH`PPy z`KNL#?{Wd^=%4};;1n!_QZBIdgy&*Z zd2~yClZgoQD0<(UV(qUJF?m)V*NqXb10t8DjHkKlZc%4q5*?cm6xot> zlZB9y;^zm2`Sxw+^px{SQhvF%q!K8h6hj?7#;!#$#i-?N2ySr=a z6HO$`3x@D?&)6}Ahf~W3R^`NCa`7MbjM$;nN_7st_qupPCPa{NC^CQX2up|gacgxo z@E%h3dUuj&JQFbxn(!?UB}yG@yk6F;s7d~4Xc4B?& zkhgt2%Uqv32z6?tEv)vfnO)_U%<5fUVa-BMPmhh0)9#x=0~`f}EC)#ZLBiXEXdFRH zZ#xf+3NIS^)=2j9{s{$&?gFbV`#80Qi+$tjtg{0g^`Hy^fD}q3aS2C<16w4$bt7eE zIdpX%Vs-KmfqC|bA0h?Q2%S&~6bTC$KX8Z~;@pybeC|9?C~o0(F;sPS zx!kSeu>X|l^lhIpLT8RwP|;oxqL6;VCYG9$afddV3h}y1)u#eaKkTSt)aALaVZ#^d z_0)@qVil14)`afvP;ma>&NZLPfyw56>$)`5= zP%f-plh(2gEScHjHIr))I!5xNj0DK9P(9+7R09RLb*HxK_LyhOA#aRqmZTZ+mqLHy zcrkUDfteYkiHV8g($ZKEcHcl?0^U<0Q@dKNXw~E4h4Y>p2eV8TLOn4wO$YLEs`3^r zjeg;z)wx+lZeN$j@UXoq5(cxIrV*#LHB38Fgu|6qA}MNbq2e~D-%*~dEdBHhNN1&xo6gk@NL_%KwQgL@%x3~vz z>^^Es&uL@FiaKQu_dc%0S#R{y_4~V;Mq}+GaHpzdS{eORCzmKe3AM(I>!pB=geWN; zcd4{&Ix4euK(I_4wGi~tb__s+EaVTimxW2vlQ+UXfDSKIsLMlaro}x9 zG$Q;;5HxVZQ2-x;*z_^Z`MQHp#H=4Zep(&?ac_A3ZWw{Epvqd^gHInSy0sQ*0AE-# zyB6$WRlr|53s25~`|J?cL#1!++sp$0SSFR46yJ| z2Gnw9$Oa!vsgt6URmhL?31B1)qZ35fLU1-~9=V5U;upi!BZjRd1k~iP@+nS>Gg`<+ zBn&Fg)Hf(VtFj^^#Hm!27YvN8DD(o&t8yAz3bWAuHd1_FEbXTmI*ps($Opc&`Irsmok%AgWTai&mQAf!pSM@MK9azoWOQd6-9v>##9 zrvB!x5$+yo&8U-R1P7<~3drrk98{3+xnVT5w<29uaE|r*tL~~MB8e}-&AEDKj}e2C zTu188J~r;EXjGd04I4L(AmWtC4+DC36caV5JOMPV0*y8uaK6Dwr*$8$=cT7IGt0yu zm>ETp+$4bO-CN5s+06f@PH&Rm)woh$3_Gv`OfyVfsgp9xgl)GnI~yxzKQJ(R#iN9| zt-4PC{I{s6=oX;;r3lIVeWaLLs3>V!Z5!&QwkD~S>hM{OWs``>X#$Ly+NXeY@NP?M zQpY@>Rw(dTvA;g2S8NrsSO1m%SY(SoBhI)A3v8Ig$Ni?FJRfPdi%`iab=B6P3}T_v zt-%q>cj*ed1xd|dGpCa>tnH5=KoctHWxtx7UG}^vI^Csrut&Vzb;NXrbe$$3n8xv! z^E9atGNM!;WPUU^Awy4UR=p=LDFyFE3e@?I!tXAJZ$F=ouYOE)TEo+d)N+Lub59 zpn@8$&PD#tl}+6eBI+umxqLL|cV&`>zoD)XNEXJ%P`cXy1sf}m4|bgqq`x^MBSXj1 za?=i+Su^2Jr6sdu3W9;TX&=v_&LN+0dbQh}zV&Z(lr>T>OnWLD<c6ScU3v0h>x1{SLqe}>r^z&yGka+c`kEkF+tuTmv%0QWf{A%y z4QaZMmSHooc-351&>y+sG?$cwnDM{8zq?iBRbu0`v^HILSUNi!L^L{By%bBg*N$TMZZLu}msUpp6B7Fpnq#OmV6XX3*NWhg(xB88PBKg~R z`M-+d<8nnneZs?Got>S#`vq=O9zx?3`yy=}7*T6~p^yGKz^TEQXjmBz`%I>{j*(Sb znex-#92Kfh`UtkET8j(E#@KaiY&t7QY+lC$q1Vx5OHd9jT`l}5Ej{a$&M1Rj<#V7y zO<xxoPa6cE|=>#u1t1RQLE;oqy~a35PY!fm9& z{NuFO`F}6=j$`DE7g$c2Oo(p%cKDS~EN{9S7zlxahSs~Zq*U?_Us%`cZ?&_>2u$P< zI_m=zAa`%*xlP^BGTe3LevJMmw8kQ zrWSsN4A?QDiL;WiZn0#kg5I&wPft(X!^0wZ{?e5fiqvBZ6*S$!K63a;g(qK@P$(Q_ z_;S2Y2Y?T}HA%m|GmibEZe?Lj%J1t&wV@|NxUY=%qWEk^E<2GJbz3CNbT2O_w-N8} z?~~_o&I}voqw;)V)#+nTk1aS?0D(@J@H5I7(aiUVZK()<%Wmg{AWjFVg)T4veW zIMyoQ7}HpGz^I|tVegU3X0q^W4P02U0URzpvxcaOyJZvT^hUZE>lt@zC-UG|H#8O% zF~WB& zTA`5u5_8`~7H0#`lE?uP46M5SvG1jjO6m-^xfJ$XN2bbgz7UZEy^D~Qz>LuzClXJQUO0mX zlC5;q4dZ-tmp^;g0mcNaimDVOCuMlVtb2CwPf20QG=M2_t4u&5(Aqc6>k*s$pIa(A zvU_U!p3fpvIItk#p6F?hu)F@$~F` zBlfLCz9oS@s%~lu^78`)+_B4JmB#;`n;i=*D=Rb1RLU%SRqFs~Oz_?o>Az=Y<@+$6 zu+x38vBIF@L$_&?n+VA6WrKdhMdPu?wb4%~pMi!hU_hzract8_(v>#SdLVkoFxUTjS z4yeOYgeanCWC^jhzL}b zq$4m<%-k5P%25`_KyOH`1t{QMp>v-%E8pX&YWf>+$JO*$6ba1Kg2nDnjHW-`co0+3 zr!g)&M)5?SFh$#G@(iJs_7p^yeC0#|-0zlZAZSyeff)_Y_^yZ&@; zgT?n59z&5h!{g%u+S>Rc5t5MS5@EBfAa}F;ZbvAFiN8jiBdha(*fKLS@zZ=S_K#-r z+V@!!JqT!Xp?Vaa(v_m9)Q1aZdgX6!i>-k~6e z`NIu(zQM%Ae9L~fS!E>6Yo2@nKS}+$e=_;&83IJ_5{aB=0nAmx1?xu6vB&Cf8Xe2r zI7>)sAxE*!JobXFG|`_t88bD`C?(wOeIkq|ro?<<3S*BGY_*tVmBn2T8yQZ-Y;T76 zlQ{PltG08N@E`24moY(sfu{N(@nvf&dnbyN4~h@K)^`{o>2sgJm@uKUs9!hLe`ijc zvL1;TAHn&9(qxDf3j|kA512jujyEtDv>0(Y&j^ksM;~uP;4L#vySm3qO76!28O5UxeZWUNxD0)(Rn@Ou zKLNaTK=|>R*}?shTdJcg7C%7~%!87~l9`%z84i1enz$FlDiEab`*yG~_Qx8ufro~G zU>K+K;vF*Tr~unWg&#^f{8omlZ_Tmhu_6a``a`E`?*uJzQdU{w8#XPQYlOj1`7J&- zwK^1$Su!{PRUn^%ekJR?7UKR+w9NemC4`8$+kxLqh=(al5;#hHe}(*1eZQ6XkF1{Ra2R6@;DG!NMGtpKdE^5HNc-9&YK1ZN4 zs%sFIs{yr_B)_Aq4w0%nIt(87hJ>?Mz9?O?8jzUXNDAg$c|nm_#(9*PX&GjQCDh$L z?N1!2;ywO^r)`J~C1>_N9~lZ|mVqlUI`Mw7S_gG!!)G5XT*UcT{sc;1ercCXZ*{<6 zA(?dsPp?m7Ayq^CXjo-Qx2Jq}ddo z)xYl@N@Atc>K5|-2|r(UP@=MhTyg|sSU`?j4A|UR;4UK3l)0!8X&%sKNtC6Fn4zM- zeHXmR^~R6P%-iXX)aetjCLyQQ=C?qqrTtip>F!te`Yr^0Fp)Vr#j3g8;zv68B=(HC z;I?Y4^*WuxG(XS0U3km~b?Y$gCJqJ!ct`{BK~aChns9Kj*4tqp8B#_$CXh~a!cs6u zxx)D@-E22M=Dz*qNRQVhxvzWNKu@Jq6|6xu;3Z{y&*4FijUIbTpLTAh#W*Tfo`8b> z2hyaJhRdf{Y^(aJxRYvjRUQK?L?ldBS}tZy z^*BqRBsLpm1NOU5W1=gHmZo2+Zypujh`nI|&0ika?|%|l%uGu8URv)x`9*i)U6$P|UK*D1? zqfyyQhQEoGS>Ki;!lF~y691%Z#iRncM;+l}E(j@MmMfS78(2dVRE3gHAj)NX1p^`J zh|n3wQ%?%pWU%^k>vH4{oH!nOq2L?IX$LZPCaa(ptg`G!JDB6vQ@5@PZ)+$3r{#I|PPf@|`P^OhBEfN!D%4)Fc)T{q=J-^9 zE{;tS@M@rd$xI3-Tl=GK?|$Bhds&CqMs`#ku^ zs}fcB$Hv-I!`3HPNN{n?+uI>tS8w5#A|W9+_)ZLcGQ+#-c*hP28++T$>%@e_)7?93 zjoT0j3hJI+Nyf#N>yqEi2PNg`)kPXD;l;R3d?L!Nr%*(SH>wj4tQof256*T3Ew2}v za0zj1?6!y9QmGj0pYX^eQbWCImVM13t4Y0d#ARTRl0~|*@tg;dj{!M3nw?6cS->^~ z9$?KVnQz}HY#*$dTO0JM??M)lVamp2rQ>a&KH|1!R*uYEhuWvAd8xd9O!VKd6Q*3N zTtXOadEFyvdOeeW6k9#rqV(qJwsJl6^Ij@5glV}Q#$DR<#j0Hcd^Wbl8^i=3i1nR` zJl8zK1+5tSGFUaj@*p4Wt9;#XU9l)XuhF_Z`^IHN+MOL{U0ji#TqhLYK5ieKcdp%> zHBRbkYWOzsN^V#$I3l9y&ZQ5TnVT32GkSYd7q=%{bgmrgVx|Ps0gvmzJ})<8R8x0B z)z$ZV5Ec-DgR8ualXJ;#E|lR^A|9SWl9LKm{b?_QXm5=?;B!M@k0Z?{1##bLuE0sd zZn~qZ%g}hp^qb#Qg;W`88RxFf(LeW>2E(&_6;2!VW@;mY4j4|uV7DACpEV|%LsY6> zcM&Tynu432A8rw(qqF?RLeTfaUjw>6A=@H}eTcj$gb~gSC|WCB%!Q+}!W+`yw+}c! zdQYP%K9_UKwBVm4Lf*;ADh5~2jkK*y{1cjnU1X_-VlRrWS?Kt@CcZ=U}|F6Y@dOkM*ySEEbhj!inh~8+n+OLtR7MNK05isdN9nqU@mBkS zEeTq(TA)c*f4t(azRti2Hsd2HOR6+Yig<(!3`%I{T>Z4F@GKlX@z#seG3a9}6_(2m z1{*PvLZXia^Y;_MGwvhLu1D=I(8UN{vF^vlfU=E8`EMyXUg;oOBQrC~8@syg{W<0r zRY}FbcD&NHXU=CIIeJFMAx7E`nkwPfdHLWG9>*<)XNMJ07Zq}I^Ya>)cdYW)>#?$Y zbCr(CtY4nMZ)HesEBL6c8e$TMYq6YG=B7HU{$s`_CWE(>LOq+RU>(ux1kk<^5#AB6 z0vCGeZWkW&3j5uJ#_+J=mF-6et$H)o(ooB6L3y=oNCwAV-SpZ!*)P$ign;`HsxiF9 z3&}x$W1avzdq@Z^nXszY>r)!>WVE<^brsA>*g4bEDk6sB(sJ**Fzlp4gv+ggGH|e< z-o;A7bW-{i*3DO6NcWg~zO0`*F;5BiugHwNd9`~7ZFEjM65qrLW>k-hzw$yo2gnQp7&vR=BD2w;>B z^A6vVdlq*{r^6CzTIx6g<;O5wYYsi)19&YAVBMX0g9e%ihGPdB$B$0aKHU(?y53>$ z?;VP($_7fOHiuR(c@8&Vqki;IPk{PXorPI#JTZ0&Q(U@PwPfP8tfbs@*vWdtEj+ym zvi8y9W5{R0pM3T{GqzK2kV5b{y!<#@c@9e7b965Yxm@P%{xYtu)>LuFty0=~Q0 zD~Liw84lDE-x9F(?QnW6+TmJ>vLyN%3#T@lI=@u2>z%EaAh(6W{bHUBP>L#L z#j|H#O4xie#SSf- zjz?*7x}?8Zj`f=o1A`l=Q84%;mCNp`uLc2w9uX{-IA}0y-ma)xVhKqmun@ggRR*SYOla>Hw4C-nP zme@uwjt`MfZ$lF5vZT9=wZDr#ileF)&3$TWpo4Yd#FBr?1zm2|V6uzrdTrOBKVjS% z4dI>cAKK5#xjQh_#{JGoU(=_~l2Z;mw8SLFXhJ~~oX&Ox6R+q{X&v>-tI2^^Nm{H! ze-~<)%f1AaRaKJBl8eRs^IG~%u!#6_Jr)bC>y1lsJS-q(WV-QD6hu<0V|*(WG^PLS z>|}HI1=(+E6*T43|(%MO98s+M+$+lvpc8#WAbC%?tDiE|JwNQs@G3@r$INSgKm9f+h) z*aBxYjL@9P!8_nZpl59ZTBe7aQ5AKYyj34cS~iB~K}!H=46MS@&pgC-ME+F(sr{$|*lIitzU!1n6o2p%*x^ody zw-xFUFBVpLTf$x-G?$6t@;-0n8-d5)*-Uq39f+*)V>aZ(#ibTP`q69Btw!4uL@=GpYXC4RL+$TTL(BGZr<3(w`hf}qjhL^T=e`EcnEgbHe z6IF1aMx$~I#S4lWaA+aDryVqGtab_$n%Q5FC2i1pv5$3WYHZwj1f`OE81}|}^nVo; zl*d2;QD}fup2B$ahhjBU*j%9Xl*S1a0s+Pm>>f>7@vd&4doF2{R{Ts*n0eRk>NR_o$?4*H5bL&k%S(LG$5`(hhnJ5d1Gjy3ayVzTKty zMTg_EE?S5{66=RdZvsQF>)tJ%y}Tb= zuQ-E)LfTUwamg*)IW&Z{$(*QKo_7pJ?e>1K<_4PVcN;T3iCu{C2}(0cn(7)qqFt^L z4h~FviQiYg;ThV{U>P*+XCbWDVPtt+eNRnIr9VjJWQ!|G+cO|^8&R&;=2-l^Yiy4o zAUz*ezCoB>q@sP?y^pk`1jMgF@ z{1e`02YvVWcj;gzv>K#KU+kcj8+WO}sI%CvNpwUym-M_ZB>X&38q zTwPJ5PID3_kG{;(%W2rA0RKh=JI<-+Q*GA?f2WqL<{0tCKBF%Z_6ft@hX5o9u!msx z@O);;^ydgc4RH?B;iy#@$MunUaijhYEEwdAclks~x!NabQlW%+_|D<(Ptq_VV-Aia zQoK&^#|;<4P1kei=Y1tjcW*7Xb1S8MN7;s?c*X7h<4Eq$v?R?i037PlL~8J7=RK8` zSeMD#2N$ec8|6rTrt=OC*K=ch;$4MyKdX4f=SYuUX^Pa3tkDLOF}|{ zPX|E~&JR_1!vVAHZ@NFYaxo+x9$3Go6_YjGRSQa@SViKJGV|XX3~(8SI+% z6;0Av!3@VHt3<}=WSaK8pN&wCw=oi4nprC_&UX$f9&|7?4t2O}fm5Z?U^Fqyk29^QW$yH_fCmcoqVX&7RAKMO7AdB*{pLw79M3ibRK4O<4>OPDs#`Sl3=A9 z?si?z8xD)~y{YsX?fn!FB>s8SZG4Pulx_H}yX{4}3?_oPOa1y>vvW^%-R0E%`DY!+ zr^POA;%HNuKZRbkUrw0(;xA3h8+_U>%VqG`{*oz#PpgXdG5WmT>qW?|KISXc^~WPK z=Ucoe{Odcbr~9BLXPjJ`=7f|k;4l9_{JPRGUAT&n%Y_gJKPa#iK+fXx`iDt@_ z4tXY&a*K0k)2aG+0hGPN?um_WhZuyc^z;K)P>J^WbXvcd3=rCmUqVC-M}+l>8M(pj zzpTf!$8?{B1~`CugA=vYrEZxc`hKz1A+ad%;ez)X#Nlck_4ayA_{t}&Xo#iwk+;j2 zxFz2s>Yzc$DB0%ig8WX$A$|>OL4hx5PmVZk0?;Mew{hCOuM}+W*L*o7eOhWOd-}Mm^cbSIkfj>y(*_Hz7kZt#PLjQP@?&+f%$;Ue z36C>);ZfX-63+7YhJr|-PwNEcC?p9HzW3=o?&!h~ugS)I@Flg(DDHnfZ8>rrbLF8*7E%LiKSZ!Atu&W{sG z?7J*Y)%|`_?ZIAer~J#+N&b@o813OUTes75%0sca>YP?cRX68{cvt8lllKW8l0T(J zO5F|1(Mg2<(B|jW9#Xy_Lm6WMGpZ$G|2!byBe4+Tw}=@XW_KmPWpBZG->NrWRM+yb|=ljCyVlAv;l1vV;1@rlScR?%ree>OSH7p=XWyw|@UF?~B<%F^!28l>{m zOG~$zYB!{6e18D=f-)9H^pIY50=c#nSC;fGW&~m0PX3jB{p|Q8FfWHpq?cuBJd1nl z6q94k?r7jwplzesm#Ro=m$RjmmYwltk6R#x9_)|ovoh=2|IUgTFB5{v4ZMO`qOq7N zza#(SN5=IFXO@kF+gY>d^6Md5X0rZPC3W-pMUZlD9FgXwxor*Bc5? z5f5n;&fZ~shq?ZlGvF#iXZ(p=-IO$IRAY@rcVGiy?3D7>KQ??C_feU|LJDucV7yXL z3lO)&iwC95Ce%&+mv*@2jv3%|WjG>k{#wl4thSf9py^P$G`P35@%{n%=>k#J`G&vt zQRdUo0Dfj(QB}ITe{8$J%)oWJiBA7ugx7@=^vFQaj)5Z=Dgui!CyZJDY&ir+WkC6W{?9WxCH-gI(XpGrJlTrDhv@fTsIDr` zXPpLb?YCJswX>62367E`+)X&G{=8Dyl{8AKL%D=s5nDgO$~Ojc3Tk|dknh7fQws1{ zl!`M-DP!t6VY4A)zOdhKI4k<7gV{q zRTyp(IV34C|K;$yf5CtZ2<)33#Y*}+~zyp+|teY(9D-o8#nqC)D_GAS2U zOZfmVN#)#w>JUW*$)+Irn#Dw8W^A@}jb>_U8u(?imc{Bn9x)P8)!r%0btRTu$pb z+%c|4Ta_8bIS=bUtoJPDrL6a=XUMY3=o%Xb7bnk*Yv+Yrn#9edmc1^}n9dLmS@+7t zAvc$%cmCk4M@OH^+F2qL?(b#A561MeKTELE> zr}vtfxcUY)xER56o7dS{Y3ERoju$b;>%mVrHB@04p1=S+6T-_IglG+|0ZjM}VUL({ z%Rnqh8*5fRy?rQ$$%3$s>v9<$N7jhKvbEkqKB zwIUV>Joid36trLVX1XA1XfW2usk&ryH}!lULGJZJDz)wLd#HjD>8+FtZD__GisH7i zI|;7l4>&PYfik&p7#Xpz(630K78SRl&hEZqMO0GzF6vH7U|`b3AAwX;DNhytoAOHm ziiW6T)RjG?r@J;oaCr*{xGeF+_&k3Y*v2NsgMyL}+}}W|R_h8sMugL0mwS8jcrEp~ zQBT4i2JP%>m3e@zAEhflNu|zPPPr~p@FKOVDlbgAX9z2y0UFZ@-}co`-_t>w)t5uS zdb=~kl)wS1C*fKVYGvA}rcd~-**0P`3X3Jq;K=BO7UsJHDrv$@9@fjU3j;QN4z4P| zy&pa{u)_nC&gMkCQ))vaG>K0LX;mcmGQwu;<>p4Ggq2iMj$@Z3sk#D^)~3w1r`e#4 z;1@VZs$h0a4HBNm9TKkdHt=NoZp-eK(k$FoPBp#oY z)*ce_^Be~fDSZI997H6dO_qfB?lX==e`!2U@yG{WKs+J?BcqH`kvl(|!5lTI8wzny`IOkct6u>|Dv>` zz$uuJ{n>(C^2V$k`}4_V`^F`;B#I*^z#<4kub2WCNpN4FV1)65OHU@X6A6V(ICOth z4qx!3bw++^+7}rby!rlR+0vi{)W4~J!L*CofGt zkx5*?$Hh9kfRKAy3--?A_p%uFlKMo*Tokz+4EVLDxd5!Uj_&DQb_ZGsjdI@!ZT4L5qu;jY^c z{c#~6IZ4t@aH3tJ_3-Ti8?KbI{myYzu${r08Ly$ZLJHnn;}pi{GKglVb%mY~!MGgR zU^vwl5pcZjMT1WGyWkOmN%@L-BXVAqGm1n;2qn+`B-N z?jjTD`x1aQ0&75QWoOg-G(UpPpvMr7ll8=sUKIBt>29KfmFa}8Pf!J~C&as;%T(`>>Y_+G@RGm3`YTNHpietzn_Lg~} zcASq$#iKl-iwC9(_B{E&8UkIi#Apm-bJ)|*-5hhUzQee#KB24~vM}NXvg>iaO}qK} zU_1h5Z*7kH>Gid*2f+O;i=*q#W-`Eq$6XYV=$d}~!+w$$0T^AconX!{Q~_rxr0OiW)*+|bZ5fGs8B8G-Q` zNd3C!px~mbZw^d3gpbDH5JeG$DZizf$Fk+df-ckZ`viBM;&Ga+D<9^X{8_n$AQ3a+ zPC933Twbw$+t&IYteLh;>wR|B7ON$G3hsQ)!XG zGU>4d_-<5^WHA{0;h}cxI!CkNS^MZDDz*x1>iI)ySO54G5dssKf>uJdXA~`d_%$zl1URywABKb{hKO%kIuV? zL(Z+ghr|V_N*Zzt;E<0o;(0ZgkssfZx2o*-G%B<=*#()&$}D-km4t2K6{ur7@7BgY zemdf`g{v6`s5eY)AVb_mi42;)8fWv0l?)Cvq_ldIs$oK`T zeeQcoz=?K;>QmMAk;-@xM=C|Y#3XMiYH7mGG?5ED#&&>o3uY_%j(xy_OUF=y#n6w` z2dZOX;8S-P=iDlJ5>0f8w`6fX%Zk}#u#ZAVSYJ-FG(r{;8kdJ7m*C_dR(RPzZ6HYU zf2exPu(+CFTR0&k5C|4Xa0u@1Zb1h3;O_1)Xz<|f?(XjHgS*Y3L-61Z-@NCZ`#sP7 zH$P@~*WT4qy=v9!sEKaA7575HB3Wa7pXZi}04;IW^aV9)UFvNOU6=H>1J}I@#pM;B zD6*{OKZ2zj#3>O{(B;hs+v=F39d#i@0>O-EbbG#^2)CUnn<~!njrzV1rVk9T68Q~x zh)*W4=N?8Y|2>3t-gQTG*8ODXeK|%|TBYW@h4`?w^Yce;5#r#`&~}_8(KaX@=Z>Le zqd$$?vNmMA)igGhZLzKET&IYFnT4Ib7bkf>qq2vIve2=BLjetY)!}lQrH*hr8#8|H zV&pdP`7!&2%JET$RESt0T-??K*bak$9_|)}><>VKd?n}=8h;O_Og&14-lQcQnmN^5 zO%Dl@JJ#`!eb>ig+C6XV7I|7F3;3P2&A)Q^G6JExkd*-LW(Xn1RL{ z>vaE~Ho?0MXD38{0lsEtQBl!sDEyT)Eru#MGmtw1yyoU+8ze~q zGNdER$L|jViIJka*_fUC#5TC2^xnPRKKs-%a}AK)K?XCjxP350$n1U!U!!n)(^otH zYQ2jNc5pteP1o<-;rXf1io073369df-L=vADj`upS>ldO%Ij0-_C?&-l``F`ru2nx zb7{0}FYRtDNc6saeL#nN6zB4T=+R{tm2$0-8zM;dQ@63`(!OLg!8R>Dc1pE9cv;t- zFs1)6)beDd?jE+baDUKmbE5c)$p`KX<$pixFD#6V(dw`bH)@rMb600PBFxm*h;nn% zFx|hlrp3W#RzkcZk6V5VCj91)m{P}FJ z|Hg7RUyNMCM#d3eSjNufev;So{M_~2aS~Gy$nbi<|DhXO-W7(Z|4aFe0TQrXe?;4# z>yX7?&)JNwg!K8MvM~o$$&j<@taGd|CW7TJ!vNs>S8~c>_}&RM@-dvFBVz6ZB$YtU z4bGAZ$5G*@qJNPv&!S1h5N#T(Ano3twm>cm3Jc+}bOLVs0Y%`H9;=wFun3qMhs5tM z0%P_WdY*ta${gFv&EnCZBWhESWE-!&kat0Hg)z6_CtOIJjHZ?+qqoln`rqk#A-9Qf zsc&PKnYUd9WPxq#8Vc~r`X+nHW2i?X>k~~SR#t5iOd@IYhJcyt>D0}&-e6)=Od3mQ zmXczyn)X+R_2=xgp!&X<{nzkutJ?iu@lNjp9E~qZ5lWhxV`62>-uvC-#D33xMHe^6 zeDR+)Jddj~!&Fw(U}f~}k-bGSDSPjKjV3uA&K1Fsf^-g&Hxd(}uS=_K}3uV6Nrz za@sa5`D&KNU-DnM0XzQwA0Y0_P*?QEV+1&%*L$**W;8-xcp)JnU?O{XSZ>&yMnWLS z_zhMB$(Ly4Qys=5Why(Kr>7K;np5XD&kYEvsm*t!_56_=b~^p_DqE0KgPi2>eU86Q zd#rM=PA6XNefp2<-8q3+yKm((>VJ2Kqjt-kc}rR+{azoa{>0784E@0%3&Qpnl?s8znr~%iSIu%6C2KRYq#RS;uTtx%T$7hFOj(uhF9$l+ z{FXl!y4 z#biN3uxgJ^{)_i~u^j*E=hL^iAkuJQVQmbJE>DivhiN~f)3v5t^OuK%90V4-@Tecb zMux=UJ9`jAE4vY+oOKz0@~T2Z95#3xyK)I8YN%G09gROul`6Cx%V&btG8bl1l>(F;aproR+ z%IfM*;<)4mjcv{cx67)hch=$4u$s_cvOd04^KQ81KHj>xwcV7&z!di%4r`${(nm|C zdLl~k@$TYsWX%L)y^(byAZaD%EggRV-}I=|>0U7X2A2@ru*BR2Qek2qCYAgiqv@Wn z+xFLwjuR)4ppI$}yd=TJA1(VpuMHo9a62BmGb?50xyOrNGE&iraxe09dUbe!xM z8d!qNPJvbCUc7xAPE!j1yGRy1M(&naW6R3`n$W*U&uRXvFXlUSb?HwS#E7yX!|E26mBPB3 zq?H74pXO8-PJ@2em7yT1wDkA+2|oEOMyjhgfjVj{Q4yy04Xtc)_tNA`ni3Z*=_Y)- zZ?-5lSlQsCo7XPjetwJ5Nf0@y}0|jXhPiOes*eK5E(L&r6X&>op@SZQ>tdWGV}ZMSY_ixQ&E)VWd1z zpDi6mS=q_0V-k8&geT!lh4Da)h(bjI?&6@nS)%sfRxx#xyXLC{v)ge zDL1yVKJ}=)SnQe!J(fgRBt*~9YZc;iM`*sFAoRj+zF|BpMKzEZsV*+q)}C3mOM9h& zxXdE{?zl+aOPkGVLd6gk#HHYschU1ebQH?W5~Cs+6Fj| z@HkaH#)iy>BXM;&0A7)UgEWICy1InaxZ(Az%qU6nvwH3rxeNr-M52*=f`Zu{ymJp? zXaevsot&!d*0w02aHh8}$l3}Run>dJ(q>rofMz}Q$U9r2@{VGt6FGG}Gjg#w@~an1 zpm(;zr4gsjsVpNcskg3xvTK3W5*hFuyoRVIxtj;h0&3hi?qjx)N0*t0+GaNChfsr+pN| z^h(t#gLp!uPT9_kd!6ZTN@|(UKjiw_EpoB%ib@NrgNq4=*_oi2wsy&0P$(_r`^-&!A*P{$GeJS0jqh3&%oyDOyfS0d^}AX8 z#s5V3-{C`o<+DqjVs5gbtY_t@K!4#mvu~ z>pQ*p@tkD6Po>rtqDGz=ub!cgkau1r0E(2CmzOr)1aimtewxpNDhdKaMGoOJZUZP> zr6xKwZfoGRfb>j)h5duPXh7JFxVQy9gNTah$MkaR8D;&@rD2Ii7QR2X&FX?5l~eF= z@cUwi(zsY#eup)EleIZDIQk3kY=&;JeT0PUj-~+w))BjnJ@c1hy*@vC13xkI=I}UE zwvhH57H6pPR%7u}9r6j-p+ug}Z9z$z=@8l}C5Drkn_MJp55+ZjD!8~~O!^DrlOBpH zX+Z?otcuS+eL{Nk*eq*Vh(jpoAO3VFCMSQN>it!vH59c!p5Do?(avl(@w_{k>hq4Ucxj2bxiNr6CdhD*9V29Tm>wL5F(I_E9kB*p z8je?O%x!8*6JN6uW{Y5h=x7H@Kvf{Ul~0GI#@p7`5lDtZ0e@HS5&DyH5!XV3`Z*Qv zvKcN-U|~6vN2br*U&U%$r?ajpp)8h5 zguHh`1<{|A_OnHek++B*e)EPT#E{@ZUoPwqH0hmx)g3VC;|(cT)I5zalxS3+)!9sl zyya8snt>t<9eAaj@B};?GsCPK)I4=X-b+tqi66GHQFpjtn9=)3M1@j0%Q^1C_D9w| z74f`C`@!A{Tof18{r&vBd^pr?42MYEk0q&bwFWL0)_E^BMr$zah0r0!LhC4x53?w7!>xh12!*7W;!QnMU#| zBu!L+?PYzxt|i${PA-Jtk?8teM7;6wtx;0Y>eGGS)O5_pz}khs{OKBq>qwM!N#>@^ zVkN4nEOMd8_hBcg?_?C1qUI>^GgE*09dfnUt`FmKX(p;T{D^M^>`-F=)TIW>l3gwL zye7RdQM2a2B*56Q&wt9u;cWz((arr_I1CY9TRqa;|e| z|C7IXn)dh38q@3I!S@Q#SxfpIl~Wg`nYy#IS={f)z5hium)JhO7m(z8xd&*i7tk@< za*0*Sz>?8c!F0Mi7k};UvN>;mH zFCOUq$+kv(Iq`b4tS=&>>PbsMLE$9hR4(I&IoN97b+eRRZvD~(iw+DPF86I>Px z!Z{rm{0aH&wX7)Wk>*x>NA>wp1uT@2C&CDir?lvxbzl}&L6kAtahZv^y}#H6jw>1M zP~sUeZXPHlB!!)1@x^wya}lI19PsiJL`Pa$8`GG|b~0~&m0tZGa&VpYuiFi^(tF|Q zvd(A-iP1Ho$>UD+4Xu#0#KLl~g<*X?`3PCp{So0Qt67M;6a;fRNX+DS^+7!Kj~2V^$meUP+* zr=>9q$el>eXiPGoElYq!|#dwC|-E9QtsC{wFl&K41uN|-sy*_rMU zXD1JTc}g`*p+t!v$4!uVytOWTy=1c?AVlZ1f4@;6=`g@%>*F$J5zYR|E>5X*a!Pb= zjiXdnK7dB0Dx<+%VKI1aJbu}~t4rXl^Gg1~!PMs1|Ms^&aQ_>DfM?>!G}T=V%m^ZR z`Sz@)e=zuOgDvp(c0D!E=xu^2Ei& z#M<^|i~Ldj@_axrXZCMy5}FkLl=Ys@7RdDx)Gtn^M0Ryex*UWj_kQ4UawdgBsA<|_ z@-%^z`ECxHsLj9cf{jP|*xX!*Rgb_`uq7?lXNUVFt;ln$KErT~9-5@NRH->{3Q2DU zNXf~5rRwTbj{T;b;GR61#M7Plm~XE0og})@c1=3BZT{8wz&x`#$rFi5N85=ArV;d? zpc0Lo44p+8HFr$=8m-45f8KXbj;T%|h{t=qGkL@dwMp$ZEyac29}g62D_+m6ufBKO z!JU|Y3};0Q#mD|c;VkLeyrt}f9BV(ohQk9g3V=fOuVhwjD>U8u-W`_T)Vso*<9bEy z8B^Kfv#e+BSZeQPMI#m+&I|mf--_7RQmKgaLT)?X&4HUchSZfi_dTqxu5Ke<2m9sK z^eV|mnZV6x!=zLKk1Fk(faZcq9E<&B_m8*RY#BZ_9j~uv{%i(@WGH9>*@ubXMd&cC z$>2-SR+>KRj_NsUu~HKdU&Z~Uzy6OL5$-!_(W!d4+jAun-6c0`F>v|uUZ1$5u zbNtI}K2bn0A7SBl>eV`9X&wr16XbCT>H+;dw`#51 zTKx*O&QU@Bd5-#OLtS==?29S6RX#YNQ`NVf0wt&qZ5_HTb3je#V`NCXVO5g;Zo(Dp zJR7j0m?AQ(@V2)n3OzlIQvQyVkovuC4htK5ATW54JWN#|NpovDgA1)smbKbcL<%uN zE`!sb97objsm5uufYF%s4r%IZ#F<3d`x}L77q~lpGxpYWGCYhJ{@Q12O zck-@}AysKx7>NQkZ;)N!8xq3f#R#!8nYbt5n8`s#!AI%=Ph8RKdvwyDbV2@3v~cP&Gxasm;QU+OXVte~s$;X9}aPwY9Z`oF-C4Q0XHB zYZUAG=?E+Cu3JE$tvxM)u9o`#q$$_>akrtyiIXbMXh4`6nzt|JlN2+a8LX zGkJ=b%Wg6&Ba0+}gG)1Q`1Td&165V9Sdfu_`c$?+1Ol;lE#z}1uPf5tog65Ge(uRw z=f#cMA8Bt#e2(*DAxTUaww{MS+eP-58QugLrqb{!$mk&IkYxr8o;na51VRvT@G=Uh zeXt2$u;b%IAW5Mf?py8UB&gKZ@=u$G4{E9WT6}@ZqtLvw>CPS6YT7&ZUp6%zLXT2i zw>5q*5hZKn-w1-g7ZLNu!rbz^aTugF-4PIOZ>%TwUK9wJXqYxLbNK%3E0 z37mD`{E+a5i*Sf+HlA97d4<+uxUH7pW;3$dsQOdzmRzQK&ONaPoL{QM|Dj$xH?Ud4 z;#~Vy7q`)>J|-v#zKwzh_lQBaJyAOzwwq`lnxw6VGJ}nS9?Nx7kq@;Ey=i!}Ncixq z>Q|Oxt#pUk&1|!ERipj`*CuZ2kUo&n!g4~2Y3^FiqP%r@-0RfRVdIr5!dxht($-q9wHk0tGDjmLR!rLi zc>RWvho#QY|pdH=Lm$B_4W)sC_BEd-i}4{!!&|D_KCrC6LzZ_jo>XX&Gan zIY?#vtR1G{v3>=1rNy_Ka&xFZ))rU_))IL8kMe)J^j#KrJ5QP1Bu{*-sNC5?DO^t+ z_H#=vM`o&8$T3V@Izpopp3zX(c>I`+aXg(*0XY7JiplqlP`1+60295mvbw397)kJI zoUZ0KyKrOC)rRx*#rYmXezcK+NildqU2|j_=s}CF18u}xtt-k=UR01Es?451S=I1qh6v>kX3hi-CfS) z7Z#H*v-!~BW^j=h?|S}(G)4}wsJ|`+cW#m&W}ko ziExQjcc3d7YWDO1JjS%ncCf9LoniN;Wvi(hV&s=^cciC^4(RzCVd}~oF`qT@+)|Lt7+4g(<8oL3#S@qo`9|;|F!pkUGP%C~^Q~v@{*OSV zdh!whJJxQm+f{QO%w<*bpP0_rSQOPES@>5&*yYZ_Z)nHmmj)(Kcon+Ewl&KjAeC8i zL1jB`A1QfxKbn}6`sYZLbr!*XxoytzN~t+6z&3eQLJ=LyzbJgJ0B>0U92Gz(1v!{| za=ih0HqtR;b@lL4m4buI7`n5Mg%z|=<@cBULy3($xh>`{Wrb7tfG|Mytmn-)3U3?5 zn070qT(wyjwhJeH*%B&f%OjYSb3LKZchx4qGX#$?ey#CRL7g;tH>=T-Q zJPTe5IEw$-+~gLOFZW4Dfee%p&;b9~+Pfqz08~JT3?IZ}Z)tQ&dbms@`G6E!UT*1v z#^CvPhJ-O}LNua$B3DA~>UhH*-1j17I3_N&!}-hjab}ABk2CYPLfjJ{@3{L3-c)9} z7!Db}@>2>jvJY4pSvXuk55<0TUMenTX(I9@BbzhOrFTt8mtq!OCwa)Q8NJ2?5%1Bo($spJI*AGPX9dGDjPsUMwS56Ho~km&fg; zre^`VcRpWEWLkOw0Zh|@{&_Sq%@}?CzQz4Z6rzhWe}BG(fE1&mi`(H+HBjkKYVzNe z>RvL^*9^2JD#u0soc(5WGerRkZ^b zD@jS%e#ulCsXU(Ue4y>G&KXf_MtV;|TSoAn4O(t7mg>=eM7+&w2N&5ypHCPJ_IWyO zX$z7g2^)(JDzuf(7qv@OW;nI2DrMwF!KZow=&>&}m6}UfhZNs3H>vXr^$QQH@?FV; z=*57x$N`A=2%Q&DQNOc!mTRPMa!6+`^~!+-b?Sp;CbLhvEOw6 zb_@Q{U4A@%r!V^T2RdP-WxnzJmrus+QFJTO_y&BAl=755lxZgMX=8;TlXyQpsHxs# z;dJL1q)gss1O=b#%P^LT9LMA}xI_5IXYi|?<6u&3_0*!kOZCkI!DfZm^s4ze1bkQ7 z<=N2hod6o{@#tH4GJPUaGm0-0@oRZ6x zwHA6oI`3(D+WmamRq7uZ9mc$t=5(9mHP+QH3?wx3j{Ao2n~4+UZPUlMz_0tvx49X= z*!}16c=|q*t#<+&lKQb3b*T3gh?xz3C-GOeQo|9)3Y>2Be;jUj&O^MG=!ix2kA8Wa zXy!5l=!qDbG}KO}vJ6Nst8$VxG0$<57&u-dl=1sXkIUPzfI8gUEoaXeNrV}$2lx)s z))4L<0svc&Xqk(=7SgKA32jfkj<_pq*=e9s?AMyN#~MxrUf`@!Uc$~r0r5-eRxKt6 zudS6w!mUehmewBu&PoCGkXp|4S8h^QvfLLG51NUXrf6ZqzLohaejlN;uZakG(o9<{({FL^G6m z%59|dVkVzM8Fky&8L^8cD7*FI0Dli%VJC>#3@hp3s-AdKOON6}{`9(j?5G(|EyJGc zro)|(Hp#z>@0YtUWFe*(EJn4rcgW^+G(PosibgrpGU`7vpTK#(6))E%?aM;<96o~w9z5T$)ZwQzv&Ki>MLLObtN9J*Zk|F zHSm=`d0pSlI;vC)>g0ZUyhr)uaXO~W)=GaUDxsCz1vdQ$D#6UTP>-z;C9Y1FX*G;v5l)_4&M`M{Z3c&`tJ7 zn_`D(Qufbg+kA%)u1qe->ur{8yi-@+ct1Fz{%w@zkZ^X8o-s7;mVKv(rt=-<8>}6h z-M*f;mvimV=A5_ZgC)Jx=J#mb8}|GY)9FF<6vo4zGg^<7(OLX7#BVM3QlS@^`@Aa1 z-kDXxnh7d@xVBQ>TNYh1dOds3|P{e3>@wJuJObx`3ZA^m3?xlBIlpmjTn=J>>B9 z?t*yT3^5L4@b|{3 zavHxp)9F8iH-#-DY%X`-Hc0@h&OIzc8h=POhhg7lyuR|ijr>FRc{$^`gy!SB;L!8E4Sz z%Bi%QTTIE1HUyh#8}R4O6mmR7 zv%QR?E7$9X3X4DqBri{6*L-KO3W6?e5QXl?bbcT}?84sfiHmh%FCi4H(Wv2jaUisQ zr|)qh#tQa$D#?D5E7 zBPU|vZgi5{t2ajw^>wZ{O1~*O%*sw>26S~SFJ8z(w}!~$kO@nOsU!$OIaApz)eX0} zJ4LXBc)V^a={4(r#;yq6wN1lxcy4i-q@KV&aAAjfHb{!x*UM;vij%Eb(}J9?B3?((g@t;2)HyWOcbEnE@LW=it2i>io7LYQ1?Z!nuMI!S8C6j5G!7GvDo5 z)vNbo(I8vd0i#Zva&$Jg=H~0A>+xRF1F}iqxgXsmBg^&?6H^zDQR+%-kEg7~dfo@g z=#^KHZnsYM!z@~qWo1*RIg$gn&zed2;#Mv~7N7o^4s@Na4gz9u-gxpa(}bAco~$N2 zzOC8>jmF=uPWvvgp0(~DPviZOL1DLDRby051c*Q2)>#?W;K^I?1y5?@Lr=SkNtv4- zws%eE%8OX-xsEY0#a7#p4j0q~u3(2Dy$b2K*%)8)fhd=|P@(5O-bSC7WBrz|=+UC6 z+uV&4a>Wb-I4#p2dhPg&-ssoahI*(`xNccj&5z#zch1D#3q;KBf5Xz4ezBby4a^8# z`QJ^9l*m;j+vKoLDND7i&eSE8?DehNB`M$w1*$VtEUjrJjNelEdFO-8dS2&qV9#Yp zZvJ?CIu~LpkfYW4dzw_SC*=1QN>?51XpGld{ENvFQ}G)!G?}Lw{7rYZB1DMWbZ2-~ zcn5&GOT=at=_>U!rr`UvLzE9ChBJZfvJiL-R(2cr3V~Jf?l{@aLv4#XU3v~SQDiR# zz5AuWLt3$elV6B!?7}KPv}$dLLBmt$K%--y-*bM~b1}Zec!B<-`O~Xu0r+(!#=CXO?9Ce>;HMUPd$}|1Yn65>dDf%v zsgP|n0QP;`kqI~wOseLR*I|=;k3oK!`=`w`I_)^V<817{*}nUsIH@^@*$i2hCDnaTJmg3qF^>}E2R_$--tPc5 z=n7ZyQ$qj(Ep=m3v5bVGsDJe^>b6pCaLF8u#%(X~y97_o#b@wC*Be92;$720jyr3Z zB>}I~PS6$SDczB6X{jcgaRrf{&zbFT_Ie=z^Ejy+yrS2ThhW!H^mxfP5|souP)JKl zXDTDG7V#o6;kZ`#6og95$M~Y0nvYo%{mZ9}#kg<|0phNZ8@b-*zHGQW;f2e3J~uaa zgk(UDnvX=(d>Z3(Vl3bAXoYS8E{-99)XCR5`2SAooYq@HZ*Lu3r13ACjLD==SSsgq z=b(|4Pn5osAMZT=fIR%=3hJ+w5{Tz^o_|Qk<={UwRF?OlygIOsI+-j z9+goJ;j{nq_WJDpIzaSx{OipW_bRQP^~u$7BAMf4x^yN(?^0e!+l^-rWJz~(qXYDO zaw>5qqLFVcDI&jG=K^=6CTZ;g`M7#_3gG-odM z>3i(n(zk8mR}oIzHIv1C?oyiF?yp_YDzCIXGH^veO{dDU5RJu}GVO$n+@QuI#JHFY zB?!11;aq>6*=RLOKmWSF_aGUag4fiRj&qdZ-8rFT_&WXe9HWW{sN+-;N>j{kx0uGS znOGdgWt76>@o=~~^?fZ7LI&|B`9AEaTvo`8O!+)jnVd2|i%}M*ayx{6uhCP^ELnxheqGEeGbyrq%+^lEkKJFV+6ML!oE9E&)cvIB zqiH(Dq~sfp@La&?WrhVbxmgb*YP)ux}#?kz2o`k8_58m$F%hy{SEjBao$*)9wDr_=q7&QzA zrW8{!t(MF{+!5^vUQsQ~20u2jxIZ>~G)3K4Ui< z7hdgCdXI%6Ls|^7U5Hp!FBt(bDcW~;gt8AK`VZzn2*g)iQNUQ`^>2^wOL)fXyuRO0 z%19hTp|^t=A5~xT`Z|pCj|n-~%fwZVf{r_bc4EsYf9(lJ#!)1Kyf$xH+#}61W))>$ z7fP%fBM$gpN@IMl_nF2BbM6ykanI^%ycg}bl^beaCQ5`fAw_xKQ#x!1AfNLm;>rfJ zkHcR?tma`{cI{$?9J>+KgRnR?Z&dXcZ>JRZ)N_%A`Lqp(qO8{@lFjj zCi{CGFNu3|IwvGV;^Dend~2&Up#V!`JV=D6aF!ngQ-U8QRD7y9 zXNR95f{YB4l%E3P-k^{k-2s}&+DgBN1yhOe1Z`VVev}%=P*1m0+M3tpn#iS+@w!HU zbn6Fv^glnD6kfKx0+0xuaJXJx2K>Aw&$78^eX~7n6DYSsBn%(UjDP|E0gpPy))_!TVy5&@^x{2C#T`1oo>YslF~sYMy#p>~zs{PqVqZ*cLX(-2 zqEqHVLgxGvGvZ54G6CGX$+1C%mfV{h%wS*2W**FdKEB&~+3EpDl*4Q?)WMC0Pl-S; zE^Rq&x40|wF4z9cYWG>I&oNgGR9!b{t;#9Tfm8(?sIKb5LTGZr@*cqW>dc@#j0PCd zOM=O`(5;ZvkkrCpZS5%hyUiSh8W<{Us3cj&?YEXHPupe9p2x7Cab)!EAli$!T{!iw zjBTHCHAot4XNC&htdn!*Dmmg|#Gn@Pk(RevF9)q}sTnOC7Fz5}p|CiAHnmX*1U7uq zK$Zsoh)qdh3Z9fbnyydJivc%gSE}1o-U00$ktA$=p`F*3)u8oBCvu|htnUtvACiup zqtg}h+-P03I|aSpeEQ=e2Js9STsRGFVNLzM*7ZFLVrOX26ragRPFR%oHHrGyY{pe_@ef5LY4%QXxjLzNv%}maDm#-OUgJaMM~ZXwADS`` zJoXgQ=bqSE$(P7qt~k|JWW7Vovyg&-ISduC&`CIqOMwrRksV%qo zvlq_-@@mg;Gwyi%oEN~3q9^x(VzG^@;5rMKBcNZV+%nO|>s7r$KA{Lb{mS^OBx|i(E?n*tD~0$w zcn##r&lL9P)D}y_>Y&TwCX<%A!rU~a4CA}o5SR(32XwM!B1!F=vcJ*{!9(IlD+izG zS`IST>cq5kr0))I@dTLK5Np3{VE*THg+7#|PF??1a$+bUS;iggjA;t4E>@Sd-E*>B z)$#eD)4zYzIJepHK$e^6rNjM zT}fOn@q*9P$+f~sQOcYVk|P=z6H_K0R7wid$~=k+5r4n4_UGtZQ@n)p=NBQ=IV4fJ z%>SiiQvmQ4>4fDkhCZs;j@}7~Vja-#3T82JUHqd2M8MpYm}aFjx!!zJ%wkIcvx8Ct zANKk)gXBNjeqUE5et$nVro|w>*0AAs$oH#?InU?;25n4AwXv|Us~iaa(rDv3+_*5F zYiv!*P`Sw@5dHl>CVYB-{70=UJu+m*W^PaljNLgvg9Ei4N1)}16b2UY-f=|6Ke3G~ zWGD82XV}osHHX5(ReoLyftjfr0PD zxjHM8_vLExm!-2YjF^VQfS9i(^@Sb5E+S1>XTP0*OTpnt#`PCIen<6Oo?5Et2LGqy z-ts_>sSZQtSz-OonSVgWX~eCu;=U)wgM6#2az4Uk2M(8=A!KN1K4nIT!Fbns+;5nd z!i9e$?%}d5$=Kn%yFx`L>`Eey4G<<$Zjpwk`SVvh;-1CkG^5|yDNo9J6|km!+8WYP9;5bBRB!^x>Rvv(+rQ9h z4_$Rv%P~G#PpRoz7%pn=m8J25ue4R6s66qP)j-Aur7P+qGEsd)Ng4M?A+gGS&9-xb zGXRrTaGfUHxe>6+wuS>VLo8lJf*s<}P-^~v{jR-(X` zl^-I=pQRGO>-cTIeYu?3^>dTLl@$@rM%fO08b({=fe&t>m`u zyz4TS24B;9R%wg~qH$o2cNTDstdYf_TPSN#%W0=w#%PI*ll|O7TU@Kh${f}RiYPDC+v0|`Q=K}+)oCSJrzSSz6>ohkoizsh%fL+vK_garpzf<}~RXC?=m%fbyiXLHWiT-NL%L7GFO zhES+5FB8`Y@KuQBU;^}{63XbKH}sE(iK(WS`9`%EE%1O@7Gej#@=j+Bof{Uxna?FJ zw)&~Qm9c}?WiSJ!!Ae<{rzup3jc4<}){^xN^o9*KDF>7T8=mseNv$f5Ny`uyvX)KKS z9LV~d(1ygA=v#qHq#sK5Hrf&-#vydyQpn$sCHiZa%Y90FS-l6Y4PVu(&<1K0n)F?x zmC#zxwX4`*@}{y+T2mF zb#6|#WaFy9uc6_RcIai22uO^$yj!zXK}50r8|W)bNqx{1B-rf_VR1{PQQ;PxcEpnx&i8cbdDM)@1o_RH**_ zJL+@A?!-J+L}2N*uy@YWu<-7`wSY9%yngx{yET;u)C&M}#ZQ&>aC*2biOo_FUwy-_ z--rRY@;!z44;n=3EBSHRBknoU8OuFto@cO^<@795Ld1VfDJsLq2mEF|F9a1vlQF;z z33y7)bK35$+@4xa&od>2zH^@XFKWi}FZ_`U;-g_J+qFRVub|o>59PG8_{T3mqKODQ zmvqIG#*)J)0;w!HUFj_`{<8Y!6KHe{@9A~N-txb&@*pxVgLs^43K7Xazc&Q~(&Y$c zwBXa-PpAoHOJ`m=D(16G^eGYE|Ib-A3Co|H1lAXzq0HD4-QTWdljLc++V;P`aQ|zk z4b~U?e|_0Xxbj1!fEbvW~w9eKj0`- z&XT(-)Y(0>YSXVP9*4fbMGPW1K2{BQpSz%?n10=5gBlLm=qg`gjv?5q|ndOf3}E z30BZBF`h(cy7TiU_Qupx)^}U)4$Rb%!jNEn4$NU{nUNR}{|y7xx`@SfaxL>m6ndq3tAeh zAzruN2?CvmubiwPdX|et75(u);8W)d)|GtQLi=i^~%vi z0$L1!fx;LhCc(s=y86h;aBJD=eW*<9OC zbUHOY3H>vGqWt|9C;l6jhe$JqjjA%lzeje1pll&OFsl_#qjN5jy|FSgZ~3|J%cEvk zJM7j`40rUyg|Y+!ehcO(9xB4e8+Z4(>~EIvsS|7?F=L2q zEwBJ19zzkj*?W?ll%&RHfy2>kl{vB2Vy|zTL&R$Gr_p*@{_^Sy-(vD*8RoF$CcKyv zqFRaU)$=$>)8hm`W$32VbH3Z^?MLJw9yQp&j)o2FL|j3iM;DF)H-d3mTH5l{`7Y0! zco<+Lz20maMJ%f~o&@gcIx4TI+>6@WIQIfVp6(kxZdxzu&#Smh5As`zOh7C5E;?SG zAK^fTagMhp@~{C~NEVv_!VmG-84SaVHeo)dluK7#FG2W%^8;39nDAeHcKxT?2xF#^ z=xBuYct6B1_cNiUuh@cAgimO(-@}{ygr8O}aj%{>dCi+;@3;LPJ+N)HF#e#zg_(nc z42pQ;`wDsf?YN!H!wP7#e26)w&lq*vN4tHV5`j<8UY4s>9bfLZLQN(zoK5~V9tuL_ zGVVUSheq?5Fv5(}5&oeB!vEG%aOS4>dC_XK-L>hcLm@}-R$yC8sRTwz8&77?hRyyXB052 zQKI7qyI69`c%pMUi|?1%X%rhSr!~PyZ0W^P_wAZ>m9eIX2!CkUo`B!0w^D~Yv(TVF z@mnJO^9Ykv29W^!Eg#NkLpL(ZrncF1vLoclaLLy40}5HK*PY#yj(9&|1Rt;h8&FWGmUD%fr8TKR6G4T#JA-@g=`fx9}Q@`mHSbhs)bX1Grz zGuU==2_eC(rskCOnxPV;$k6i^k?_4Idj-pC-@*IK)pVI1M7F71V!wx{6g6UDyUZkH zF$&5(<#*WneX`l{E16N(N-hymUJ7=pL`(d&>@D^-NNbu+d2h$c+}Wq#1Eh#No=!h@DRpIWqfoWKL0I{?%Bz@SNSO zDwpf7vHwve=y(AEx-wArx+OBi1wmKHbrm+@*mnJ4AOy6E#lG6re9KVG4 z^MMG4t7qA6`cr1H^H}T`80C)?LjlGmb}*86)6Y|8o5E?GA_1@4QPzZ#hu0^$Y_p_8g3;(R)_L>M1r+i zJvRnj(t@5B;+tlWbMRk`dMu~Tm*%ituCfqVfttO(T9P)C%Z;ypm)ABkAf-o)ZagFuYi2bzP~cw7q#`J-z_1Vp6LvlNerNe=fp6mn zmEAs!xXGtxgdnQ54RoqZi$B6jI(j5ZQ z(jnapNDG2=H`3CQ(mfzu(%m2fgEUAfh~CY6@BjUD`2deTv(KD;V(+!qFP1pdSQOQE z!7FS&b)74MjhWM~yDvEWoqul+Wxti_oBb>NDbm}Q!Ta~_ed6@bEXOZ(7?wldamwHA zP2|=u>BLw{V@Qf$nvrJl8Epmu4yx082`+C9Ol~>S*9!Qmj42! z?H)66I&w^56t>QQIQA9v{}@$ad_R}MXLTUJ&NmX2`bTlA3c6r?H)dA6dh9L05kgt9 zp@WFq0RV}>p>N(xyjv%mQQs3ei;%w37}Nys!koH+zA;RTY*Fto&jWP{JNW@eVC=hLAG8#zpzTnz)N;-ZB76lRui#RjOf5_uz@K4dl*>s`~n#8ao|c z2H*cY@t9N@5x-Hc@jrDWMpIhgp<&H^gsI?@KoRW}yVL=4GNg+xz#y3UMBLjlR!LOd z58HkjrUBtMYp{ufoexrZ#cOB!Cg+;8&19~G^{bWyvWrjF|-=_Yc{bF{>(m_HWTsm}SY^1r*C3mw5ar zd*&~x|8Qibz4K^@u8m-#^L?}8w@TPYAI=MPAL9it1l+2Cte_sT`0sUAmhq!%N{GSZ zn$PF3i!NPG>%LgBo%YE9>2_5Z`=NAqmGbwIz5w78u@FA$PkSJ?rdi@RtiR4vL_g5C ziudZG{q)EB=P_PfHy+2Ft#H8f`NtZw7mh)$#;M=j^)iqpDWD%jKy>by` zLC)B9%e~D)J%%I2^F(YE#A0U0Oozhd1tYyK(dhUjRa$CjN@dU8ca)4Q3lKu*cX;UI z{KVziwm-IdLXKO9FGpCyqV1UoLb&OZijHIX`0?bOCmP|ZK_)UI;wVaxrL(g}tMBY# zF;dxG_g0tQU7U{Ze=-_eeEhtdHKJX`MC($s?R#@ESmX<@tWoN+Xf!wcVWDDG?`2U@ zSzYI@Q(2~yG&uLE7_lPF8QjcWZip%9q~4Fr`1$N{vhYxjh{sbR@A|LwR`ub9as|7B z7-g(^KD{=EmWstYxX3yI{h~mQJiq?PPmd1bB&hDxVH#k7z6SmL7KT`nI>}7Urrv0k z7VP|+b(!(*ztg5P)Ku4Tw|o(*9y4u<{194P#PmYri<++aJY$M2EX zv4iE7Au{9Nyo{(H5D*y2=D|545KdX8A3|r2m`3q+d0(t(s ze<|XUA-%cklF&HHMV;!fK~nDWjjCZM5~@yhyFB@F=TOy$SCT^%$UeLqNkva~i?j+u-%Y9d+GHuKEi2AI7jvaiz^qa2(%2IvL`Lf;T z-Yr=Jeox|Zm|ycLM29kNCfw{_3$;my!tI8b@(c3tFK?Mq6gO6xj1XPy#}U|Rj*_>S zBSP7}B|ktP4+Gda>#IEKTy^;>)(k^xn+Z-YcXAPti=?UhQjJU@_8T|i);pK#?3@v~ zzSd8`bjbH|TCw`G6U*X3TMwO^+sK>cU#mkUO}`0l@^~~G>PG#2F-IabM-kMtS&Jd% zs?U;^8FP>0v1XvtNK*p`5LO_3gl2~ILB<+TZFskg{{&l!w(Z<9|B+{3fn5IU#<2c_ z7x>hAFdPD3X?SPQD0(D&O3rVIfm(}{!bbF6dI_GpL#zJbBiqgLx2|*J@4pFmdDyv! z4t0(CW3=m@vDI8oZNq4~HC_>1#NFg2`=dp^-cbxUU7G;v{0d^=TruvCJbCPeVfDf<2(8jLd4X!|F zRFde&b?0YCPPtJ3bCo;<;5sg&5sBHQZU;+s1c!veFDGc~51U?FkG#LvdO?miKY?gy z_4^DL4>Z4jA@T;6+Oh7Q9eaytDQ+#c6=NyRGyUo0PS|$l6zxHKvaZskbVE zDerB0_Pfo{h;`3J6XmQfslg9s{YOCS@IB%Q?oQwu6X95PhK!DO%VwazIqIv?xG8wv>+a^$s|bBIYsCZ=j1;Cq6J>7u)yj_oS3K5smKrZysomqL zIyUNZS9c?ox2D&MWBSuKeaH0a7dy1x5p+u@oN0#!<-|q8tu#5J>MmO?ycA#MLgDF=n5C^BqDYy!I2$EF_$Uf? zUPlWEB~b{sX%55|?ds+RTtE;OrhaEZIeYxekl@ofOwV67M(KO4Y(gAQ7UIIr~kC$CVtP-tta$8~y6Vl|C9cZufyQG*E9&($vC5&m zGY0LVRCb5V=H~O5sHfjr=a2!;@uLag^0Yu>0~NzU*i-y4(Z!V~=%{L)I}zScNUV3WVUeHk%f!#`D0N$h?4%=h=9tKC5B;xXH03 z5@ZkO`G$|;+X7a}28jkq4yO1AgSZO*_+-5;Xs_PVuFO$%V+DYW0=oZ~&!`h^2j!9tNpQWhR&6G@3z6 z8umYB(1{qLq~KT_{#YtR1QV^|8&sJ{eeyBZc%S(b{`o~V6&aJWe0ILE>|jet1|8{g zDCA6vNfYT238Y!z{I_no|0sX#ZiYBX+dD=XsbEeR?M%#; zx7x6&0*doPH(IJ2LRUAa=1`5JIh8lqboy!kpOtn|ev-nCRrK2Kg=S{TkXY4@eo`_l z_z@!RMa0x2aB4wJ-3dfBrp)qE1Q3ki3zlPNV$4tEIY(2ZY|m+tL&tcqTIJ$>wf*qm z@2PVoDZgUFItg7j9BVokNV(3Nt)0~fAn3?~r%Oa|L_Z=wWFHS*xh}elz)<9!8X@ympw6|`CSWQvL>JiS1t4n$LllMNCm_xYL3 zZ>mfXNrWO?O-e>)|1m#Um}ZwQ8LIFbU;fdrV7Vc*)3`x91*~H01{pH$?G!jNj<}h0t zcPwe4?|*$%caLX;70&)MNV$k=&&f?Q1ac&J?$~_DjSba=YOv6c& z!w^A#H{Z^x73k6RO~kQtsh<95t?so)i0%wt z%PQ0@Kyz$OHD4lxg-{3%$}e?^0`G3Z7N9~5B-tL6H7(FVVasm^_D2L?$w3Hkhd8iyjE<%^0h zs*t0bTCa%IK{a-_RA;#?RLaGMLeGFS%OWHcv57sEVDY9mOUN}(*Y<8V6r&+i@_koR zOGHWi4Qfa2O1~yZB`r#1tHn=-`CVZXBUT=OGP@G6_>W&MXvx4S;z2ffiff&B>VpA4*uIL<{ZtEnW5v`s;9}B<9KZo^duL36i2&01hX{1l6ZE z2mx%KE#cWhc`PdLtN_QA4-ELYC_d1X&`2EieF=-LK;_!NSbR)e-R27;CZg<*a><-I zm1mxsqqNAiRsjTUL?qE-7wBcuA?VAgfffTw3fA?o1B?R?YHs~RaF2}%y00OqtmU(y zgbkkQS^f`k0@&2HV#TgCe>BgYDVhX+<7x>-e5YM}u50!cxHXx4i#WKGh@G_Tfh}8K zpw7oSZagLMx&wY5jRzNHdJ;cvidR%-2)Zv8Ew+}D;OS%^bV~Yzi2_59H?WR-*4jLr z?F@}&4-1=Z474*`inhxTTSV$x1s*rprUpBXi(i@qbFiPyY9C4m9qAT3GrcVj$^tETgGDwsSsn0P<1OU zxo`JliuhgHrJlujn$LQP4%v zCvkr-JKY2rRa|p1B+~N_!=D4-ve;a)(`xY{%5Az(zTUhC#VF~i$-i@*&kl4V)DOp6 z{9>|@I$dofbV_+uTcXeFIyn9ef}k0yQlXv5-cvj88|rFsTIQQvT|g%Z&L`*|Q-F}x zWQ4&U_dRx?zND!ppApK&&v|*sz~D9rg z$K*aa?(&Te^P_xj+akI$s;F9wUm4cI(Vo?GUK<_}nhLlN`x*2SxRDDte{1!91K(906O6YLyGg8F zj)Z~Y*mXl0Gp=&4mP}D_ddMGS%~COVxexCsO;wGnFws*}m_DE+nr^b+`jSFwFRVP? zf>*>odf=(s+{>a6q=C5T=;*@P0&G8-bZ*7x>gdmzPDM{z84s7vu-g;)KX?5`WPk7# zJh0ZWWcO`|RvHabVN`dh6|VjZ7R}XSvi|tNx9`bVTbpW->F{3<;t1fv6+G1oE5Mql zOVNVo7+$O^>U|PxrIo(Y7sqvBLw6LbKc@1RF6fpT@2v_J2LQ$7=+p!Gh4(xr2XN<Q9D%eX^ZW#`{B5Bk!DIm&8c% z3%&i-ua9z9_(TJpoSDLa&z;%9>swQTNM;mbgtUhu8wH0p)7j02KR2Ica6#gR=R?Iw zT8NM4rMY6p9ldOLzrumd<2REq3N&Tx+JH(O2<2bR&+55OlnT)qiNQ)>-xo!B^ypD~ za7rSojj|wrZ*4D2BQkgAWwIKNtT+bqKYU@Yqm22rUKm_1%6tPU5Ezdw!PY1jc20jD zt~6Dyy}K9}>_}PAyCHLQ7AHr0jD^LOVr8P;#^aRD%Dc|vLjAcgkBupV;^)n?IS;8j zLJYhM9VWs)7zhK{%X&amdT@Dr(N$b52ciyEe%lFRuj+@rnII@Qr8*Wn#DXyPZh*`z z6>PzS70|w;m(SLyY^53_g)0W)z)_F`=gKtoZsWC&Y}QC)XU$YeEC*wgDEMt4`)B|= zYGn-ir<$>&v_{O>lcYZK9?h+H;1u~nd5sM~N~fCcd5Y7H0xnp6YVVcl_4V{@Iz88O zYWCPrpt3>wXKxV&!0OJ2k4bU+WU!Ur|gb$82u+}`CCiwU!AbCSGPp}w$Ts149QrAqsf z+ydFk4=JOnX{2Q--*@mMFZ9&B|wk%4;l#;-NGjj=dQ&g&5%&!1qfK$NHz8Z=Nu;cQEe_ z;~UH3V#v;8l!1YPdF-5<(6j!S@Hio-Qki+v64}vDr=(nlR?lhdbhg#cv0T0(K~YYBC)M%m-8rFmm*gB2 z+gmXbFD6E(e*a-4pRWnok__piT!F2`I|>Z%nY6!EUKO+vbN~Dmh#FJ8j#o;=Uw^%% zMRwpbzs(+Dc4M2u8L^=o~2?OZ}iV2TqOgrx6V4r-H# zCy|>@UzZ7xfozs6tPNu261EFZ4)S_?Y1w>iV^j$m*G^`eeA*kMOsNrI>3g&8eVlL# zvXtsm;`=qaZkY&ZgDmr2O)^71WKIt0s->z@IM$z*cpRG)~Z zx!u{W0Dn$jZv9%iD|pU(JUEL76J6pQ3+gA6=U`n?{<|h24bmMwM-^2;?6y zlQoTh=2~|(VX+22mySuqB8QG4Nc@ZW&w0Z8s)lfPs}~hCBL-;0wc(98YM&%bD7^di zP`WULv02u6MLtt6Xf2XYU{6ZiRaF;cJBA68-&NLhIg}WQy;)}}P#Tz+yxA#aoycj` zml0dCOKMXoag)?sY+k49Znp{`r1hFr6EYaj%|3()?*RkD&O~9%uc@`$X(N0QQ86Hs%3T#Qdpxo)yJ{`EvWxTpzgMBs&4bzlj z*^i}yc}yU3+lR~cRFp6XX-x|?lclup_UHXcZ>kI$oJNO?T-unm-~&)x(fR%;qT|62 zyeV19M?L{}*G(+AFkj7c$8@n8z0l@ae3ZEpKqToBkF!PlORq957u3tG^S+NM3oCVY zEE|(n&?&?7g+ZrZQ^2P=Br@mnK8b`?66TEiHHXma|Yr9EEfk@F?oh z6Jm4-Y9CdJ4tfIFN<`v(St??YtS|R&rztc{4#q2)ODqC#6dpiFYEpDy-XoVrDBbv&9Yu|Vr9nq zZw2bT3jrV~RfvaPNcCVsJgoxy#c(M2`c=LIKh-43f4?WM3r1zxaq;GF2TMLFVj%}| z+WDBT^<$)Daz6V@n%coMt>rN2$cjpxO%N!_vu)DhWiVA|(NG@2^D>D&zQR@v_4g;+ zaM|L}U2jTx27ac1fkVk>9=ng?rwPBp$Tb;Px+Om3rpaNIxu(edN#w<RR7?AuNTBormrDpsaecI{GqBDI_hk}X|*`k2Vw0jBft$Q8`Ylobh(Xu+uavs_-)JpfbC9R z!n8`@Nn?S~#l2}3dH1W<)5|@>fW=wvyK$oi4-d5)W}DpcIA=dgn_wJ`=)#NeLO$<%lL1P><1{AOeB$CUAel3;HN-w#xui0GOX5;9u zM44O|lz)wP(C-O-7{r<-$_{`aj`0OOA_{G^n4V(eAZPy)p3Dw$Ev*@aY2%0VX!hcL zX4{T|9~r3p^&$n=Z<9uOFphF_+TH5VC)@#Vk18h`cmX(84rx;0d=`Yg0+E&uTA~be zrI#Xx8V{Hbx-mGFWZavt@zfvIeBE%dTJFA}E{i$vFjTu2FXeL|!u;~3`NLoA3zj5) zh;bWbK;c-&LWL!LB5^3qQ`!laquQn{$i11)v~W##tM>cI0`I3Ks7}u`UKQ3~L@&L= zc_OjK;`9A`>^-3o`KKghb@mp5Ap3?kc(+c7hu+%4qZJfY`6f&c0t;t+OH26U*)Ivu z#V(1f_e}1JghTNY3K{>PJ28*z&RNOOXn(e;0Ig$&uNNFpHd>%V!h!u!wd)1ZEMWf? zq7{2r%dIusgZE~wY~uV&Sd``C@4@Iqlk+C+PlSg`)c8_*YI!5-aDmOw-=!?w#6W_l z4n$GPXH?5|mJxAl-G@1vPz^cL4m(_CY;aM>~l=e z#aKq8k&h)bPa+ttFIM}diOfifowR&8n6Z#y2;cBTdad%ufYtfzHA*x8+?OT8LK!Cx zVe>UE;E1Qva&Uyv)E7lGkn}VfjgiioDHh2Y%RxlUfcInBC22K9h-Q&J!>RE196Pnd z`l9B#cv6S+W1QcM)5!!h`Pm2GF3QI4_(<(HzoUIv3CC8@)L5;}hn9vw{Vi5iM1MW~ zDpz0f_0O;EZV2X3&-j3LrX;h#b=0!UIx*TfB1O_*~EH- zVuCO)2c&0>ZM}U;WRdNOi9E1Tcr8)De#ytGgG}guI-NyOV0V7r!GDTZso^C#ncVyKQAm-0g+(ed_6T7fbz z5xRGbKDF+^n4w?gBU7n#a!}Gm^u6RhcJ3wy^m0Nv&v|e>JUmhCpkDiv3Bb&&*dw$y zML*47jh^y8qr?{cQ!F8Wknr-;VXs)^WU8-iFds+ZqN)G5-q5!64u-`)Moh``X(;p; z!zW=$7+bOSrKLKh1Cc#nS|(9B5}e_aXfo@J2p(IpH)2jiqXol0+}@6Q`Q0P}=O1>? z*p$rKXeskPRk{<8hlevqpL&4VouSTw-N6*ZV%x%`&Yt1e;~*R}j@ClosSzKW=WdQ= zZX2|fX$gclsV*lrbP<@tm;%W%(4$nQJ!g380hBaYw!v?%(X#H9jYDraq(tk?9re_F z36^-|do~bku41JL$0!rstDxx1#EHrdVPe4NP_F$@Zh12x8FW*&kJ1LN`|x67W&Q}mrFfW_o(b|o&qDEtw8x&t_p90PMEIN$nhy2!rN5?i zn)pZTC9Rfl*)JP^^?I=+7@_uK{X)JhYfnf2v{?QhGE85{}t(I>eDH}mKarGG3)O+cE#ul&S(9y zAs8e1(jnV3yTey0*ji=WhZoLU1#z;}s?_Yc7|sD0dm@`675*!%EwIg0L$j4r|6P?k zF)Xc2A$WK}L)}Z}-Xl6hR%{}VZJsiZ@d8@5w5s8Rr!bb*Q6D{%c|>A84TEulXTP{T zR__y5stW*K3^_$q0`4LsG0_ifrPRjP8XRM8~Pv%Su4gy4%6t(;OU|(g&Nq>uP6@PXt zWO){Mk0)j^xRgax8bxfJ?b`sA;neO3Y`Kuk>Ybzho?%N}c&xK+98v2kiXhwLpSzBu z7f@t!D@6CLST5sr-aUB!vBkPAI%o(UzF$8agvmBG*#+Ctbc+{ZY1>8B;&=d-yy@F*KQgi-wOpALNn6DPMX~dfxVjz%sH*ab z_S6{FNcMQH7M#GX*z$9jPB;!@O-y11V27S?!n!S%+p}=YF3hYz8=m| z6M>3aL9##obmGd84we6L*LSffg=DqdaQp=Y){B47TYM22)^7)Zz~bmxMyz!CH6x|P z&`WIQu>>YkDC5s6OYRu0xQkW`a;x{tY=i?+Ij$O)zu*bq?m#HVxe%yvGr4<5M{sf1 zzmI)vR#72FLN<4pGi1X#Pnze4duort%AeywHN&#dl^!RtA}@%_)TmfAKWkepoPFkj{<|JBGWg2T_wh zM%ZQAO|W#Y-TBU-m&ud9ezQk4S8rpp7woY<28(D(+q`)7vuX+g7_~ zk;1Zkf*-Y!u&6${(5Ip4S;8x_5qrjzp)Ty#fCwd~J6SVG3|25DZOI_2oqwp@+!QK(5x9Xdaw$49>y z>@pDDEmc=?p+kZzY%9QJ2U_1=pRGytuWE8!T$4^VR$HvvNE1;}ETUZOD6o9fPV|~> z%s=?}g#Z%b%joNvrL(A=nn9#ZA=Jj53iX$40?MHw0p}QKGXW7ox)lOF>d)X9zzXKc z5HcMRmMw6W@vKOFhvud(yKU2@yM682HIF!c(j4WOIhWOMo1U7=)}HVDx@3dn z+H|G)VuW}&oyuTJtKe(#s=kMJf14nPIpH&X53uM(PJeDdy8H z-h=^~7MFDg$3MxK>g*H`r#63*8~ePU4VY)M6EnB(<@u*VBZR9*VX|nF6)mMlPdXgt zc7Ol=t$AE}%_)o4Yqb%-lWXzu>Jma9G>M{|wX`G&>Y{?$R-x@5JxqWB`h=QqAL`&l z!1(jUr9ZnkpQ>&99|hOS40J0ppSD&dx8Ftm!!np1uJQq}RXLvOI?toqa+QtXUYh%C zO+-qCEvWCu2HG}7P%z@BUz+IXSTzZUlCTe8Au~LBsGIJuwKc3khiFDy8TkS@d=;%2 z3a8>`X0+%Z9e|{`It;ClhhE~c$6^D9t`>hFHtRPfeWQKqO%V);^Q)05V8ffp!iLbf>J=I;Do9fDDtwo6WBBjJTAJ9@}-3c4Tg3p!7H6vK7k${foCm^wf z8Smmr{K_}~sS!;J#9&22tid;t$#D;*8<1b2!kPs7_&B8(VMmY}1T%5d7tJTH={TqfE-7eI-i5a^V6%Ub^{$@Aez8w$JdH zK|m^~hDdM|lkS5CA=fw#SY1GywffqpX!94aGT}^1OLGStJNd5-D}7Z25Psv>3DKDr zo83`A4spjI$~7x(F`u)19Mqz}?OK-vQyO(YCX-ynnHB}q*_kY*8MH@n(A*Rr$510^ z7VfXQo)ZWM{%OTQWkklhcD7!7ejfGnJ-8vhUhj^m@Z9Eh85Lp^0qOmh53BPF6$qVg z#0U&(xZ3IOok};d+$HSb?zGBetrblMt_u9QS>BZwK%f^W!lrmi)}-lFvxV6DV4y2a znrM)sTk$WNu}_j_N?jjPDsJ25+>(voD$gUHNvW)`&ux{oc8?2fRvr8-R&zmxV`lpn zr8Bo9i&ko#LChBefexkEezsIlvW@R#Yp=Ufv|{I&B$?M9V|5|hwToQ`%W=L!SJkh2 z{qk{eZKjZeKe@2hrtWK#-TB(aTy*?yoqEuW!vKgU9>8<~O?A|ufh|Yt4c-hU?vBWQ zwTuanw|6?}twv*_Sn#`=yU!GZ&et~68kIpf{?gLHs<|(84S}8YSlrdK|8B;-FeW+B zN3kS`{ZwjvQQC=#4G8`#A9<9;CqiVOC}(eq#h1&5V`H8S`mt^jXk@pX;w$c<6Nl3M z?tLiZTD~ZnH9+qNys`TYosh&CKC^ z131Rldmifff+kGG@BjU6zGOWRC|Q%DJ7VI>Ujwys#|s5isrL^^((3i?)nRp`+BP%p zz>?^@qPb*=rXm3<qNMl82BLp5s$PjS*4O z*&SC_*fYfhEJ@9lS*%dN<`44KMCm7SwK$^p_dX0#|}h*qnnjq0A+^PzT%`AeamLqoW#g= z!%Xjf7N&~z{q>HPt;~2d2}{rkCa;!wJcW9mqO!wG^Ua3R#$2jiMHCXrVy%6RNyoy% zGD~jVZSGvZ(mx_iM0I8NbCjdo2NTuKneq|U$kC=nQ_j8!yv2wZN8&zlUWYNGzJX^o z7LXv;0d10C zMaU)=ZecN(o)+2~&@8XwsQ9THq5%lYQoDMaB<3=x6PG1EB#!UAaq7`u>$!{;ZHuRi z8A6%UQ-*0DKdx%1dahvo`HX)@#c>gTPpn{z)c*<0HCOPE2#@7xn+JNdU7?;ZC??OY zgDsZ`v#@HD>F_#ECgIf6*X|ikVsw^xB&Y*w+occB1TnApS824wQWj8r&lH{zD()#3 zpg(wPy^YhmcZjK(3QNgjA;}gjNRK7@+z2YarkTw(m107auMxn5oqCkbVq0muZ1&-| za2wR_s$QeC-)1BvQ!Z?nN-F(1XdTvEXQ>+6n>3MHtf;gSY6J)#rVn$*B5sOngygG# z1>EQ`zrLkDsMF!**RNZ-U)X79W%ho5)J%bC!uz_Hw@f_eb@LL0V$qeq)PpXJ1qxE& z8t#H7S?ORkdlCEPhd5EJRNiu!qAgXPdA_IJM}n>I3iV{PE@E@$+XvSE6i*~KI{|Bj z)RALYKI}n5NJSZDz&!C5G@|JEa!&WT4DXQAR-IYC8xKwA=QXOXGd~xKl{M9Kht#Hf zP04pavervW==lOqe4HhXw5zHsHfv|xJjboB3Y~Ojplq~O{*0YAJBA}Eo z@|3(jq80bE+ZA{HSlOJ84hoj`-P1K6WRaRgFgQGEcR=hGPE1O=vNo|aG~Y9x-4JD$6458%bf61wN z>;>cT#4i)|roX)#*(Z?zlKE9u^Cp8+{O;coPo1d&-a~v83luudLP1IJ9fj5;tv-lc zuCFBnW=xJ612)xj3CF{9BNt^=h>?ElLBPGVRA!50t3#y(y_E4U&>Hm!3JmKH_wQz2 zavNj|qOtg1RLRcpQ{3KcPVlS z6dO4w-S6ta8t+TLP4odtwupn5PP@`!nVAKj5&}lpPRi=( zl$t5j?83v6{=^37Iu!Ni5WhQWNVo9bpBZpTq^`!;*G?lwmfzw7aVNKB!6|WY zEP<4koXlP~ef;ZskE9}+Qe6H$k~C4?Jq!LT;E1rg%?$`lBR*Bq#t+@ysoF_^F9d$; z4{_q)6-e0%OpxLBD?=hO%F;v<8M#rJlS**U|2PBI~0u+af_-QNq z*CasS*bN&gPWN-;N){q)AC&5l*P7HuD~tlskKIJfwF-d-8n}E?1Z8B%|HLd0I!giz zAZ#dLF8SckGT0hKsV*-K!3X~5b989nWsN{;-_ZJR-0;J~xSaoak>kHX^bdp3rmoWe z-$A0K1Rr)bbn#BT{{}&j!65peFD*L%_sccV>cL{-E%;-<>3;`7z#v@Yx1A;bb0*-w z6LG-BZIFIdqx;_=87VLbl7GlW@-PE%g27Js8i-sRKfmh#1_6Q?$bFGaT+9EPl~o9s zy3^FGc5fPe9jk(C8>(ScPk#yWc1q8w}pSOw+&oUsb<**UvmSq0@;1q7^I zTzC*DD*Zqer!msm8R-CqAiyf900??YInck8mE-9v+JG3`{C^svPALcx zu;LR!h>CH;MIZ=n0WkpqZiI+1f?E_~EeNp{<+I@v1XRO!Dq@I5z=bsg6t(&IZP7R- zw2Gi7j8y=tu4!WLq3`W#rSFZ=7vWb`gbHY46j8Fy5Kj*ejGBU;=8MU=9(mV=cLS_7%>jW9ORhFPl%BXK&;O7;#$pkG-Rh_bzasx?MbSIka8*T9J1 zQ^?p3Wvqxa)^n9t0VEVsupNF4b={P$<&3acM?*tJLs1=LR}r+ch=3|a(M}dT6}8br zqxsyNyb)eHs`lW9BEk^ks_6Q82O7*Kx4(#KJ`!)u8GyH7rUE z%+OoJ!&OgEMBh+Z!yW5|({lx!0@cRafyUl0S{`EH7bybccQeoz!(nt0FnxP@6BQ2w zTN@)06MZ>tB`sAvP4xuDpw0+B4~UhQHn_%VdSK=3wfP(sptk%<0uU{AJFF)HrmHUI zB&vaiD?zPQ40P@7Au6t7`nqn8+6s=|vg$Vc#%Lq(IYB!)J9#5G9~$sAl+OmOZ-_!@ zAP^cT0}(lEEdytL0V9YJzoM(7D$3AG%UeuEQ%_ga-Ah=iE%L`Vm%;0C_sfl^mO$jf;N!L0OEbwr(!Ci-xc zfjZJo)m~8#>m~;C09>GGW3B3@tB=%2fO9=9SBwC^AvjZo8LJ9ogw#wl1r>!25gxXB zvT9l|XBCvIrVY+P%L`^LEDV)X!`R{URTTM92sc?>eOaustc?Q{XDDl+1GBPqbXW9% z0clnQf&fL!;zR^>Tr`!ywUwfxGX$-Mc0{>|sJVOVXgVPHg*;rn3{Y}ns)kNN3VfdW zB90h!4L4(mqluM*5TAy=rn0Ar1F;ZxO7wsSDDk#*Ix)0T(p!TA(b zM4cf<3Qqdq69S%4L%4~tqY4INCy%kRHc>Qi@Zfh<6ZCd6QH3fx8OmD;IIFqH85!FN zqP*aI-bRATFg;Hzth}MUFdW4vAnT=KtAs(rTm+l4|Opl4QxgAR1CF&wo&v%>*+eEX`(S2 zLj2D5C_ZmDE3^zWnm$2YnYH0AD@G|iW&r}ET(NErlbgzyQjP|P-0N57QU^#Gg1tq zr|K#u3YY)~(KE5qLaDnLWAHL(W2`Q(Vzg>V0bGu z!Vu{KI0)*1a}YK5&{sr2J+%>zVBMj5P^_+}wv&>xj=rprx|$f)Ths`HHqaAN#Y+a( zQ_WMs%?irrDyr(ur)ldTCI(f~^aSk$Og#1MT=)zy!Wa{4I8;{=;_R&iK?w3`sf#M> zdm^AH0e)qSs+*h!pQani1uKXY#eohnF2=T6Fe@uvgq$nr#nIjx;w`F-k>^M0ARMr8 zoIF&}Ti9L`rwAU3D2V85fL|{!K|v)K1#bkOtc{3{kUqrKOl-AR8|y{MC)pP}Bs1)3%1IVv!!U-qs!n zc}Hty0XvMYhAIRB)l@+0JL%)(b=+)m5G>lo6UT=U^Z>@p-9Zdxgb>zqaI#0}@GB^~ zfR4Se9#+Ege4_kL7!ffIc|(31Srub>tfPUVn+IG#*I7->0VjY}wRI9U(Gk-W@Unus z$lJ?e6|o}1UhbehA5_E8+g?mVK-on_0OMtArR^+&bV4ZrC8%iRq3qx-43+id({shz zSbNwBBcLj_n#OK6jtB*7ZDYJ<7jY0aR@U}J8KT_ZWjg$mA67}&XGZf?}**%L!m$5-l4;(7~A)#A8dnI`Y-G2I#>DnUdf-NdNgcB>CRsv+6ZRD5j}Y+$ev<$!52f)YOgFPcPDmGPT5U zUnwAaemW_p8j{yV=2G=P`tBdNYm!HfOG(qw6J6q6?XwI}0bj8>*j~c4a94z$Whf(Q zTpTF1`FNkC>%A)+R%-invL&7uR={Ik#d30d;2gD+ySJNk$Ec8Nq#B14P8V@ba~LYu z5Xa6kiD4#PdKWO2m?`xSjj%)_^6qSnX!dkp-QFTg=V$CB7lX`i{vo7{0GYOB^?h}} zr6&q}JeLU0eJlOM&m0(diw`rYeC2R*G#>O6DEw*d8MdQZ2fhyXS!S?S(ss`GWhRO5vvC74_<@Kqm8)kyFTXO z`{-#X%0^7ZN5rm~5?L|o-4edFHtg2^Rr|WA%Znd*Mq1drcb7)0jh3qxcq*rp&@9Nd zl&*Z3AgtE=-O*c#s$t*Y7V`Lc%7B8`8 zu-uUo&~w8x?VxS0J10vkT}t;Ql;lcyho8e>SyS!f!@ZgGu41?nhj~?*kn^aS)X}D1 zM8lE$%)v^1ykUV!)3>KLG~)aYwqp;LtF>&~QaC7X2n#jzl_IsoJQfo+7y8=iv~qQ` z71a%v5p)Us%PYIYuZvihQ?xDBQcR=Lv%1Hl02c+_ zyJ}pC$yu4aVx|1{UrQhFexB5+ za2mOdCNPLNwD8}vDP_#ddjxZKXXM`zM7Gh{kZ@%<)o%5^7D9E&U*k3rn*W|CXq!Cb zTrb%??*WhFHG5BG^Hjq+4G!@MuL6wsDt}x}ztF5QBY#=UHu>maCwU35*9{vIy9_KN zAcjD@*Xl>oR^f9;xRu(Sq#4toYY{mnvbRe8_tvLu{lL4ee(2%I+uQ*^KRs+c8m@Fx znp-P#7!YVaADH0oTz^#V^^DiXdpZ%BA*3aFkvn)gXQyZXGo>_EJ>N-9$1>pPT~puw z!^TCW_Asf2^Zz6sOf*D@L{KtF^bc2j6L?&5UsuPx3JZRj*v1sXs1qG`LryvI<1HZc z%WkrM+)n9}{`vt+x0rz#$a1VUv8N~Sem10`On6f=@j%ku;xX1!4P|t9B|MTn>39*3V8hBTo zpAWm`yB|z(J>Fko4MeB9kvN24>)reIGvMGCb)ZxAfu)jy;yP2H%nRat-dZ;Ff?BCo zb%(5uAfk~;WX!j;)GtdlR=ygSZ}P4gHq&z7qt+$jRcC>z$VS;%z=`Cy?)sx`(^5@R z#7K!v*j}kgL}-t-JT;G*9YeAp@|ke~_jjhkDk##mbD7;cnNG!gu~2&6BvbiPQ<`M8 zae>_TW%mo0mIM&EGwWIEUK`VpLcsX1jSB?jSI{ENc~cts3SEx*A42dPn1AoFYu6E~ z?|R=95%-jdXLS@-Fr{fCLKV8frjG000|3OzW-sv5%w*E7CkyJL?Wm|yn_mbies(59u-L9^O*w;|;*MPx%ppJSVidQjF!D-kyQELph718UHjXY& z;YoDqS-22iX7}{BIA4zFt*{7VbN$JuBBOi(Cc=3(;o&z#H1m0Q_)CCE%7ck`EE;## z&#L6Kmqw=v;<`49v2(gtWY!=|)BaK|r<0=khj1Q!?3PtGEv@D(c8Oq(?Xx#Am9i`0 z(dB$@mb(3UPOr7EG+${$K2Ic+T?;A~?m%JQK^~S@z5O=0+ON1WE0j1YxVbvN!JNqCd0e@131p5DcclIho zuXY|=v7Bl7Bjm#MoAEs6n5s81+@`%{W&OqQkkVX_rjCQbeQ0#KZimbRDXnOKm}R*` zBFy8Y`?~%`MybX8lCx_r?V}RXjs2UabZcQI=7WMG2zma`!s?^CODlI28>cR2ajMiZjF|LvY6~ zvPm1v&z^@&xX+dqiu>h1Q+YXJP!^`Nndyc8GD`dXhx*Z* zy?JbD@9SAxT8oj<(SVt@)Yf<}dN{n}g=}Z(`J{uj*j(+GKwvPpdSwc&TQlG$LFy@@ zoy1SY-RBX_R=AVmv;MKI$s);Xib7O26yNN#ZyB0Gy2sZt)|X3Ic-@ z8T#zqe?A{c;D>+zQMm147$5T*D4OnpZ}vx4w)Dk}eRF7^?M2jj8IrS;!@i)GLdUS> zEHYhO?=i%(I=Y=6H~dpQIFA#UuZi1vKH;UcJPXC|yH|gHZVeaOt}D0~n&{t~=JmC< zfVai)MZ;pdz0S|#%4P^y;AZTw1t(;}Y&WwkpJaq!OA>sp5 zokO$`dwJN1fjUFA$I_EK+AjjVhV2XBy|5rELGtheF>j}n{RQ5Q_mYBb+!e#WjOT>j z8@_E6&-nYcyjw3;0-eGpkPwU=4_4R@5YRSOP_{3sT!Wq zM?=uPp%>#|!1ZvuQR^~DA=fZ-+xYFh%@FnYi>V}vNbb%f)DCs^fnxYmbIvlG$IC{h z5q4@J{bxlbv9pnhOY+HFCLam=N`u|_!4#gBmv=7xSg%?r+?dVIpdOr3Zn#(6pwu~I z7e=*oIkU9W&WQFdOz&LFTdU7s&W9!#LaI`qL98RPteqRU{~CxKU?3)?d4Kfzim(&> zs=j7=Gf?IMnVrkmi-GdW&x5lQmI*>N^VCiko{-oYtUPtH>Uuu;)IKddkfj~{p!Q#1 z`ma|mbN)OZh12<8rD#A3%^`AQ z)b_A;VNoXu8)_yEd8$ADx{knRk&$(fun}us4hjA5=INQr6()ixA?dWI|IZUj z|83NC%LN1mow;Qye@%!lQIq=-D?ya+OpGMn4FLCLBFPco6Lf%(u*f~Sz)W>{a^}fr zIXv@|F$PUm9cLHwtjc`~c^dWa)K#uDMzcp?mj(?+eK#~ZEi>;JykRln|Ls@cI~*sD zn%HmQ;tRSPFd2S2O6EJ-IhypaI^RmSP2k6-Y%Y(OVkR4Z=EMK$mqSjf*#%xgs*^Nc z%9S?u49W8b9chnIO7Le{M3}C*GvFoyt1B zGZqk^p%A91-NbR{54&)%MUWz4ske*cFw%BUb2i-7KI?9YDbQ&wc6av<7Y(A(s2xgywa@-{YX zLiYFgnG#5d{Eo6nl=;&Ao>82te_i<(nyKO?zIzztnD{rPmC;&-V5YxuD_OYAi=z56 zf^*-!ZW;X@fezu(mP#;V*)CbBEx0 zU;ayK;72G1{b+j6>+$gakrlGcPy)ipt5(RIKcD-Txq(4TAtIKE(o6O`6_Eeh$~+;X zB2c;H;qm0Zd#7hj95MtfV($iM{?hi3aDk`)e}AaHq#J~yO&jgfyc$VD&(#wJRNm<4 zN*q7Ba2;atTLcA^cC|7Kq+l&Wxd`iMrJ z&#=IHAj+Wbyzf}~yQ1WhRGOe^L0ccM2R+AES7&yJ>PUAtzDF9}KDUd(DDiP-sE2d#e|-4M0JC^AJ7?H_L`bulWHr2!Y&p2Ofx zjC4tOzXa`tfBq@9(X#(Y^NjZS4=&F-N}`}$3mM5zq@Kd(I0-F_>ajs8FT15ch|j*O z^WMcOQOd6>1vpR{85t7CvqaHQ_Rx_(2?8n^!rD5e`f0SJ%)%KH-i}P^C_BHP2Lwbv zxj*dOUzMtl;dxI?7MS^APt<)r=6i}*_af}z#Q$)uA)8Zu`g@|@xLrT%DT#=K1AEVu zq4Rsm%lu!cERdTxGcgCsc%EOaWs+#;%sOvDNW{e9;xyfwJfm-G-&e@(KL0}{=+(XW zQ?{fECjukb4`MsQWNw|k43a)M1Y_i%HfnU=j9&wWfM~`RBum;Xk|F46uF`**?sZ_b z|9GLu3y_ZZ$vW;IP(8Nu(?C@qk}&R`0N8$ufEVo^55v^Ry-XatD~tbJJ59m-#^Uet~q^`-}weaV?0JcPbA2 z7%j3gg~*5_fOsLKXvBXVfLu{(?R0zk80=qPl1iHpcOn7JPM+I;a3a zzR!Tf2DXi1NhY-PKFQy4j!P5bBtM!55RefPf0FxfROeAY_W2byhA3$K>hDIZ25yr%DURTae2&QSZa|`D5i8C1$ZO)vI?{V1ky{3Kg={-@HcxK_VXN;lRXktST0>fE!)^%!w4@z}6UlnelNt|_PFq=R{H z_hE4p&kMLbpQe0CX{j7A{DNQ|tURC`7ys2}GQWu1OuH#|{9IGc34IShmi%~s>>aI> zoUJiAuso8fn_SLDwcb4s(Or1-2zzf`N59b z%#f4Yea7vzEVX3AZ&G^?VD)}03_kCC>#>PHs*A!V>xv6w?A^mQX(bgkQ^cnvMv;r; zT{h!PGj%+6=qNTy_vqRHdZ7iMXLPK$Mt#*rcd=DJmVE24+IOjoOOCXc39or(EVRv) zBB$o!zp2EQFJ*q`u1NHA7%lD|_!W{KAben4VjnB9IZRcWy1_(_Uy29kJBV1IS`uIX zcmsHAxO&yN!X^*aS?;CRPI_F8bF1~v2=LhV{YW&|Uy&YjN7tC4{2S>&9j>TG%*YzHp2wPdb@H{5bUPkNC z##b+uMwI)dMb&GiMDF+GRhHhn4n`ZQ3|8)v*C2<`e=CO#a;)a9SiBv>Yq=R>JzS5S zi@K1&r-PYkWDd(#f1WZ>n&|kb?)Z_!$@bm#Ioz09gCRFug17LRGv$pt1vf+ll7W+b z<8ykwAs)}Nj zSRcnT5Y=O%w4am8S6_Vpk1xrLiLQ6$2wqGSK!o&F*VdnDF>PZUsnPP8}GVClcr ze;9Pv^vdBX)lcwQ`4R$<$MYfMwiLi0$E$@vbpOjctt&S zed^1_D0#*U?{?qyCAIF*OCY4VzZGbrZ%D@8)^CIx)Jb?vz6rk$rze#^!<$4a-QP1I z=FN^QZ{gNiBzzyKF2~Hfm zQd^l@yHnS#FVcxG237bErBC}G=M`-muhhMQKa|%(=F4h~s30@N+?G=i?MYv22f2`y zcS^5YB07EaSp2H63=ugR(cdPdaKEj2AqWe*;5UZiGnsuaoh}- zNh9cDMWhm)h%Snlo{5d)((fl`rY=1E3a?H#EE3+~jN`F!Dz$0i3ZNIeDQ+8@9oAb= z`xLe|Rej_Ec%!rL;v(w|MU8_G1xCh8qwQ45IZ;h45=eKfO8k_7Pj#gk`yqj6f6V`jx&8FFsx7B2n zSwStv!||GT*qA>=uPdjW>1py9tv6}=rCZ~#2v#f^U-n-hB>r_3q%)-dkyPD(ntbnF zcEY?va!bNnyY1nN)q3(LLUaExbvM-7QM^tX9S+F!^Vyqj_*&9v z&yf*e&=Mc7G*}@RL|*za-~@YtiXJ{$o)(b|xuzB$r&G%y!mYc=FQ=QOYQxZd-8?&- zjyd8f9jjLOb#$*ydz6Br$e7@;V4RGmu8d5tReXL>cg*umkG{=bt^L; zGQV{@F!XvM$0_E!8u+88I0yuRDx-ezni~F}Ue|ZNg>=20n>zncdOLR5%lBjp8O4e& zCnl9qyx zD!1{6vi-Ng=RKsvx0V*;*&7Rw4s2T5%x$TuDFQP!{a9xsMQ}WOd(kM{8}#X)8O+>$ z>vNVIz85^ZzFuE37S(#!qdDufnr^u<|I8W|)!jT`kY?^U2ytek&4(e~d&F?Z_syK$ zD?6!gdCYf|Je*}b7o<%!F3zyQ%)rb`b?q9fWL4SofC9n>spM*? zYRnyEGj_9)dCq&MpsU)4eb2SWqbco{QDZ!WnMCw$K!jPW*z`F1TvM>)C9*Ptm9hSZ zUMJs{Kbe4eD#JEkH%sk+diwp=KkvSK zJmGE^VGEC%3ZrSfzfvFdvwd4Q*=eNaW6VpBheTb=(>JE7i;x2_<&dHI#|&~IrVFZ1 zF@4G_PV`eNuR>BAU@}bFc&71ZTRo=uk@wX1x8rlj9T~Z>`-^e9nVW*MiQ;Q%viGW% z8cot?F?df;2*oTbMP7W2t$TA5`R8+Ixw+pR_9rT(9XVt*m`8FY)>;zEMN5 zV3@qW9v(6JJkGr+KKafyYDX_CN)rd+{gw1%KJm-|tz6T}&>wkb`e}?^eFF`(IN`WG z!_)yyZ+ZsEuF657XI_X;iy(8~+O-zyMDb(vgrYH=AolsA9@R$EB8z3(89D;;X9R>) zA@?6DQybTBi|8HpS5?l6GWAVz-X1D<5Mq20VZyDjZSwI!-)Jfa&VBJF?^EAi-%xvz z=;K<(nEj`wO=?8}Of>nuEKAM>>@)4@(eMC9e!`$n3Tll*-F0z;B9JKNBkw0?^@JQv z>J7hLSYYRNu2xH<6;&06F*ZkAFgP-}opdiLQu>)N`2B)i7n!>yw%2~{x?oxQ0AeN0 zyu_`+5V;YcNf$4jk3k8VXsA)QMMD*yw9KAcNpRwhFeap3LeFux$5p(G?V7ry{I$6! zYh;A7d2J#_{7IZn?bb~a7i$wQ=?4H$fU)QVl(k|Ti#`@lON}K-DTJ^d5gteD7cTqLN2Qrji zJ#XsKM_!ZTQq#rVIhslPCCC5tuT=7Pt@l<>9#vRAPcL`@-P~*@|BTow;zazK)S4=; z3swkbbE`iZb|_zqfMk5UaCd2_+SFsEMuN4xaKn&tCk_cMoM?E)@H{K*m|cy!HQEYp z8GmudJ(@=8LSzv#z?$)51rK4>hxdHO;bwS?koZCdM9^@Bj=CD8W_r}tg1^X_%sOee zv>#QuFMs6r^~?K1m;|N@&SCU|v%41NnAsvSSXC2e-zvUyer=-n=$V&>$w;T>W^no8 zR_xSpWod~`w|7%=QQ*LF(6UzJh&cnKWufnoEm^n_(y|;-T|mt`m@!dw#%C(7mwqy~ zBBv$j$Y&(k)0{{9?b|)=9~6ao#xUBR+cr{M@50m^yr{V?R53G6=&BEPRLZ;;ax{-` z!PzvQ(}}sYJl#re&LA0UGD`Pzpc5Kfj@XG#Ua>0*%id~W;v~o*WTFp@eE_z}JWswI zs*fMtcx`lJ?w6n>&uUr%7pAdC^~ zWjTARp_a8^$X!^Ww`%VJe|ut;bK?57sUDoI@>11Pb^59VNM%s3D8Rf`1-%iQf~a+-}whQfw? z)TElT>RObIMy=TyQTvQB8s#*iGJ>_uaf=7%uX35mm(2~&8%Q@$^%pyqE)G?v(?%d&V-MLsBTe>5XvJ~m;e&uh3>m_)NOdHQ}5+XqqBEg zqPVM5q;Wj^Y+adO9lPd^Lu?k`9%m;%E>{HG-*(|k*sl-CXC!+ULh4dCo90B$h}tKn#6&kg9P}L^?^CoL^u>+iy>J<(eq!I+XA6{(gHuDAgCnMKw0?!8ub&i8cvyQb1WVc1%aypohu9foi3= zv(y0(P#r`}JQt{M8ObDfysN5Bt=Z{qnbt~fMYTL_mrA`ep-3SVF`}LI=<2(q?{gt5 zEa0b4sZjg7ifw4|xigxFasVV-%q#MguC;@;9>`Gjuj(a*4R&Jf-Pq)K< zIB_SXU!0y_zP0zWx+w8DLcB0^&>+w2N@=5K3du4tG;qgxG5uUkz?n7sTUx(ktpM^} zZ~DG9G3Xvv$L9%qxdKI0-`?2uHJ6}HITF|@{A|d+~5Nb>Q zJhV46`bMe~ZqUa$^gv0@vPID9`#rDY%DRkhD-lQckjYY$V7pq2=-$uuNA}q$h}2H< z!1}_IEQSH^ypV=iB(!Kk-2VkbdkSxMOI1(3$;9RIP0_OlZFzBFlGpE-WBZt*{8u_N z8w%ZzTr`PgKJ6{)mJ^=~_p^C|ttqO0e0gEE$-R*Gc5p%OwbUvJ>$8w|f2BByGr zKUeR>c*roCVaGDfyKkT6U8zXLV3Cfr*{htPp<%~&`;BnOShdBQm}b`QZ1t!d(un8S zxvu15k+O&1MsPwg!mVhPz4NgWX%^q+(=vkN>?=2eT{{}jO|QLQ&+mI(i5gjd?Ve)r zrmuV(GHB+29UEDxHBTz9F&`Wo>KTY&C~XUTRXUMb@lCI@E`fzON)D{k_jcmZ`lhvJ zIOD1IS)CFul$Q5c>g@ZjXPus#v|#>=MeJnwrR}btWFNY z{_4b$O)SK?zKzb!C)&R2{nw@Jv;x`7cPkf0sut^G?d-Ecmi-ElavBdLaz)Jcn_?+9V4%JKQRT zjWBh5mm%0-H)uujz=Bb_YoBmq{rgk#=vJlPoiG>8+95wnG#PNt5nH6yg` zh4M`T)2^)(zrF^vCU`O=esNRUDRyeT!=e2)Qt)}u(N#x3*WK};e;RD0mkSsejMD1N z8s1&|t|uwpGMLJ)fNbtmxv;6!sjOCK0i5&FFd>fSFc~4jqmqDBh?<(2N-zWM!)M%c zA+DR02%l{&TY{V~#L_}%D87G*+YFW}{1ALrp+>TA$eVuXOKOQtyOl}N`@YI} z_ecL6-C~Zs47`5H9NlQSz;2&!r;ygkjl*fzxrOFumSMg4+YeOO8YY{*ERpS@~E z>&gbw>$B%TU{UM#?b4r()fYrYrUfMnCL_Hnb>}*WzKF1wLkWUBiLsN8`22A;u*)41 z&UBDJDKl}+u?0O_!k@1|{>b-%wcvm0qti1obD-Q``YelL{+~yyI)MbC5!w!q{>ulS zp1tIhAz;C_(Omn$ymv_A=*0fb0RH{r?ro5jQMxUBy1R;Bfj^0=pboH=aJg#c*)662GFPW( zj9?7AWM6InOXZxNQB@J4j{Ih&k2a&Z%&YX%eAiV1kQ)B~z4!R4CxGrueR@dFpOz}_ zZa>#oWEsAdFT<2e;(Yb$<I{CHomcNNPy_-*q{=bCLtedm)`JcPh83E>p@F&- zs`X)oTW0v~AwaMJkk}mot53w00GK(szfcrUDYYxJzrDoy@cgx?^{JMYcuRj&T8Ya~ zD5^I<@dBfinQ9yt2iUQW<%fS09pE;8`(ZK`_-`Blq*b#s>eB`X;Lp5pM(I(BljZ6a z;a1W1G)Z*1G}vD&rN<|sPgjedcXsyN^pk6xlR=~md^7`ifN7Qc!sJ3xeVoVAU=yG)FTkfo0ytK(pWTNCV3+Nb z226OQl1jQ%EvW(^btY(t2f#K0Or*p8t0n;eoVtRTYL2xXvT2EH0^r0udfDoi3QQ%} z8*g<16yM%rX}kK1$&QzD>&=`+2~3T0l#+;fx2mNyNuSBBKFj##Sk9J-2x*?GB7n4O z3Z|5@o5wMbeoB1{HuhzW(=E=2$TX4>3lUgzUZ53fJk)(re_?i)4!^z0rjexlE&RI1 z>IA^MZf6U4ts}Zc^cnjMnY(ke;=!g`LRdjLb!Si&t+2ywOTVqybFb|PDvHB<(I(?#nw810pXbjDZXlyC``&AgbEw3$RwhI46lK@s7B{_THAF7#um;2*(Gl{*flG?YEd{upIeiAi+#sBIqzd>D#f zVfl3b^AR#n$XV0~SeUcuAoek{1lfbB3cQ7bU$X#S)7Fq?N$ySkZM(jImZ)C^r+&_uj^ItL=G{)U+Q*IR&on-eybI67X*qy7ylJ=ru#>eC_^x zUIyIHj$WPgRbOv~cv{F=am8nJD3j^=1Sdwn&F6E!=x)3{D<|Yqf?Ki3xvTClRD6-} z+PDv4(HXG)R1r8<{oxDsR7KxFg$MKE!FEAmUywFHSaA+YDjvMB572iUd3gqj()&JI z>yteGXw>kHeiLHKzpk)jSpZB4@xBU(b`!;Gn^!@~K*&%CW z^ZcV<1C(Da#n}1M0k%IeET@gA)TV{H`%stn%`$d%Ty_A!AY<+rG-JbDrK$a38=W5w z+~1VnQ!}~rcHrGf{z34lWy5~|?!)8eC%&iFi;0k^NTQR8(6pg0xA)58hahnHCjWBK+0=Oh#A0&!R_)+@jjSk_x$X4<%cg5L7vD!)6Z%cAs*E*qlk5OIJW*>N;g z3nn~s6l?xvs?_BN8A=N7Q4*iLLZWhO#z&^>(9>h~Jise#`H)iuxS#@Wm1p|tZnei} zo+%s*F5EBi!#KUVcKt3vhK8nlq)`C7rDk3Ij>=z?IL=78)Qo1oOJzN#)nrQHGHbb+ z>0Ssxx{8)dTmBASo+AmQH%)+OoRdECrBr@@y*-pJ=*9Ij^2z#x-8m#@>YvG3M_4Sk zPjuS8TDEk(pQ}63j*0pUIAO7n37{)pATz;r@OS76jQDP}N}Z5RwNG5o_xqmSploqW zGwu^~qS17TkeG*@Sc4!Fz*^cMs+5a`!LNE>>wNYLZ7QLAy>DDXCvjJ$3~a(*)@ZnLNrs6b=*79fFK#Iu z>n;GWg_!Mlshe-iUrz$XBUob|PN!ca`D^E>G(L=M226Z=+R5-Vr8?+!gu*ih)~$FM zCW{bXP#!YC%t-7@16-4kSk3ypU_X@6KNJrp0aU*!C{ogAThxck`0b0*?|%{COykrY z1Nw_))?d&2@c(i;qr(^`Dt|r&5hPP{anB-hvKxAqjKw&RKv@EThoCi3t2kaNabGZG zufNQyD%!&JukCdTQhZ7)h68GAflKMv{rUy?b35h4XrA$vKISpo(Ow4ZwN8IjcOLpFMNddmyT3?Hm^!1ZwjAP@=BYQ-YdsXF!{lFgd0KZD( zS2%7kkJA9}*59fo<*}l-yGte>jz4NPRED~;B7E8f0nu|#m-R`N>yqBsNg|e#$#c08 ztQZ;ziXcyt%j@EkKC(3_4uOGV#J?y4?P&g4V!hH7Fy^;oo-)2oI=sC!)GAczJ+_o} zEdi9ssDYAJh zK~Z-M?vyqG{=MZvRoWkJ{I^6Sji~-`J**VEa1*#o?#oKQpt^XLQ%pSKjr@UUxx)a> z#!EpD@IVoz1$>FX5vDfQQhx<{OFbEBF3 zWBOJxXJyF)nNP%rdwA-6S{$Gy3;?;m$4UbG7evLsg;eLMNoYl^xs=+rrnr++bGiHv zFld+v_%3eCpg^n(_UsEuKwrbn&PV}v^ABT1a&Xfo6nYVAv+_%5FDP6k0_I3y*qwuTBp);?g=V@3ZpdE-P=CjLp2e(!T? zo<4b^it$GP$@<7a6}m#=OG(z|)~Z8d@gaV}S^2C?*-dTW@q2Bwie&j8?FYqgZZHgA zOO){l;J|fv`%7U;HVp24jw-%iUu1GTb}`^2nTknQgluoH91$_A>A=QRyUGw`QGK_EZqkk$8g*N)n93PEU5#~1yH*?9Rob`#%J_*Cuheit9=`8kk> zQFBLuiZk;PWINBbJNl7;Gm~2{>sp2tT_|3PcmK#t)mJ&;BkPiK>lqOtaUmHXMv2#k z?R9DYnyVbT^4VJHPWLb3gUQ4m1c)KmL2%kqV$(9Y*1#BFe{yU(-;>8K9vE-o;#@gJ zjT)<~JzNPmsm5Hjhyxp0H#rUS@i@&;9#G~qG@T*t(9gFKPRi)3ZU5snGf)CipyUz{ z;+%XHAtfLi1tQJP@U%j`Mo>VZHQkoVi4XWf82$T&=I~KV?P6@t-`G`Vmh6iGFVGmt zpukP{{MFk`ZqwiSx3WkXJU?(1!Acd=yyrRaRgZSH%BFssOGACcD&n|hF7b;^?_DR< z$G;>$YSVWE7FropR!&y0)I|epoOqCTn42xE#*K{OHpgZn47ZW$`NnC{V+a!UlGNMY!dGbwbX2(ehPpwB2oW+ibY4 zQP|CP-40n^5?pzz7>*I2|g~Wn=ZJpEMa_6 zGw6LA{TTWEjTBdXGWj<$8E2T5$tMfVt0%`l27?uXRw?oI8Zy!{bsoQ>CF`s=$TJix z0KQnC?-mU?J-K{!yM6S_m!J0=0&_Wy3bD^1 zinjk^?}?%6A53f217!9=P${YUssLJM6LRr((L^o^H^u0``|&U#%lzTH(MfdIkv-b1 zpww~ry$*x-EVJNp(sBPa$*)G18-|Z&_gtiRPuZ_-7OKo zQjgY1y=&TVygQxjtln~Y$qm#rYnN*7Aag*CapH{s{#?#_3vYcw!&1Y0h11*|F%*WM z59!Ok0W++xZ~+ZUl^qAp{eDI|~tZu_j zN1{>LLq&i%)^LFyBn;-_V+c^@cb)HE;9hswJV;h>gWA7Rku~oFkbg-kmd4)GtEECS z>N;klNaZ(;&QsJ}xGo?s?9hLY=R=jVPqTrR9$i7&TcQGp#(O4V_zahS=zk)W zi5DrX#6|iT3*_v=NOi?I`&mbjmCFPvvGtFnj0tN}*l>trao$8VYDBfVb=I#y4Q0*? z%Grze?dY{hHGAUTn^bf&W@EMW50vo8%AW#s#e;(b4#e*gUboB5nG=bY!6^E~%;U-xz0$HeCk z_4Fj)^a%cPLe4E|0486Qr$6#~#CpXC8(@I2>9ngFnU;W2J)y@|zOJ^(@A9y)Bh;b3 z6P1V6{(O^7$_9)`vTMIbEt6t`gr#^8Pp-2*m}^QIBjJ1 zhWpJMi`uFdL3xf25I+?M2E9EdT?iU^^hvXYkm6H3mLJleaEgg+Oo`2?XYS>KVOh#% zB&jW0&Fxz{@)J6aTFe=kdO&b~Kw3V9Z|`irRJqQp5q~nKUa-ZM- zS1r7oJ5iy!)+5g0Kjq-%`&S8d`~MzlkEDysmQy@1+Nr$5+!m;kj9Flj&W z;?F~TRL%FRX7s;f`TYqJ1CFRHy>spP<4_a?U~AUTxAqp;Ke1~EJdz4US z@a}qPb+i*McBS)@Z1{mxbjP&oVh+)$$PY|7OqyYha`5@`2P5hrLk^G0LxfD04lsfX zymU#Rb9qMpuugD;JcR61bldhCm8yKHuMz3l7-+loksxJ5`N9CT5lWD0d@#uho)46n z&Tp%)Q6g7gjfn&CZX6AUwt)T+DKzrxbvoE*W&Upq5$2n>zl~ews1-X{4?SC)9BQ0d;9DseEXo}D+|SBY|4dv&=mNVC4NuywF>Do1;yT0OO8h7g9y zZS#~FY9o~m0Tn}MbRE5Af(qVLYkk%U-yx?YFT%!&k{-5gM{2YiS6&|7oQ6*otLt2C zBk*i!u7;9wR6co0ZRSJMTCi-R=)MJc#f%dZj#X~`_uiV4dDqFfr#2%G*tXka=|6VJ zoJ!I9wsf|GDCw+YY#iq+idM)`io!e7e>*79E@2jhM(D z3E0BV-qOo9t@X2RTf%*^qEHD+74_imZD?5cwxMsCTN)5zvw%4@W2XC2wJ%43H8`wy zaOr*V9m5;5?+SBNQ*C;SEM$bQ!wUV0KTgEDCtp&}cF#>c7DjiCFm;Su*C)3;J<=|rm|1lquBTYd6zyxaZ?f9-duN)E`9h^0ua8Gk zXL7Z1SNb^#vImb)^OGZSi#GNA&u6bB`tfoLS)YwZ8AD>f02DKD7>ofLXh?Oo>SB&;qNR|74Q8?oNu|DB3W!jdwVhx!p(+ z!G8tsaul5za|JuY66vUjZ|;G3dc5q`N#aB=ZnB%lPw&M^V9Mz&@Z|7a9_gN(eA^eJ zh~%s+aC8O0&9FSLujyt_-$5-u_>CBZ#+g3ndmmnCL;j*+ywSBVOMai*XV-ZhR}4f}&qjuzHk} zyRwf?K)Ndy7tytN zs3U{FC6x*%JE>{k~q6mM?ar6=>}BIi@K&SEtzvn z2*D^T<|_jzoFK_Lk9(?426_(P6+a>xC=*a4CtjO1ku@D$ zsjDNsrg61AcN3t26!q1Gb9SCVS`Ht7ehnIP3Dq8|aTVhb^$A$ok63uvB~@xO!inGw zk05*|eqUH>>#Tfz<&l@sXV;6swKr89S%HRIteCEU;$EI;$;sCxPT(<0t3CxxR!j$i zRP`zD+OPfBa=0cJ5;)H$Tm3*gdz*A5h~If`bg3bQ)92y*_FR$UmV3E}|Bc}N#}R{r z-TV%?*%fjzht#e4b1~-w%!QMq zryFH$={X^qVKkZB4|K_zn?vuXg7_`e6d1uSW*R(4g9(|I7}G@EKTPxZr#8#Pro7Ob z2!hetkUwvZBkuLvWJ!Fii9719=+VyWFh=e2D1>cy3SpiTx{BJmy;(Opd;NH%61K7P zOH7%vA_vjuA3x@|#>MZrPQP<5>~h1s?>3pRkv@%hgYBz}m%eNGzN;NO+wf`>J?C-_ z;ciAkdd1F?>Nfx65|-GYQL;*v3E536v@AoF2;`N>Oj2e+)P9HlaEYpaxv0=FT|E zlr~K7KdTYJd)6xS>$$1{?$cLoOWLkfMEh@z+*(dz=hsnz3De2P#xSuHr0-GuzL)(& zE@O;g8fNGDIZVwb51-n39m2b})oP#lP*n;=I}!1-WnHu>v!3;qTcB@2&on>wU{WxT zY!45^lc4wIgdD7%!QXlNLFXWZn7T(EHcXJfSz?6=6u$B*YKC(nuFPH)>~*IsVCp>LxL%brmuQ!eN@uZNm{ag`Z%CK z-h&G^g9@01y)|VD&}H@`C7coEO0^4e_AMFprlkaw@B5Ij#;np$R)`&kZXrICYoE+; zwocVQ`r*88uQFY8*TM3>$9?7gV>Js3y1Z+3P7d~`Z`??V6I_2<{JYk&v?v?8`qv|} z9FAV0{yk9wOx`^!NBaLm%H1lXUW|*{h)9oC;od=S8P;waP~% zOnYkWpIP(x$e<_1x~HxC8`=+G5+lUeO7*L2E0|SDReU?0u=s=^TL?)$b>gaAzV8Q8 zk{@&wJ+X{KeUJjADMS{8NI;=s^Wm~?f;5LuOoe2zxP`PI?MRYT3ZVTj8P@oU zd|`jn3zs9i&i7qF2~MGsp47_d9w7Vm2{um!fLp?^ga5#C$~0k^y_z}LNPe9VRtreP zBBkadkX>-ScS)9DBKO{x-8+R8QOhhl8i2iP?80PPhz0#0w}q?%blLRt$YteS?7jEM zFq$TZy)S!rYO(-@m#>+(_Wjw>0JyE!Wq>&YKQBpjVM^^*hk}EV4dwhcw=`y6@D2v8?8<*0A$&^uL6fzAp5m) zKBCuvF)*w#Wpw^c^@!dIYA~Hs6Z4)RkN)q&f|?7nsq+h8g+exlCIjk^y!C~Rh-^ECTjM-q zVcWvvXYc-h47YCpu~>>Z3cvc_;*`i(0kmT7z%&?|4{OB^8*~Cb*?$+}T`Z zrw2hVZpTXC@(Zfk-!Zv%L!$lt4i+kkosi+L*{5dTqz{AO*eckw=Q|j-<4BPXiww%+ zy{tqllxbNE;HuheGXn&HA3hP3#oGa~yH$d56H_AToWC9Vdx^H4jFPmvSo!1Q@f<)$ zyG^BgYbQ%t$Jn;qtVsmQzi`(XAyZk_wPinA9DUPF`~?$=7%|9n_{&ymO!Q@H=VdK* LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR379/index.html b/previews/PR379/index.html new file mode 100644 index 000000000..8a9e26513 --- /dev/null +++ b/previews/PR379/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                          ClimaCoupler.jl

                          Coupling CliMA Models

                          ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                          • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                          • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                          The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                          Coupler Scheme
                          ClimaCoupler.jl allows for independent development of interchangeable component models.
                          diff --git a/previews/PR379/interfacer/index.html b/previews/PR379/interfacer/index.html new file mode 100644 index 000000000..067f49c8d --- /dev/null +++ b/previews/PR379/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                          Interfacer

                          This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                          Coupled Simulation

                          • CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                          Component model simulations

                          • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                          • the current version requires that there is:
                            • one AtmosModelSimulation
                            • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                              • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                          Prescribed conditions

                          • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                          get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                          +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                          +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                          +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                          +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                          +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                          with the corresponding update_field! functions

                          function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                          +    sim.cache.area_fraction .= field
                          +end
                          +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                          +    sim.cache.T_sfc .= field
                          +end

                          Interfacer API

                          ClimaCoupler.Interfacer.get_fieldFunction
                          get_field(::SurfaceStub, ::Val)

                          A getter function, that should not allocate. If undefined, it returns a descriptive error.

                          source
                          get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                          Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                          source
                          ClimaCoupler.Interfacer.update_field!Function
                          update_field!(::ComponentModelSimulation, ::Val, _...)

                          No update in unspecified in the particular component model simulation.

                          source
                          update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                          Updates the specified value in the cache of SurfaceStub.

                          source
                          diff --git a/previews/PR379/performance/index.html b/previews/PR379/performance/index.html new file mode 100644 index 000000000..a3ada68fd --- /dev/null +++ b/previews/PR379/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                          Performance Analysis Tools

                          ClimaCoupler.jl provides basic tools for analyzing performance:

                          1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                          2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                          Flame Graph Interpretation

                          • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                          • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                          canvas

                          • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                          • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                          References

                          diff --git a/previews/PR379/postprocessor/index.html b/previews/PR379/postprocessor/index.html new file mode 100644 index 000000000..93a24c29c --- /dev/null +++ b/previews/PR379/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                          PostProcessor

                          This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                          Diagnostics API

                          ClimaCoupler.PostProcessor.postprocessFunction
                          postprocess(
                          +    name::Symbol,
                          +    raw_data::Union{Fields.Field, Array},
                          +    p_methods::Tuple;
                          +    lev_slice = 1,
                          +    datafile_latlon = nothing,
                          +    nlat = 90,
                          +    nlon = 180,
                          +)

                          Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                          Arguments:

                          • name: [Symbol] variable name
                          • raw_data: [Union{Fields.Field, Array}] variable data
                          • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                          • lev_slice: [Int] level index along which the :horizontal_slice is applied
                          • datafile_latlon: [String] name of the regrid file
                          • nlat: [Int] number of latitudes of the regridded array
                          • nlon: [Symbol] number of longitudes of the regridded array
                          source
                          Missing docstring.

                          Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                          Missing docstring.

                          Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                          ClimaCoupler.PostProcessor.DataPackageType
                          DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                          A container for storing the tyoe, name, data and coordinates of a variable.

                          source

                          Diagnostics Internal Functions

                          diff --git a/previews/PR379/regridder/index.html b/previews/PR379/regridder/index.html new file mode 100644 index 000000000..5abcd9668 --- /dev/null +++ b/previews/PR379/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                          Regridder

                          This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                          Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                          Regridder API

                          ClimaCoupler.Regridder.write_to_hdf5Function
                          write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                          Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                          Arguments

                          • REGRID_DIR: [String] directory to save output files in.
                          • hd_outfile_root: [String] root of the output file name.
                          • time: [Dates.DateTime] the timestamp of the data being written.
                          • field: [Fields.Field] object to be written.
                          • varname: [String] variable name of data.
                          • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                          source
                          ClimaCoupler.Regridder.read_from_hdf5Function
                          read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                          Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                          Arguments

                          • REGRID_DIR: [String] directory to save output files in.
                          • hd_outfile_root: [String] root of the output file name.
                          • time: [Dates.DateTime] the timestamp of the data being written.
                          • varname: [String] variable name of data.
                          • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                          Returns

                          • Field or FieldVector
                          source
                          ClimaCoupler.Regridder.dummmy_remap!Function
                          dummmy_remap!(target, source)

                          Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                          Arguments

                          • target: [Fields.Field] destination of remapping.
                          • source: [Fields.Field] source of remapping.
                          source
                          ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                          remap_field_cgll_to_rll(
                          +    name,
                          +    field::Fields.Field,
                          +    remap_tmpdir,
                          +    datafile_rll;
                          +    nlat = 90,
                          +    nlon = 180
                          +)

                          Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                          Arguments

                          • name: [Symbol] variable name.
                          • field: [Fields.Field] data to be remapped.
                          • remap_tmpdir: [String] directory used for remapping.
                          • datafile_rll: [String] filename of remapped data output.
                          source
                          ClimaCoupler.Regridder.land_fractionFunction
                          function land_fraction(
                          +    FT,
                          +    REGRID_DIR,
                          +    comms_ctx::ClimaComms.AbstractCommsContext,
                          +    infile,
                          +    varname,
                          +    boundary_space;
                          +    outfile_root = "land_sea_cgll",
                          +    mono = false,
                          +    threshold = 0.7,
                          +)

                          Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                          See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                          Arguments

                          • FT: [DataType] Float type
                          • REGRID_DIR: [String] directory to save output files in.
                          • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                          • infile: [String] filename containing input data.
                          • varname: [Symbol] variable name.
                          • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                          • outfile_root: [String] root for output file name.
                          • mono: [Bool] flag for monotone remapping.
                          • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                          Returns

                          • Fields.Field
                          source
                          ClimaCoupler.Regridder.update_surface_fractions!Function
                          update_surface_fractions!(cs::CoupledSimulation)

                          Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                          Arguments

                          • cs: [CoupledSimulation] containing area fraction information.
                          source
                          ClimaCoupler.Regridder.combine_surfaces!Function
                          combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                          Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                          Arguments

                          • combined_field: [Fields.Field] output object containing weighted values.
                          • sims: [NamedTuple] containing simulations .
                          • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                          Example

                          • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                          source

                          Regridder Internal Functions

                          ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                          reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                          Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                          Arguments

                          • field: [Fields.Field] object populated with the input array.
                          • in_array: [Array] input used to fill field.
                          • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                          source
                          ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                          hdwrite_regridfile_rll_to_cgll(
                          +    FT,
                          +    REGRID_DIR,
                          +    datafile_rll,
                          +    varname,
                          +    space;
                          +    hd_outfile_root = "data_cgll",
                          +    mono = false,
                          +)

                          Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                          Arguments

                          • FT: [DataType] Float type.
                          • REGRID_DIR: [String] directory to save output files in.
                          • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                          • varname: [String] the name of the variable to be remapped.
                          • space: [Spaces.AbstractSpace] the space to which we are mapping.
                          • hd_outfile_root: [String] root of the output file name.
                          • mono: [Bool] flag to specify monotone remapping.
                          source
                          ClimaCoupler.Regridder.write_datafile_ccFunction
                          write_datafile_cc(datafile_cc, field, name)

                          Write the data stored in field to an NCDataset file datafile_cc.

                          Arguments

                          • datafile_cc: [String] filename of output file.
                          • field: [Fields.Field] to be written to file.
                          • name: [Symbol] variable name.
                          source
                          ClimaCoupler.Regridder.binary_maskFunction
                          binary_mask(var::FT; threshold = 0.5)

                          Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                          Arguments

                          • var: [FT] value to be converted.
                          • threshold: [Float] cutoff value for conversions.
                          source
                          diff --git a/previews/PR379/search/index.html b/previews/PR379/search/index.html new file mode 100644 index 000000000..4f84bb7f4 --- /dev/null +++ b/previews/PR379/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                          Loading search...

                            diff --git a/previews/PR379/search_index.js b/previews/PR379/search_index.js new file mode 100644 index 000000000..e965c2373 --- /dev/null +++ b/previews/PR379/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\nif !(@isdefined parsed_args)\n include(\"cli_options.jl\")\n parsed_args = parse_commandline(argparse_settings())\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"modify parsed args for fast testing from REPL #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if isinteractive()\n parsed_args[\"surface_setup\"] = \"PrescribedSurface\" #hide # necessary to stop Atmos from calculating its own surface fluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"parsedargs[\"dtsave_restart\"] = \"5days\" #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" parsed_args[\"job_id\"] = \"interactive_debug_run\"\n parsed_args[\"monthly_checkpoint\"] = true\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nif !(@isdefined FT)\n const FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nend\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\nmonthly_checkpoint = parsed_args[\"monthly_checkpoint\"]\nrestart_dir = parsed_args[\"restart_dir\"]\nrestart_t = Int(parsed_args[\"restart_t\"])\n\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# user-specified diagnostics\ninclude(\"user_io/user_diagnostics.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"components/atmosphere/climaatmos_init.jl\")\natmos_sim = atmos_init(FT, parsed_args);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"components/slab_utils.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/slab_seaice_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation, :toa, :T_sfc),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name == \"slabplanet\" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks =\n (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n parsed_args,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend\nClimaComms.barrier(comms_ctx)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = CombinedAtmosGrid()","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes on the atmos grid, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\ncompute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit!(atmos_sim) # sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes, and sends them to surface models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs;\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims;\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n update_field!(\n ocean_sim,\n Val(:surface_temperature),\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),\n )\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface)) # TODO: change to SIC\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"accumulate_diagnostics!(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # save and reset monthly averages","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"save_diagnostics(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\n compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: computeandsendpartitionedturbulent_fluxes!(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#energy-check-plots","page":"AMIP Driver","title":"energy check plots","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if !isnothing(cs.conservationchecks) && cs.mode.name == \"slabplanet\" @info \"Conservation Check Plots\" plotglobalconservation( cs.conservationchecks.energy, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, \"totalenergybucket.png\"), figname2 = joinpath(COUPLERARTIFACTSDIR, \"totalenergylogbucket.png\"), ) plotglobalconservation( cs.conservationchecks.water, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, \"totalwaterbucket.png\"), figname2 = joinpath(COUPLERARTIFACTSDIR, \"totalwaterlog_bucket.png\"), ) end","category":"page"},{"location":"generated/amip/coupler_driver_modular/#sample-animations","page":"AMIP Driver","title":"sample animations","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if !isdistributed && parsedargs[\"anim\"] @info \"Animations\" include(\"userio/vizexplorer.jl\") plotanim(cs, COUPLERARTIFACTS_DIR) end","category":"page"},{"location":"generated/amip/coupler_driver_modular/#plotting-AMIP-results","page":"AMIP Driver","title":"plotting AMIP results","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if cs.mode.name == \"amip\" @info \"AMIP plots\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"## ClimaESM\ninclude(\"user_io/amip_visualizer.jl\")\npost_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa = (:regrid, :horizontal_slice),\n precipitation = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n)\n\nplot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n)\namip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n)\n\n## NCEP reanalysis\n@info \"NCEP plots\"\ninclude(\"user_io/ncep_visualizer.jl\")\nncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_slice,),\n precipitation = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n)\nncep_plot_spec = plot_spec\nncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"end","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedAtmosGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedComponentModelGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid\n ClimaCoupler.FluxCalculator.CombinedAtmosGrid\n ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","text":"PartitionedComponentModelGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedAtmosGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedAtmosGrid","text":"CombinedAtmosGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","text":"compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","text":"compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR379/siteinfo.js b/previews/PR379/siteinfo.js new file mode 100644 index 000000000..baafa0e83 --- /dev/null +++ b/previews/PR379/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR379"; diff --git a/previews/PR379/testhelper/index.html b/previews/PR379/testhelper/index.html new file mode 100644 index 000000000..617c3ff8b --- /dev/null +++ b/previews/PR379/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                            TestHelper

                            This module defines helper functions, objects, and constants to be used by various files in the test folder.

                            TestHelper API

                            ClimaCoupler.TestHelper.create_spaceFunction
                            create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                            +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                            Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                            Arguments

                            • FT: [DataType] Float type
                            • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                            • R: [FT] radius of the sphere underlying space.
                            • ne: [Integer] number of elements used in the space's mesh.
                            • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                            • nz: [Integer] number of vertical elements
                            source
                            ClimaCoupler.TestHelper.gen_ncdataFunction
                            gen_ncdata(FT, path, varname, val)

                            Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                            Arguments

                            • FT: [DataType] Float type.
                            • path: [String] location to store output datafile.
                            • varname: [Symbol] variable name.
                            • val: [FT] value to store as varname at all indices.
                            source
                            diff --git a/previews/PR379/timemanager/index.html b/previews/PR379/timemanager/index.html new file mode 100644 index 000000000..03cde3885 --- /dev/null +++ b/previews/PR379/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                            TimeManager

                            This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                            TimeManager API

                            ClimaCoupler.TimeManager.current_dateFunction
                            current_date(cs::CoupledSimulation, t::Int)

                            Return the model date at the current timestep.

                            Arguments

                            • cs: [CoupledSimulation] containing info about the simulation
                            • t: [Real] number of seconds since simulation began
                            source
                            ClimaCoupler.TimeManager.trigger_callbackFunction
                            trigger_callback(cs, ::Monthly)

                            Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                            Arguments

                            • cs: [CoupledSimulation] containing info about the simulation
                            source
                            Missing docstring.

                            Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                            diff --git a/previews/PR379/timestepping/index.html b/previews/PR379/timestepping/index.html new file mode 100644 index 000000000..48f915127 --- /dev/null +++ b/previews/PR379/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                            Coupled Simulations & Timestepping

                            ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                            Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                            • step!: advances the component model in time
                            • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                            • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                            ClimaCoupler.run!Function
                            run!(::CoupledSimulation)

                            A simple outer timestepping loop for coupled system runs.

                            This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                            source
                            ClimaCoupler.step!Function
                            step!(sim, dt)

                            Advances a simulation sim by dt.

                            Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                            source
                            ClimaCoupler.coupler_push!Function
                            coupler_push!(coupler::CouplerState, model)

                            Update coupler with fields retrieved from the coupler.

                            coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                            source
                            ClimaCoupler.coupler_pull!Function
                            coupler_pull!(model, coupler::CouplerState)

                            Update model with fields retrieved from the coupler.

                            coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                            source
                            diff --git a/previews/PR379/utilities/index.html b/previews/PR379/utilities/index.html new file mode 100644 index 000000000..9fcb78045 --- /dev/null +++ b/previews/PR379/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                            Utilities

                            This module contains functions, objects, and constants used by various modules in the coupler.

                            Utilities API

                            Missing docstring.

                            Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                            ClimaCoupler.Utilities.swap_space!Function
                            swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                            Remap the values of a field onto a new space.

                            Arguments

                            • field_in: [Fields.Field] to be remapped to new space.
                            • field_out: [Fields.Field] to remap field_in to.
                            source
                            diff --git a/previews/PR383/assets/documenter.js b/previews/PR383/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR383/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR383/assets/logo.svg b/previews/PR383/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR383/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR383/assets/search.js b/previews/PR383/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR383/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                          • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR383/assets/themes/documenter-dark.css b/previews/PR383/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR383/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR383/assets/themes/documenter-light.css b/previews/PR383/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR383/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR383/assets/themeswap.js b/previews/PR383/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR383/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR383/assets/warner.js b/previews/PR383/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR383/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                            Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR383/bcreader/index.html b/previews/PR383/bcreader/index.html new file mode 100644 index 000000000..a822a3de1 --- /dev/null +++ b/previews/PR383/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                            BCReader

                            This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                            BCReader API

                            ClimaCoupler.BCReader.BCFileInfoType
                            BCFileInfo

                            Stores information specific to each boundary condition from a file and each variable.

                            Inputs:

                            • bcfile_dir::b # directory of the BC file
                            • comms_ctx::X # communication context used for MPI
                            • hdoutfileroot::S # filename root for regridded data
                            • varname::V # name of the variable
                            • all_dates::D # vector of all dates contained in the original data file
                            • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                            • scaling_function::O # function that scales, offsets or transforms the raw variable
                            • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                            • segment_idx::Vector{Int} # index of the monthly data in the file
                            • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                            • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                            • interpolate_daily::Bool # switch to trigger daily interpolation
                            source
                            ClimaCoupler.BCReader.bcfile_info_initFunction
                            bcfile_info_init(
                            +    FT,
                            +    bcfile_dir,
                            +    datafile_rll,
                            +    varname,
                            +    boundary_space,
                            +    comms_ctx;
                            +    interpolate_daily = false,
                            +    segment_idx0 = nothing,
                            +    scaling_function = no_scaling,
                            +    land_fraction = nothing,
                            +    date0 = nothing,
                            +    mono = true,
                            +)

                            Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                            Arguments

                            • FT: [DataType] Float type.
                            • bcfile_dir: [String] directory the BC file is stored in.
                            • datafile_rll: [String] file containing data to regrid.
                            • varname: [String] name of the variable to be regridded.
                            • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                            • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                            • interpolate_daily: [Bool] switch to trigger daily interpolation.
                            • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                            • scaling function: [Function] scales, offsets or transforms varname.
                            • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                            • date0: [Dates.DateTime] start date of the file data.
                            • mono: [Bool] flag for monotone remapping of datafile_rll.

                            Returns

                            • BCFileInfo
                            source
                            ClimaCoupler.BCReader.update_midmonth_data!Function
                            update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                            Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                            Arguments

                            • date: [Dates.DateTime] start date for data.
                            • bcf_info: [BCFileInfo] containing boundary condition data.
                            source
                            ClimaCoupler.BCReader.next_date_in_fileFunction
                            next_date_in_file(bcf_info)

                            Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                            Arguments

                            • bcf_info: [BCFileInfo] containing the date information.

                            Returns

                            • Dates.DateTime
                            source
                            ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                            interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                            Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                            Arguments

                            • date: [Dates.DateTime] start date for data.
                            • bcf_info: [BCFileInfo] contains fields to be interpolated.

                            Returns

                            • Fields.field
                            source

                            BCReader Internal Functions

                            ClimaCoupler.BCReader.no_scalingFunction
                            no_scaling(field, bcf_info)

                            Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                            Arguments

                            • field: [Fields.Field] contains the values to be remapped.
                            • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                            source
                            ClimaCoupler.BCReader.interpolFunction
                            interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                            Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                            Arguments

                            • f1: [FT] first value to be interpolated (f(t1) = f1).
                            • f2: [FT] second value to be interpolated.
                            • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                            • Δt_t2t1: [FT] time between t1 and t2.

                            Returns

                            • FT
                            source
                            diff --git a/previews/PR383/checkpointer/index.html b/previews/PR383/checkpointer/index.html new file mode 100644 index 000000000..41f4a5979 --- /dev/null +++ b/previews/PR383/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

                            Checkpointer

                            This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

                            Checkpointer API

                            ClimaCoupler.Checkpointer.get_model_state_vectorFunction
                            get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

                            Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

                            source
                            ClimaCoupler.Checkpointer.restart_model_state!Function
                            restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

                            Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

                            source
                            ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
                            checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

                            Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

                            source
                            diff --git a/previews/PR383/conservation/index.html b/previews/PR383/conservation/index.html new file mode 100644 index 000000000..d0b47a11d --- /dev/null +++ b/previews/PR383/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                            Conservation Checks

                            If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                            Only energy and water are currently implemented.

                            Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                            Coupler Object API

                            ClimaCoupler.ConservationChecker.check_conservation!Function
                            check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                            itertes over all specified conservation checks.

                            source
                                check_conservation!(
                            +    cc::EnergyConservationCheck,
                            +    coupler_sim,
                            +    get_slab_energy,
                            +    get_land_energy,
                            +    )

                            computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                            TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                            source
                            check_conservation!(
                            +cc::WaterConservationCheck,
                            +coupler_sim,
                            +get_slab_energy,
                            +get_land_energy,
                            +)

                            computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                            Note: in the future this should not use push!.

                            source
                            ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                            plot_global_conservation(
                            +    cc::EnergyConservationCheck,
                            +    coupler_sim::CoupledSimulation;
                            +    figname1 = "total_energy.png",
                            +    figname2 = "total_energy_log.png",
                            +)

                            Creates two plots of the globally integrated quantity (energy, $\rho e$):

                            1. global quantity of each model component as a function of time,

                            relative to the initial value;

                            1. fractional change in the sum of all components over time on a log scale.
                            source
                            plot_global_conservation(
                            +    cc::WaterConservationCheck,
                            +    coupler_sim::CoupledSimulation;
                            +    figname1 = "total_energy.png",
                            +    figname2 = "total_energy_log.png",
                            +)

                            Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                            1. global quantity of each model component as a function of time,

                            relative to the initial value;

                            1. fractional change in the sum of all components over time on a log scale.
                            source
                            diff --git a/previews/PR383/couplerstate/index.html b/previews/PR383/couplerstate/index.html new file mode 100644 index 000000000..bffb18c02 --- /dev/null +++ b/previews/PR383/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                            Coupler State

                            The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                            The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                            Coupler Object API

                            ClimaCoupler.CouplerStateType
                            CouplerState()

                            Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                            A field is exported by one component and imported by one or more other components.

                            source
                            ClimaCoupler.coupler_add_field!Function
                            coupler_add_field!(
                            +        coupler::CouplerState,
                            +        fieldname::Symbol,
                            +        fieldvalue,
                            +    )

                            Add a field to the coupler that is accessible with key fieldname.

                            Arguments

                            • coupler: coupler object the field is added to.
                            • fieldname: key to access the field in the coupler.
                            • fieldvalue: data array of field values.
                            source
                            ClimaCoupler.coupler_getFunction
                            coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                            Retrieve data array corresponding to fieldname.

                            If a target_sim is passed, the field is remapped to that simulation's boundary space.

                            source
                            diff --git a/previews/PR383/diagnostics/index.html b/previews/PR383/diagnostics/index.html new file mode 100644 index 000000000..3cfb06030 --- /dev/null +++ b/previews/PR383/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                            Diagnostics

                            This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                            Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                            Diagnostics API

                            Missing docstring.

                            Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                            ClimaCoupler.Diagnostics.get_varFunction
                            get_var(cs::CoupledSimulation, x)

                            Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                            Example:

                            getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                            source
                            ClimaCoupler.Diagnostics.save_diagnosticsFunction
                            save_diagnostics(cs::CoupledSimulation)
                            +
                            +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                            Saves all entries in dg in separate HDF5 files per variable in output_dir.

                            source

                            Diagnostics Internal Functions

                            Missing docstring.

                            Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                            ClimaCoupler.Diagnostics.operationFunction
                            operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                            Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                            source
                            operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                            Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                            source
                            ClimaCoupler.Diagnostics.pre_saveFunction
                            pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                            Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                            source
                            pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                            Collects variables and performs all specified operations before saving the snapshot diagnostics.

                            source
                            diff --git a/previews/PR383/fieldexchanger/index.html b/previews/PR383/fieldexchanger/index.html new file mode 100644 index 000000000..8fe5529ca --- /dev/null +++ b/previews/PR383/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                            FieldExchanger

                            This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                            The FieldExchanger needs to populate the coupler with

                            • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                            • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                            The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                            • AtmosModelSimulation: albedo, surface_temperature
                              • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                            • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                            If an update_field! function is not defined for a particular component model, it will be ignored.

                            Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                            FieldExchanger API

                            ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                            import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                            Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                            Arguments

                            • csf: [NamedTuple] containing coupler fields.
                            • model_sims: [NamedTuple] containing ComponentModelSimulations.
                            • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                            • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                            source
                            ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                            import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                            Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                            Arguments

                            • csf: [NamedTuple] containing coupler fields.
                            • model_sims: [NamedTuple] containing ComponentModelSimulations.
                            • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                            • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                            source
                            ClimaCoupler.FieldExchanger.update_model_sims!Function
                            update_model_sims!(model_sims, csf, turbulent_fluxes)

                            Iterates update_sim! over all component model simulations saved in cs.model_sims.

                            Arguments

                            • model_sims: [NamedTuple] containing ComponentModelSimulations.
                            • csf: [NamedTuple] containing coupler fields.
                            • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                            source
                            ClimaCoupler.FieldExchanger.update_sim!Function
                            update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                            Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                            Arguments

                            • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                            • csf: [NamedTuple] containing coupler fields.
                            source
                            update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                            Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                            Arguments

                            • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                            • csf: [NamedTuple] containing coupler fields.
                            source
                            update_sim!(::SurfaceStub, csf, area_fraction)

                            The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                            source
                            ClimaCoupler.FieldExchanger.step_model_sims!Function
                            step_model_sims!(model_sims, t)

                            Iterates step! over all component model simulations saved in cs.model_sims.

                            Arguments

                            • model_sims: [NamedTuple] containing ComponentModelSimulations.
                            • t: [AbstractFloat] denoting the simulation time.
                            source

                            FieldExchanger Internal Functions

                            CommonSolve.step!Function
                            step!(::SurfaceStub, t)

                            The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                            source
                            SciMLBase.reinit!Function
                            reinit!(cs::SurfaceStub)

                            The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                            source
                            diff --git a/previews/PR383/fluxcalculator/index.html b/previews/PR383/fluxcalculator/index.html new file mode 100644 index 000000000..4fc27d6a3 --- /dev/null +++ b/previews/PR383/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                            FluxCalculator

                            This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                            Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                            1. Combined fluxes (called with CombinedAtmosGrid())
                            • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                            1. Partitioned fluxes (called with PartitionedComponentModelGrid())
                            • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)

                            FluxCalculator API

                            ClimaCoupler.FluxCalculator.CombinedAtmosGridType
                            CombinedAtmosGrid <: TurbulentFluxPartition

                            A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                            source
                            ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!Function
                            compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                            Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                            Arguments

                            • model_sims: [NamedTuple] containing ComponentModelSimulations.
                            • csf: [NamedTuple] containing coupler fields.
                            • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                            source
                            ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!Function
                            compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                            A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                            Arguments

                            • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                            • csf: [NamedTuple] containing coupler fields.

                            Example:

                            function compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                            +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                            +end
                            source
                            diff --git a/previews/PR383/generated/amip/coupler_driver_modular/index.html b/previews/PR383/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..623f7c25a --- /dev/null +++ b/previews/PR383/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,412 @@ + +AMIP Driver · ClimaCoupler.jl

                            AMIP Driver

                            Overview

                            AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                            • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                            • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                            For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                            This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                            Start Up

                            Before starting Julia, ensure your environment is properly set up:

                            module purge
                            +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                            +
                            +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                            +export JUlIA_MPI_BINARY="system"
                            +export JULIA_HDF5_PATH=""

                            Next instantiate/build all packages listed in Manifest.toml:

                            julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                            +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                            The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                            julia --project --threads 8

                            Initialization

                            Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                            import SciMLBase: step!, reinit!
                            +using OrdinaryDiffEq
                            +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                            +using LinearAlgebra
                            +import Test: @test
                            +using Dates
                            +using UnPack
                            +using Plots
                            +using Statistics: mean
                            +
                            +using ClimaCore.Utilities: half, PlusHalf
                            +using ClimaCore: InputOutput, Fields
                            +import ClimaCore.Spaces as Spaces
                            +
                            +if !(@isdefined parsed_args)
                            +    include("cli_options.jl")
                            +    parsed_args = parse_commandline(argparse_settings())
                            +end

                            modify parsed args for fast testing from REPL #hide

                            if isinteractive()
                            +    parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes

                            parsedargs["dtsave_restart"] = "5days" #hide

                                parsed_args["job_id"] = "interactive_debug_run"
                            +    parsed_args["monthly_checkpoint"] = true
                            +end
                            +
                            +# read in some parsed command line arguments
                            +mode_name = parsed_args["mode_name"]
                            +run_name = parsed_args["run_name"]
                            +energy_check = parsed_args["energy_check"]
                            +if !(@isdefined FT)
                            +    const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                            +end
                            +land_sim_name = "bucket"
                            +t_end = Int(time_to_seconds(parsed_args["t_end"]))
                            +tspan = (Int(0), t_end)
                            +Δt_cpl = Int(parsed_args["dt_cpl"])
                            +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                            +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                            +mono_surface = parsed_args["mono_surface"]
                            +monthly_checkpoint = parsed_args["monthly_checkpoint"]
                            +restart_dir = parsed_args["restart_dir"]
                            +restart_t = Int(parsed_args["restart_t"])
                            +
                            +import ClimaCoupler
                            +import ClimaCoupler.Regridder
                            +import ClimaCoupler.Regridder:
                            +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                            +import ClimaCoupler.ConservationChecker:
                            +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                            +import ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!
                            +import ClimaCoupler.BCReader:
                            +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                            +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                            +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                            +import ClimaCoupler.PostProcessor: postprocess
                            +
                            +import ClimaCoupler.Interfacer:
                            +    AtmosModelSimulation,
                            +    SurfaceModelSimulation,
                            +    SurfaceStub,
                            +    SeaIceModelSimulation,
                            +    LandModelSimulation,
                            +    OceanModelSimulation,
                            +    get_field,
                            +    update_field!,
                            +    update_sim!
                            +import ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!
                            +import ClimaCoupler.FieldExchanger:
                            +    import_atmos_fields!,
                            +    import_combined_surface_fields!,
                            +    update_sim!,
                            +    update_model_sims!,
                            +    reinit_model_sims!,
                            +    step_model_sims!
                            +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
                            +
                            +pkg_dir = pkgdir(ClimaCoupler)
                            +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                            +mkpath(COUPLER_OUTPUT_DIR)
                            +
                            +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                            +mkpath(REGRID_DIR)
                            +
                            +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
                            +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
                            +
                            +@info COUPLER_OUTPUT_DIR
                            +@info parsed_args
                            +
                            +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration
                            +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                            +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                            +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                            +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                            +
                            +# user-specified diagnostics
                            +include("user_io/user_diagnostics.jl")

                            Component Model Initialization

                            Here we set initial and boundary conditions for each component model.

                            Atmosphere

                            This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                            # init atmos model component
                            +include("components/atmosphere/climaatmos_init.jl")
                            +atmos_sim = atmos_init(FT, parsed_args);
                            +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                            We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                            # init a 2D bounary space at the surface
                            +boundary_space = atmos_sim.domain.face_space.horizontal_space

                            init land-sea fraction

                            land_fraction =
                            +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)
                            +
                            +# init surface (slab) model components
                            +include("components/slab_utils.jl")
                            +include("components/land/bucket_init.jl")
                            +include("components/land/bucket_utils.jl")
                            +include("components/ocean/slab_ocean_init.jl")
                            +include("components/ocean/slab_seaice_init.jl")

                            Land

                            We use ClimaLSM.jl's bucket model.

                            land_sim = bucket_init(
                            +    FT,
                            +    FT.(tspan),
                            +    parsed_args["config"],
                            +    parsed_args["albedo_from_file"],
                            +    comms_ctx,
                            +    REGRID_DIR;
                            +    dt = FT(Δt_cpl),
                            +    space = boundary_space,
                            +    saveat = FT(saveat),
                            +    area_fraction = land_fraction,
                            +)

                            Ocean and Sea Ice

                            In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                            In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                            @info mode_name
                            +if mode_name == "amip"
                            +    @info "AMIP boundary conditions - do not expect energy conservation"
                            +
                            +    # ocean
                            +    SST_info = bcfile_info_init(
                            +        FT,
                            +        REGRID_DIR,
                            +        sst_data,
                            +        "SST",
                            +        boundary_space,
                            +        comms_ctx,
                            +        interpolate_daily = true,
                            +        scaling_function = clean_sst, ## convert to Kelvin
                            +        land_fraction = land_fraction,
                            +        date0 = date0,
                            +        mono = mono_surface,
                            +    )
                            +
                            +    update_midmonth_data!(date0, SST_info)
                            +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                            +    ocean_sim = SurfaceStub((;
                            +        T_sfc = SST_init,
                            +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                            +        z0m = FT(1e-3),
                            +        z0b = FT(1e-3),
                            +        beta = FT(1),
                            +        α = FT(0.06),
                            +        area_fraction = (FT(1) .- land_fraction),
                            +        phase = TD.Liquid(),
                            +        thermo_params = thermo_params,
                            +    ))
                            +    # sea ice
                            +    SIC_info = bcfile_info_init(
                            +        FT,
                            +        REGRID_DIR,
                            +        sic_data,
                            +        "SEAICE",
                            +        boundary_space,
                            +        comms_ctx,
                            +        interpolate_daily = true,
                            +        scaling_function = clean_sic, ## convert to fraction
                            +        land_fraction = land_fraction,
                            +        date0 = date0,
                            +        mono = mono_surface,
                            +    )
                            +    update_midmonth_data!(date0, SIC_info)
                            +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                            +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                            +    ice_sim = ice_init(
                            +        FT;
                            +        tspan = tspan,
                            +        dt = Δt_cpl,
                            +        space = boundary_space,
                            +        saveat = saveat,
                            +        area_fraction = ice_fraction,
                            +        thermo_params = thermo_params,
                            +    )
                            +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                            +
                            +elseif mode_name == "slabplanet"
                            +    # ocean
                            +    ocean_sim = ocean_init(
                            +        FT;
                            +        tspan = tspan,
                            +        dt = Δt_cpl,
                            +        space = boundary_space,
                            +        saveat = saveat,
                            +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                            +        thermo_params = thermo_params,
                            +    )
                            +
                            +    # sea ice (here set to zero area coverage)
                            +    ice_sim = SurfaceStub((;
                            +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                            +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                            +        z0m = FT(0),
                            +        z0b = FT(0),
                            +        beta = FT(1),
                            +        α = FT(1),
                            +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                            +        phase = TD.Ice(),
                            +        thermo_params = thermo_params,
                            +    ))
                            +
                            +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                            +end

                            Coupler Initialization

                            The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                            # coupler exchange fields
                            +coupler_field_names = (
                            +    :T_S,
                            +    :z0m_S,
                            +    :z0b_S,
                            +    :ρ_sfc,
                            +    :q_sfc,
                            +    :albedo,
                            +    :beta,
                            +    :F_turb_energy,
                            +    :F_turb_moisture,
                            +    :F_radiative,
                            +    :P_liq,
                            +    :P_snow,
                            +    :F_radiative_TOA,
                            +    :P_net,
                            +)
                            +coupler_fields =
                            +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                            +
                            +# model simulations
                            +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                            +
                            +# dates
                            +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                            Online Diagnostics

                            User can write custom diagnostics in the user_diagnostics.jl.

                            monthly_3d_diags = init_diagnostics(
                            +    (:T, :u, :q_tot),
                            +    atmos_sim.domain.center_space;
                            +    save = Monthly(),
                            +    operations = (; accumulate = TimeMean([Int(0)])),
                            +    output_dir = COUPLER_OUTPUT_DIR,
                            +    name_tag = "monthly_mean_3d_",
                            +)
                            +
                            +monthly_2d_diags = init_diagnostics(
                            +    (:precipitation, :toa, :T_sfc),
                            +    boundary_space;
                            +    save = Monthly(),
                            +    operations = (; accumulate = TimeMean([Int(0)])),
                            +    output_dir = COUPLER_OUTPUT_DIR,
                            +    name_tag = "monthly_mean_2d_",
                            +)
                            +
                            +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                            Initialize Conservation Checks

                            # init conservation info collector
                            +conservation_checks = nothing
                            +if energy_check
                            +    @assert(
                            +        mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),
                            +        "Only non-distributed slabplanet allowable for energy_check"
                            +    )
                            +    conservation_checks =
                            +        (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))
                            +end
                            +
                            +# coupler simulation
                            +cs = CoupledSimulation{FT}(
                            +    comms_ctx,
                            +    dates,
                            +    boundary_space,
                            +    coupler_fields,
                            +    parsed_args,
                            +    conservation_checks,
                            +    [tspan[1], tspan[2]],
                            +    atmos_sim.integrator.t,
                            +    Δt_cpl,
                            +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                            +    model_sims,
                            +    mode_specifics,
                            +    diagnostics,
                            +);

                            Restart component model states if specified

                            if restart_dir !== "unspecified"
                            +    for sim in cs.model_sims
                            +        if get_model_state_vector(sim) !== nothing
                            +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
                            +        end
                            +    end
                            +end
                            +ClimaComms.barrier(comms_ctx)

                            Initialize Component Model Exchange

                            turbulent_fluxes = CombinedAtmosGrid()
                            1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                            update_surface_fractions!(cs)
                            +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                            +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                            +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                            1. each component model calculates its own vapor specific humidity (q_sfc)

                            TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                            step!(land_sim, Δt_cpl)
                            +step!(ocean_sim, Δt_cpl)
                            +step!(ice_sim, Δt_cpl)
                            1. coupler re-imports updated surface fields and calculates turbulent fluxes on the atmos grid, while updating atmos sfc_conditions
                            import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                            +compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)
                            1. given the new sfc_conditions, atmos calls the radiative flux callback
                            reinit!(atmos_sim) # sets a nonzero radiation flux
                            1. coupler re-imports updated atmos fluxes, and sends them to surface models
                            import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                            +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                            Coupling Loop

                            function solve_coupler!(cs)
                            +    @info "Starting coupling loop"
                            +
                            +    @unpack model_sims, Δt_cpl, tspan = cs;
                            +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims;
                            +
                            +    # step in time
                            +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                            +
                            +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                            +
                            +        # print date on the first of month
                            +        if cs.dates.date[1] >= cs.dates.date1[1]
                            +            @show(cs.dates.date[1])
                            +        end
                            +
                            +        if cs.mode.name == "amip"
                            +
                            +            # monthly read of boundary condition data for SST and SIC
                            +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                            +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                            +            end
                            +            update_field!(
                            +                ocean_sim,
                            +                Val(:surface_temperature),
                            +                interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),
                            +            )
                            +
                            +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                            +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                            +            end
                            +            interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                            +            update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface))  # TODO: change to SIC
                            +
                            +            # calculate and accumulate diagnostics at each timestep
                            +            ClimaComms.barrier(comms_ctx)

                            accumulate_diagnostics!(cs)

                                        # save and reset monthly averages

                            save_diagnostics(cs)

                                    end
                            +
                            +        # compute global energy
                            +        !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing
                            +
                            +        # run component models sequentially for one coupling timestep (Δt_cpl)
                            +        ClimaComms.barrier(comms_ctx)
                            +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                            +
                            +        # step sims
                            +        step_model_sims!(cs.model_sims, t)
                            +
                            +        # exchange combined fields and (if specified) calculate fluxes using combined states
                            +        update_surface_fractions!(cs)
                            +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                            +        compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)
                            +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent

                            TODO: computeandsendpartitionedturbulent_fluxes!(cs)

                                    # monthly callbacks
                            +        if trigger_callback(cs, Monthly())
                            +            # step to the next calendar month
                            +            cs.dates.date1[1] += Dates.Month(1)
                            +            # checkpoint model state
                            +            if monthly_checkpoint
                            +                for sim in cs.model_sims
                            +                    if get_model_state_vector(sim) !== nothing
                            +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
                            +                    end
                            +                end
                            +            end
                            +        end
                            +
                            +    end
                            +    @show walltime
                            +
                            +    return cs
                            +end
                            +
                            +
                            +# run the coupled simulation
                            +solve_coupler!(cs);

                            Postprocessing

                            Currently all postprocessing is performed using the root process only.

                            if ClimaComms.iamroot(comms_ctx)

                            energy check plots

                            if !isnothing(cs.conservationchecks) && cs.mode.name == "slabplanet" @info "Conservation Check Plots" plotglobalconservation( cs.conservationchecks.energy, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, "totalenergybucket.png"), figname2 = joinpath(COUPLERARTIFACTSDIR, "totalenergylogbucket.png"), ) plotglobalconservation( cs.conservationchecks.water, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, "totalwaterbucket.png"), figname2 = joinpath(COUPLERARTIFACTSDIR, "totalwaterlog_bucket.png"), ) end

                            sample animations

                            if !isdistributed && parsedargs["anim"] @info "Animations" include("userio/vizexplorer.jl") plotanim(cs, COUPLERARTIFACTS_DIR) end

                            plotting AMIP results

                            if cs.mode.name == "amip" @info "AMIP plots"

                            ## ClimaESM
                            +include("user_io/amip_visualizer.jl")
                            +post_spec = (;
                            +    T = (:regrid, :zonal_mean),
                            +    u = (:regrid, :zonal_mean),
                            +    q_tot = (:regrid, :zonal_mean),
                            +    toa = (:regrid, :horizontal_slice),
                            +    precipitation = (:regrid, :horizontal_slice),
                            +    T_sfc = (:regrid, :horizontal_slice),
                            +)
                            +
                            +plot_spec = (;
                            +    T = (; clims = (190, 320), units = "K"),
                            +    u = (; clims = (-50, 50), units = "m/s"),
                            +    q_tot = (; clims = (0, 50), units = "g/kg"),
                            +    toa = (; clims = (-250, 210), units = "W/m^2"),
                            +    precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                            +    T_sfc = (clims = (225, 310), units = "K"),
                            +)
                            +amip_paperplots(
                            +    post_spec,
                            +    plot_spec,
                            +    COUPLER_OUTPUT_DIR,
                            +    files_root = ".monthly",
                            +    output_dir = COUPLER_ARTIFACTS_DIR,
                            +)
                            +
                            +## NCEP reanalysis
                            +@info "NCEP plots"
                            +include("user_io/ncep_visualizer.jl")
                            +ncep_post_spec = (;
                            +    T = (:zonal_mean,),
                            +    u = (:zonal_mean,),
                            +    q_tot = (:zonal_mean,),
                            +    toa = (:horizontal_slice,),
                            +    precipitation = (:horizontal_slice,),
                            +    T_sfc = (:horizontal_slice,),
                            +)
                            +ncep_plot_spec = plot_spec
                            +ncep_paperplots(
                            +    ncep_post_spec,
                            +    ncep_plot_spec,
                            +    COUPLER_OUTPUT_DIR,
                            +    output_dir = COUPLER_ARTIFACTS_DIR,
                            +    month_date = cs.dates.date[1],
                            +) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)

                            end

                                # clean up
                            +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                            +end

                            This page was generated using Literate.jl.

                            diff --git a/previews/PR383/generated/sea_breeze/atmos_rhs/index.html b/previews/PR383/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..46f55a79f --- /dev/null +++ b/previews/PR383/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                            Atmospheric Model

                            Atmosphere Conservation Equations

                            Density:

                            \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                            Momentum (flux form):

                            \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                            Potential temperature:

                            \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                            Total Energy (possibly replace potential temperature equation with total energy conservation):

                            \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                            where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                            Tracer transport:

                            \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                            Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                            \[\rho\tau = -2\rho\nu\nabla u.\]

                            Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                            \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                            with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                            Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                            Consider components of the viscous stress tensor in three dimensions:

                            \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                            Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                            \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                            Which can be interpreted as, for horizontal-momentum:

                            1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                            2. Vertical divergence of vertical gradients of cell-centered variables $u$
                            3. Vertical divergence of horizontal gradients of cell-face variables $w$

                            and for vertical-momentum, as:

                            1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                            2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                            3. Vertical divergence of vertical gradients of cell-face variables $w$.

                            Model Code

                            push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                            +
                            +using Test
                            +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                            +
                            +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                            +using ClimaCore.Geometry
                            +using ClimaCore.Utilities: PlusHalf
                            +
                            +using Logging: global_logger
                            +using TerminalLoggers: TerminalLogger
                            +global_logger(TerminalLogger())
                            +
                            +using ClimaCoupler
                            +
                            +# set up function space
                            +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                            +    FT = Float64
                            +    vertdomain = Domains.IntervalDomain(
                            +        Geometry.ZPoint{FT}(zlim[1]),
                            +        Geometry.ZPoint{FT}(zlim[2]);
                            +        boundary_tags = (:bottom, :top),
                            +    )
                            +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                            +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                            +
                            +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                            +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                            +    horztopology = Topologies.IntervalTopology(horzmesh)
                            +
                            +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                            +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                            +
                            +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                            +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                            +    return (hv_center_space, hv_face_space)
                            +end
                            +
                            +function pressure(ρθ)
                            +    if ρθ >= 0
                            +        return MSLP * (R_d * ρθ / MSLP)^γ
                            +    else
                            +        return NaN
                            +    end
                            +end
                            +
                            +Φ(z) = grav * z
                            +
                            +abstract type BCtag end
                            +struct ZeroFlux <: BCtag end
                            +
                            +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                            +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                            +
                            +function init_sea_breeze_2d(x, z)
                            +    θ₀ = atm_T_ini
                            +    cp_d = C_p
                            +    cv_d = C_v
                            +    p₀ = MSLP
                            +    g = grav
                            +    γ = cp_d / cv_d
                            +    z_c = 100.0
                            +    θ_b = atm_T_ini
                            +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                            +    θ = θ_b + θ_p # potential temperature
                            +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                            +    T = π_exn * θ # temperature
                            +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                            +    ρ = p / R_d / T # density
                            +    ρθ = ρ * θ # potential temperature density
                            +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                            +end
                            +
                            +function atm_rhs!(dY, Y, params, t)
                            +    ρw = Y.ρw
                            +    Yc = Y.Yc
                            +    dYc = dY.Yc
                            +    dρw = dY.ρw
                            +
                            +    center_coords = Fields.coordinate_field(axes(Yc))
                            +
                            +    # spectral horizontal operators
                            +    hdiv = Operators.Divergence()
                            +    hgrad = Operators.Gradient()
                            +    hwdiv = Operators.WeakDivergence()
                            +    hwgrad = Operators.WeakGradient()
                            +
                            +    # vertical FD operators with BC's
                            +    vdivf2c = Operators.DivergenceF2C(
                            +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                            +        top = Operators.SetValue(Geometry.WVector(0.0)),
                            +    )
                            +    vvdivc2f = Operators.DivergenceC2F(
                            +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                            +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                            +    )
                            +    uvdivf2c = Operators.DivergenceF2C(
                            +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                            +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                            +    )
                            +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                            +    Ic = Operators.InterpolateF2C()
                            +    ∂ = Operators.DivergenceF2C(
                            +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                            +        top = Operators.SetValue(Geometry.WVector(0.0)),
                            +    )
                            +    ∂f = Operators.GradientC2F()
                            +    ∂c = Operators.GradientF2C()
                            +    B = Operators.SetBoundaryOperator(
                            +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                            +        top = Operators.SetValue(Geometry.WVector(0.0)),
                            +    )
                            +
                            +    ∇_z_ρθ = Operators.DivergenceF2C(
                            +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                            +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                            +    )
                            +
                            +    uₕ = @. Yc.ρuₕ / Yc.ρ
                            +    w = @. ρw / If(Yc.ρ)
                            +    wc = @. Ic(ρw) / Yc.ρ
                            +    p = @. pressure(Yc.ρθ)
                            +    θ = @. Yc.ρθ / Yc.ρ
                            +    Yfρ = @. If(Yc.ρ)
                            +
                            +    ### HYPERVISCOSITY
                            +    # 1) compute hyperviscosity coefficients
                            +    @. dYc.ρθ = hwdiv(hgrad(θ))
                            +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                            +    @. dρw = hwdiv(hgrad(w))
                            +    Spaces.weighted_dss!(dYc)
                            +    Spaces.weighted_dss!(dρw)
                            +
                            +    κ₄ = 0.0 # m^4/s
                            +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                            +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                            +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                            +
                            +    # density
                            +    @. dYc.ρ = -∂(ρw)
                            +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                            +
                            +    # potential temperature
                            +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                            +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                            +
                            +    # horizontal momentum
                            +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                            +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                            +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                            +
                            +    # vertical momentum
                            +    @. dρw +=
                            +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                            +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                            +    @. dρw -= hdiv(uₕf ⊗ ρw)
                            +
                            +    # DIFFUSION
                            +    κ₂ = 5.0 # m^2/s
                            +    #  1a) horizontal div of horizontal grad of horiz momentun
                            +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                            +    #  1b) vertical div of vertical grad of horiz momentun
                            +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                            +
                            +    #  1c) horizontal div of horizontal grad of vert momentum
                            +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                            +    #  1d) vertical div of vertical grad of vert momentun
                            +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                            +
                            +    #  2a) horizontal div of horizontal grad of potential temperature
                            +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                            +    #  2b) vertical div of vertial grad of potential temperature
                            +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                            +
                            +    Spaces.weighted_dss!(dYc)
                            +    Spaces.weighted_dss!(dρw)
                            +    return dY
                            +end
                            +
                            +# init simulation
                            +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                            +
                            +    # construct domain spaces
                            +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                            +    center_coords = Fields.coordinate_field(hv_center_space)
                            +    face_coords = Fields.coordinate_field(hv_face_space)
                            +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                            +
                            +    # initialize prognostic variables
                            +    Yc = map(center_coords) do coord
                            +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                            +        sea_breeze
                            +    end
                            +
                            +    ρw = map(face_coords) do coord
                            +        Geometry.WVector(0.0)
                            +    end
                            +
                            +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                            +
                            +    # select boundary conditions
                            +    if bc === nothing
                            +        bc = (
                            +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                            +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                            +        )
                            +    end
                            +
                            +    return Y, bc, domain
                            +end
                            +
                            +using OrdinaryDiffEq
                            +function atm_run!(Y, bc, domain)
                            +    dYdt = similar(Y)
                            +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                            +    atm_rhs!(dYdt, Y, params, 0.0)
                            +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                            +    Δt = 0.025
                            +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                            +end

                            Coupled Atmos Wrappers

                            # Atmos Simulation - later to live in ClimaAtmos
                            +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                            +    integrator::Any
                            +end
                            +
                            +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                            +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                            +
                            +    atm_integ = init(
                            +        atm_prob,
                            +        timestepper,
                            +        dt = dt,
                            +        saveat = saveat,
                            +        progress = true,
                            +        progress_message = (dt, u, params, t) -> t,
                            +        callback = callbacks,
                            +    )
                            +
                            +    return AtmosSimulation(atm_integ)
                            +end
                            +
                            +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                            +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                            +end
                            +
                            +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                            +    # reset flux accumulator
                            +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                            +
                            +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                            +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                            +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                            +end

                            Coupled Boundary Conditions

                            The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                            To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                            struct CoupledFlux <: BCtag end
                            +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                            +    # flux calculation
                            +    Yc = Y.Yc
                            +    uₕ = Yc.ρuₕ ./ Yc.ρ
                            +    ρw = Y.ρw
                            +    If2c = Operators.InterpolateF2C()
                            +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                            +    w = If2c.(ρw) ./ Yc.ρ
                            +    cuv = @. Geometry.UWVector(uₕ)
                            +    windspeed = @. norm(cuv)
                            +    windspeed_boundary = Fields.level(windspeed, 1)
                            +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                            +    ρ_boundary = Fields.level(Yc.ρ, 1)
                            +
                            +    # build atmos face fields on surface boundary space to enable broadcasting
                            +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                            +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                            +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                            +
                            +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                            +    dθ = @. θ_boundary - p.T_sfc
                            +    heat_flux = @. -λ * dθ
                            +    @. dY.F_sfc += heat_flux # accumulation
                            +
                            +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                            +end

                            This page was generated using Literate.jl.

                            diff --git a/previews/PR383/generated/sea_breeze/land_rhs/index.html b/previews/PR383/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..96a5d05c3 --- /dev/null +++ b/previews/PR383/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                            Land Model

                            Slab Land ODE

                            For our land component, we solve a simple slab land ODE:

                            \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                            • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                            • and $F_{integ}$ is the integrated surface fluxes in time.

                            Model Code

                            function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                            +    """
                            +    Slab layer equation
                            +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                            +        where
                            +            F_accumulated = F_integrated / Δt_coupler
                            +    """
                            +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                            +    @unpack T_sfc = du
                            +
                            +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                            +end
                            +
                            +# set up domain
                            +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                            +    FT = Float64
                            +
                            +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                            +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                            +    topology = Topologies.IntervalTopology(mesh)
                            +
                            +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                            +    quad = Spaces.Quadratures.GL{npoly + 1}()
                            +    space = Spaces.SpectralElementSpace1D(topology, quad)
                            +
                            +    return space
                            +end
                            +
                            +# init simulation
                            +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                            +
                            +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                            +    space = hspace_1D((xmin, xmax), npoly, helem)
                            +    coords = Fields.coordinate_field(space)
                            +    domain = space
                            +
                            +    # initial condition
                            +    T_sfc = map(coords) do coord
                            +        T_sfc = 273.0
                            +    end
                            +
                            +    # prognostic variable
                            +    Y = Fields.FieldVector(T_sfc = T_sfc)
                            +
                            +    return Y, domain
                            +end

                            Coupled Land Wrappers

                            # Land Simulation - later to live in ClimaLSM
                            +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                            +    integrator::Any
                            +end
                            +
                            +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                            +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                            +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                            +    return LandSimulation(lnd_integ)
                            +end
                            +
                            +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                            +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                            +end
                            +
                            +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                            +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                            +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                            +end

                            This page was generated using Literate.jl.

                            diff --git a/previews/PR383/generated/sea_breeze/ocean_rhs/index.html b/previews/PR383/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..9e852cf74 --- /dev/null +++ b/previews/PR383/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                            Ocean Model

                            Slab Ocean ODE

                            For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                            \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                            • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                            • and $F_{integ}$ is the integrated surface fluxes in time.

                            Model Code

                            function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                            +    """
                            +    Slab layer equation
                            +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                            +        where
                            +            F_accumulated = F_integrated / Δt_coupler
                            +    """
                            +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                            +    @unpack T_sfc = du
                            +
                            +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                            +end
                            +
                            +# set up domain
                            +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                            +    FT = Float64
                            +
                            +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                            +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                            +    topology = Topologies.IntervalTopology(mesh)
                            +
                            +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                            +    quad = Spaces.Quadratures.GL{npoly + 1}()
                            +    space = Spaces.SpectralElementSpace1D(topology, quad)
                            +
                            +    return space
                            +end
                            +
                            +# init simulation
                            +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                            +
                            +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                            +    space = hspace_1D((xmin, xmax), npoly, helem)
                            +    coords = Fields.coordinate_field(space)
                            +    domain = space
                            +
                            +    # initial condition
                            +    T_sfc = map(coords) do coord
                            +        T_sfc = 267.0
                            +    end
                            +
                            +    # prognostic variable
                            +    Y = Fields.FieldVector(T_sfc = T_sfc)
                            +
                            +    return Y, domain
                            +end

                            Coupled Ocean Wrappers

                            # Ocean Simulation - Later to live in Oceananigans
                            +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                            +    integrator::Any
                            +end
                            +
                            +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                            +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                            +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                            +    return OceanSimulation(ocn_integ)
                            +end
                            +
                            +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                            +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                            +end
                            +
                            +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                            +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                            +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                            +end

                            This page was generated using Literate.jl.

                            diff --git a/previews/PR383/generated/sea_breeze/run/index.html b/previews/PR383/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..912e9ab8e --- /dev/null +++ b/previews/PR383/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                            Coupled Sea Breeze

                            Overview

                            This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                            In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                            import ClimaCore.Spaces as Spaces

                            Model Initialization

                            Component Models

                            Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                            In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                            include("atmos_rhs.jl")
                            +include("ocean_rhs.jl")
                            +include("land_rhs.jl")
                            +
                            +# model parameters
                            +const atm_T_ini = FT(270.0)
                            +const MSLP = FT(1e5)
                            +const grav = FT(9.8)
                            +const R_d = FT(287.058)
                            +const γ = FT(1.4)
                            +const C_p = FT(R_d * γ / (γ - 1))
                            +const C_v = FT(R_d / (γ - 1))
                            +const R_m = R_d
                            +cpl_parameters = (
                            +    # atmos parameters
                            +    atm_μ = FT(0.0001), # diffusion coefficient
                            +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                            +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                            +    MSLP = MSLP, # mean sea level pressure
                            +    grav = grav, # gravitational constant
                            +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                            +    γ = γ, # heat capacity ratio
                            +    C_p = C_p, # heat capacity at constant pressure
                            +    C_v = C_v, # heat capacity at constant volume
                            +    R_m = R_m, # moist R, assumed to be dry
                            +    # land slab parameters
                            +    lnd_h = FT(0.5), # depth of slab layer [m]
                            +    lnd_ρ = FT(1500), # density [kg m^-3]
                            +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                            +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                            +    # ocean slab parameters
                            +    ocn_h = FT(0.5), # depth of slab layer [m]
                            +    ocn_ρ = FT(1025), # density [kg m^-3]
                            +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                            +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                            +    # coupling parameters
                            +    C_H = FT(0.0015),
                            +)
                            +
                            +# DSS callback
                            +function make_dss_func()
                            +    function _dss!(x::Fields.Field)
                            +        Spaces.weighted_dss!(x)
                            +    end
                            +    function _dss!(::Any)
                            +        nothing
                            +    end
                            +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                            +    return dss_func
                            +end
                            +dss_func = make_dss_func()
                            +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                            Initialization

                            The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                            Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                            @info "Init Models and Maps"
                            +
                            +t_start, t_end = (0.0, 1.0)
                            +Δt_coupled = 0.1
                            +saveat = 1e2
                            +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                            +
                            +# Initialize Models
                            +atm_Y_default, atm_bc, atm_domain = atm_init(
                            +    xmin = -500,
                            +    xmax = 500,
                            +    zmin = 0,
                            +    zmax = 1000,
                            +    npoly = 4,
                            +    helem = 20,
                            +    velem = 20,
                            +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                            +)
                            +
                            +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                            +
                            +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                            Remapping

                            Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                            atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                            +
                            +maps = (
                            +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                            +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                            +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                            +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                            +)
                            +
                            +# initialize coupling fields
                            +atm_T_sfc =
                            +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                            +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                            +atm_F_sfc = Fields.zeros(atm_boundary)
                            +ocn_F_sfc = Fields.zeros(ocn_domain)
                            +lnd_F_sfc = Fields.zeros(lnd_domain)

                            Simulations

                            Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                            atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                            +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                            +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                            +
                            +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                            +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                            +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                            +
                            +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                            +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                            +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                            Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                            struct AOLCoupledSimulation{
                            +    A <: AtmosSimulation,
                            +    O <: OceanSimulation,
                            +    L <: LandSimulation,
                            +    C <: ClimaCoupler.CouplerState,
                            +} <: ClimaCoupler.AbstractCoupledSimulation
                            +    # Atmosphere Simulation
                            +    atmos::A
                            +    # Ocean Simulation
                            +    ocean::O
                            +    # Land Simulation
                            +    land::L
                            +    # Coupler storage
                            +    coupler::C
                            +end

                            step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                            function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                            +    Δt = t_stop - sim.integrator.t
                            +    step!(sim.integrator, Δt, true)
                            +end

                            The Coupler

                            The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                            After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                            Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                            Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                            \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                            where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                            coupler = CouplerState(Δt_coupled)
                            +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                            +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                            +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                            +for (name, map) in pairs(maps)
                            +    coupler_add_map!(coupler, name, map)
                            +end
                            +
                            +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                            Coupled Time Integration

                            Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                            Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                            Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                            \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                            where $F_{integ}$ has units of $J m^{-2}$.

                            function cpl_run(simulation::AOLCoupledSimulation)
                            +    @info "Run model"
                            +    @unpack atmos, ocean, land, coupler = simulation
                            +    Δt_coupled = coupler.Δt_coupled
                            +    # coupler stepping
                            +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                            +        # Atmos
                            +        coupler_pull!(atmos, coupler)
                            +        step!(atmos, t)
                            +        coupler_push!(coupler, atmos)
                            +
                            +        # Ocean
                            +        coupler_pull!(ocean, coupler)
                            +        step!(ocean, t)
                            +        coupler_push!(coupler, ocean)
                            +
                            +        # Land
                            +        coupler_pull!(land, coupler)
                            +        step!(land, t)
                            +        coupler_push!(coupler, land)
                            +    end
                            +    @info "Simulation Complete"
                            +end
                            +
                            +# Run simulation
                            +cpl_run(sim)

                            References


                            This page was generated using Literate.jl.

                            diff --git a/previews/PR383/images/canvas_coupler.png b/previews/PR383/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 zcmagFbyQSs`v$6lAW9?MAR!DO-6hR{fJjLRNJ|YM4FXDc3?U^*N#`)MGz=l#ISfe4 z(0#`5`(E|^t#dqU?LSz<-p{k|c<#9FYlo^oQ^2`TasSq>TR2LJvd?ebx(mB?3vKTn z2I?0o4{-mjTXeUSWTjuY8*QiGbtl%D{NOexF01G`Y3l0cmalI0NlL#sSIU27cZMXt zI(K*1II&iJZa%$^@ajb5B=aLMHRe4=9sQQKS|%Q7eK5_#vaQN;K*YA;9wt`It-oC_ zKzBG3FE2gLA4%Q$+eOD2Eq0_PA^i8%Vx-KOr79YEjD0dh|F&z)J9?>#G{HN6y+QtHA-*yR3%Ry3ZW6w-Twc+{FPPTnR?_lUy6DBf8X@;d3@IAfK0LM&<>{8N){Fw zd=6BsP>-{b!bzLZ&|@&>UMXAT7G_9U^vCUmBzj;{XRnSVm3XMd`dj|bdO5d33s#td zqcdV^DC5kBXT1glM&$()LmauBoCuVFLy6VZR2%$O;$;|rRq!pWG~PRMVF;iFghWSY zHjU0|PcoUFcWpNz7L8KLsysMND3-;V9J)3{=HTZdC2_G(5zje8i!R?3oG}<`E228ypMEAY*%=u2(pR7rfxY)yS?PE^bTF|FV|9n=~=Kb zRUDp#s1>WLcXjHVx83_Ui;2vE-7_6KMO+W!?Wt{*pFL}?_Or+}nBvjR@T-sdoQLSk z8m2^i-v_|uY0pe$_BB|}lM82G&*!~1u@H6;`@8-v8Ptn)eHqx*GPa?85;{U{lw(Ip z%S5$3YdeLxAjn~~lJ2VlAvknmnZjusonchChrcmDb z+i4H}s%5F+6hw$g=wv^V25n-RU?9WAAN_7Ua8kndkuX#D^?{M04UEa|>FdFj`H@P! za)U88T_eM4ecvnI!R7(gN$pq`ni9^ID`J*1z?>@T(9ryKw|ANZtP^@hx&Yb|T;$Bn z9^E2Tbl#T`4EJ9BTrzSVKnET8Ds69f_@jxt%jr6{tG=5JF9c>2HkwOZDg zsRzpaR?myt%yR`c(+VO*xKsJ>CtQnfrAk7)JaY{^O+pU6ztmDi!{VCT1r+lH?%-fM zCOHLC0z(AQ(w{gt6u(S*_>3#FRp?5*U}szYmKgvc$Y$u zjXktXU{lO{_5Ew}b)^^YliWS)``jdHeFdnq!iV=53lB=e_acA-1FOrQW~qoJRC>XQqLUS=jg+)6m6EJG|w&3UVu@3&i^0 z;xsB$I&$7i1MB*7GWVIq{Z+b{))WS*ic6JPgzw)EC>!?eFa+`1bEoXTZ*3WNs}sp9 z2fkqXiznSCEO>%$z}BxKtnv2~N+=|Q&I-Idz-gEi=Htw@fR`w?4?f?gp-1Jw!D#C1Hk2wJxBZRmy?1LWa%2&vqBkv zOXv9V&f{1k_720BngF*MU`J@|zwMG{d*>l+=!ke}|F<2M`iZi1eb>kj?)@K$h|^F? zzVCZm*yr~Ktanic%6-?N`hTJv2TNY5s6sCmSUpz1`aR<2 zRxt9)`SAJCx?;5DfpiAbza?!YXK`fiK#ClB zf3}H8x;%C^h4xGG^&6%NoFpCDYBEW1<{KRMrvI)OP})|f??5VPQUKx1w?VT5e&Ny4 zMc&9WxytQ5S#mL}Dya6*Q6UFpfyAW6UXx`np{zyZWlAaIP~yMS#}YQ75RvIwc%ZG~ z)&sQ9#(O)Jww7yt8CUZsAAk)}8pt)L^N87(F;3$u!4v@@o zhdTe(zvKNo&)C83(h{%K#hsj-V#B$xz;kondd&chws!GcdvQtOw*X+Roof91_WPoU?^(l;~7%)EKqN&OLG zg<7-v=S?qU1im+Cn~CKf^^L;)wo!vEJTZQa?YzgA;6yhX)4-h)!Qh#A(GFVP7#|{YkN0MWf4Py8i$1 z?*xA-y-s9^B3=r2gMZxy`~ib@W0N6M{g?bl9qWoi`H;RW6Mn7JV*)NNQel@Tz_@tO zYVNgYt~2Bd=)mri#rSqbjvgVw#^c>x&PrEcJ@#gUCU5W6>+c0Gk5kP2fPQKtS9QuC z!_giIP0b&Ai1_m9lMITo&epz8SO!2J|90CK_CE#EPs#;OQXpGphDWL{Jf|BUYmso+ zo7^8zpfx%xV^^qX1TFT9dHuF7s@@aQMDJq*8~YfRyX;Z3+iK_b6?|$KsLt3X>}$v+X}~pMcI)PlC3g3lkh*((IMUV@m=1~e9No@6tY3oy&bE? z{(L9DzaPo#dIUB8XD9!@r>z^Epw)Q6;k69NqN(lf*}f%diV#T=G#~yUTh~a>UO$87 zw=}4em1cOyoES#QhfLIf+kPCc@Z(SgoBJ^pm8Y9#zbJP4f|1Fge*si12tGZ7_U^cS zP|~dncJVQ-dJ(zLV|q3-UdRIqQGE}==tNd|sr|6}<>>3QxATc%#@}@mOideAC4|8b zOO4V25}T|J-@YwAOw$+0@0)d?jxqORnJK&9i9FcDK#>2-=&l6289}a3pVkueTMkSy`Ejb2ALQ#A#X86hrvK|4 zr6sj)gdl_{I|{P&EZOavJ(ijL<%Kezct!(mL=ncO!nHoG(lVo;4;sqgs_!3U_?+Vw zeByLIiBCg3gr%PtE%*P5sBD}+RpNh`_p#_6)f#X9UfhtRChg;ZM+)3sbC(6NK_lQm_6ge&_cufEsyazN4$qbxh| zi+-wcL6JV@t93JRU@!|ce@75;9iZ_L7E|{e~{Fe*8aR2E- z4o!^xe24vgeS#hc#{^?{r>r{b`o14YZ+p*ctU)*JTC1_$3{3p|IupeziPmhXTxVIK zPT;+H=cha_t{fBrD|=*2o#kV;ON?gB6Wm3Pg2ll2yUw_Mp91xWGsM;YsPG0!Zs(K0 zf+MZyN@me}(;*zZV$GLprUR^MG0QR#lHPnE1a&q8hk1PG-k$AWz%9e+qhMKMXP%@&D&^&@a*AvI#;3UdUP#LCuJ#w}| zwtwQryExq-s)-}RfC`Z?O=h`P-W6zUXN$0bDJks~NvF|6k#j4zV6Gf!($ra%gDT`6S+tPM_snZGuFn(t2GK zY?d%qg|POnSiIkB)yPOo@H&rQ6a1BvQA_p7qT0q3M<=s?JpaEHlz*RM7V5BY?oQbV z=(sOec$lR&@&rPc6Zeglg@09$FAPxi1N&|by#LQ7QL7FT`j3X12m>|YCV#$eUnr`C z0Nv@G|DBuvQ;?*!{4BUyCc&2SzZFh`Dj^z4|9t%C-&yFWEj_}2FVK3XM#t1=mRkp{ z71{iFuAil*?JJe1lYFtJ8~y$=Ybj)#=ynm~h?ptU!aUb7|6;y$$mxZJgCQSVt%*mx z)8jpAkl$}T|G#$p>cjWc0cBP?5eI*-FInC0aJosw!Zo$FA@Cp3=eZgRhtcBC_&6oKilyY}DrT z;H37mCEnPJ%UtxG9ebJdPWcUlv0c{S;AE(j=Tb#8Th})a%lYO{QJ$&2GldcvW_v5W zs1QT-j6{Y+&p!MPQ-e?Z<-4QGe)PcXR4XpA1J`!{WyP#VC`|(yTu3DIb$v-p4%B}y zy+nnwmuR=^65wCvkwX1AtSVJ87s`o||Ma&dErX?UAHo9f%;(CxI!spyYR1JmhcQL& ze3AF+&Ev2}c=CVg^n?*7VZat|9`z0yk|XN(ZYrz5r09z6=f22sNVi&V?hkHGD63+s zz;Tjc1Mg~gCj18W@Y&gX&pkEhCK4a(J}Bu#QsjA_a7KlaQ}^#zRgXgN(*!6`hkMpG z+D?PS46BMn?XgG&1xe2iVP=S?t(#g&R0+F6O0danxQho){K$hST7;cI3ttc|$^UB| zw)eUVP_qbAX1=pYzrfGyU~(!f@@1`kLJ29)_A9cBEH&%T=BgzvZCa zxG_)-jY3vBG?-ZiMSQFTMo|q^-V|$~NqQjn$qIG4b*jI{ea=Pn8N=dVpR;@2xJJaS zk&tZC4}3g_%^VdHl4ja9`)Ci@x(5|i!%7Z><<7PrpYET&7iM1_7^Yss5IJxkx-o7Adas5#Zxj5Y+LADsf z&AW=c5M5hO5!0OGofR}K<*r%N5Uou3ki(z@8x2h<(lNMZ(Dm_S@XeN|6q&>5l>YT} z@?!@f+&HY$2EGP(8b&miH3iK zNfyPSvQzq+OXil5jQT3AIG70vohe!{ky=`)6INYP&JZc}KfP#B@_rh%J(b9Lv~^Aa z8Q6zUBUgDTw-;YlW~HE`*D1a9ETs}jV{(1*+RcgJY`e&e=cWdYWe3%$&*wAvcE8m^ z)Cl7BDV+cCcWMqnxD%9Hy(JQMVo>W+U0`C@&QI7sX1`hk$K1@0$olj;{`j0knY;J^ z^5}Qhxz7AwwR#-jn6Rnq@Umd>_FSW-jAVOci9kAwY0{cr-6-8s*B|oB4Mn$#jM(p- z?0&tQ9lvFG*~m9*l1sma$$L+Q-Y^q|_l)x|G~AF}*z`e21bDlxFIGh^#84;fM0`W2 zp?mLMoROW(>vMf9x&mZbsFrR9+S*5fAL0u zb4NpFv(Jm7eSb|f82e;7aPuC6?2KEj@K88~<5a7ER4_(e952rSy6N87KF%XuGjZmD zDaMxT3{=;kEw?nKq&krJj4jJd6o9jn-RUbYztBR(#Wb+vO#)jU%gnnJc%vMDTLzLo zyy*XxYXba0|1P-q$XA}FBmGz6h-oFK`>&#e-7L&P!wwVn{KDc>s_Zz8g&MtFia0|< zg^_ioV=hz$P8wS;bA&2T+L?D&cwahL%tn;AtIgt-9YLuvl&ty6y#iH4@;Z*DbsCZ| zfipYX{|r=)U06aTy0|CGnHl_@a%Spuaci4wEySD5cz6d-oY=bImFC@pE-5_D(Gj$I z#$R*}z+N*73O|`QZ5O(b1nx4igG!>nDBY+EGroNE!RYJ)}oR=5hw7 zkjHLhjYVGZOEvr6v%Il1rl}DfT7FW0v#VHD zW}$k?l=meGU<6W^xExz+bfc=nv#=Ti$`Y%=ce{ZRhY6Kf9*%i6#2;@0jCDBoBx{6El`dd$mnOY{>1>{N zQ7Og{v(nt+MzN4&gWkbAM9EovM2WMOqkPAyE`EKsW|XJTOD25jv>340VE{L0s>`UZQGKLp`V5g8Jj z#a~r6VN-BXsa0$@X`NnpL2WBCme^fgN+Vzq9Gd1ojdo;JU-}b-7mVd~DEbz4Q(8AR zae}cH#i*c`3_m@av03WQeCco;sg$M4CvI`KUe1 zt$=AGB0SjQ77was{Dwci*ewS-bjq47kYSV0WIcAfB@7Q&ctL#W*A?omqy*#j>q_2# z8vwW#>kT=q!jzjnxot9|Ru&kY6rM5)55)UYNBvs%M>(BfC~%~%4=&7O?bNujU+t({ zeOb`v+hVPN;2|E%FZh8=6Sa=!-*hq6Zc#d9({&b~>Kf%QoNG2-wo7Uj(Ja;q{LoOg zpG0riHXv+2<@D5)aehDmf6gl+e*@8YrV!2Y&$)Rfk3t?m;iE)5H6Ho(2IsglZ2Gmi zu1M_+weyi{L6bb$Gn5biuNY8`EddA)v7ypd@cyBJzgi2^gOiR@s z%B@mcw6%Ul3L(?BiaCF8QDmlTdX`2W*)J10u2Pi;+MIx<-d}ewpSDEz=(mL4Kh^ea zg=R)-8Vb*uCH$$4kRVJ3Vu^%{2)y*3Nd9+Q@4o69@NQw0Gdb$$|Zpf%i65E z>vuKP^xYbCeggkv6lzKD_=OA{XQKu~e?A74s-}@NhgkPSIgK8fj5OKu?+iIV)!DG) ziQ3KXK#tf4`(!g47Zni)M=h9~V@b;@h=N3lUF0jz5qeIO7dye>lKA>Y#740<9&@&gzbSyT`H7B$kBkQ>>X@QTI*Hb3$Sj=6itB(dg;M-|?i zaqb=mz>o0Dqgbt6C2BQBBbg3PwxGNAo(dInYxUEu|8N0Px4af}drl|cI8)E?8|>E4 z7;6`)FIb<_H|RFsSVg%|fz%1(4nDW1OOG53;~#*Q$ce{G_8Kqk1H>Qryj)cDnO*07a z!@K}5+N+KozPwtqj2{ohPI>@#rJ20J-|=q*Vc(l{OloW@NSV$nuR^b24B_x6Yf_w_ zCSw}FnN3p$D15!{YYd3mcPJ>rz)_$dn;f+w+4id;`5_}eO>^&wgaOFkX|UzX`uh-~ zh&5HT2wMz1N!`A%+nl<%4^G_QwKP=w@y&2{=tqFG{#OeC8gzJav|C?AN3=Q*C-fE>UhL9?2)G645eomSjZrhUy4^Wm#R}hOur} zgEEs(8P%*o>w?@j_q#YFc(X+@(q;sWR#;lBihB;?qbdAP;tMO@o*W+gOd}or^kr89 zJ`Im#`zJ{mEHrb$F8hHw&(5pyP>#OUu$$OoRQA}T{s1PjEo>cz|7H1ygccyQ=4O!X zxv0oD4*JF`AZBDZ)gW>nvkGxddOw?zV3x+ybBPH}UNNi4`{awoR*|DGeAFv<>+0)>+znbFmmiRy0B{=phpq=7 z{e(`v#5E1Sd?|uHvonrAYkKSRLpynuD)q{qAE=`vF6&ed&|`1dXN?2srrLi_ z9j`Q1lsOJmOf7HVR8Q9n0T`8ijGuZ+j-CsseOou zi8#ry-h;0bu=uDk|luZeP2%MDboxW(-4A+yJm<0iWQh zA2BTRTjD)klXw0HsY3P5>Hsbr5Bpy*rK7-4EHJ5-Q{DkwI#W(G?7UOG2BLbBlm(XO z2=cZ+1by9RKWen^R=i=ftqJ68m?A-FjFAa?B*_!nlu_E*hXIb-&}s_u^NUD=LA zGhruEZ?A(?bkf17lv(TP9QuKk7ceH&gq)x2nZ$J_M>jS6M2`P(0VarYo+m2bON2L4 zGwpFY+WW7b3};*!X_L%l{63n>3`^Cf!eFDPbMnWo^=lWO3UkKs@0~3QL(h0Dzxq~< z9qfuSsPKiDt<^BCirk0vYzDmw!@T=&&v8<>l(^6^<1w0J=@TO-hr;T_90@=vA6${XVq+Z6o><4bJw>nRJ9^H~+UJe2JSr zbA>360g43{{?iU_6yPO@dr(w%j~|ahI}NBY2m-VWjNBs=>Y)zKfzO3?Jm#vH+yAtI z0%HcyG?x28sNwyUX6w)|C@;-lO2gE{ddpNc8k<_Tdza2lj1~sCEz<*}xC$<4(!>$^ zW+L|3S~QvUTitwxQ+{nRH#1hzS8>n5SBbRp9$|>@x8J{{;XHR}<_htw7<}MbP7Dn= zC6TRo#redpl`h~VpOQ`zL-r8&Lg!%aL)2j7gV~Jg)&WcKG{ZA0g{Pp>ZLL^Jc)An! z^RoJquZ4)QuFOR$LoJGNB;TM*$W|1Z#~!7dMem}+7+=sQSfFj9dXY6xW@7HNmn@t>USkB{SyJvjtDb*Cdi=199`nDq6=6i0SeOx(Tb$y zo<&j)G;_Y8wlXzT{{h*1W6Sd*6}sG@O>zpUe}8Ch_%zG}>(DA8H22E{Yp-6^j#0{t zqN!P9MEiW7p=@!_cv5grAAc`%*Ig%Wc5NoukBZs|`>iy9B{T=v(?`)_V2m&IT4AAq zSTDdrF(n1coJrLl)+pWICmvnQ$x}7gN1(u{!57|EK4r!)MLQ4=;6jxyx9C=f3|(6J za@xwX%~-)GaFqBrW1w}KPTc?-XlF`?&7bM0d{eq3sVvh+_wUMRBWmms(+LXOJES=uA+PsCPV&u7}RBMUHhn+q=H1X|V<@hd&ITh>S)TME@ zyytR2&eK-*W`i;FD$a)LJ6QBOCzDUqr)QAG@^CP1{?%w?0yg zTDuP>D=$-6oub;&yVmU5+(m7{tMJJ!99Et2Ikt)kwWgd!X}qp6LC(un5xlPQfv z-r)o>fw@M$KXjC7gw;}8_l+&SftYBfVw2UEC{|EKiY;%;e`<1Q;UK|0iy?FWettF7 z0V0A8$2{a>bOeZvot@Rs%&R?w!7eiI??(RIWCUT9a(0;hGZkg{6us?rJkG~PRWn0QttC-)vSZV_)1eky z`RrhLo$i%hQz`^S1rw;TN8ve)@Au}D9;0ASk|K?QBVkjTz(70ka6nZA@%r;R%UD#~ z8T<|BtEj@3gHSu~_^Z+4(us*a@0hSfg%!~2!6hrZyc90HBT+i7qB>X+T2B8WJ(U@N z?4_1-yJ7#ya&l>jsmHs_BHipmI~^;7zELgo@$(Fs={#;rYT}{gl|9KOsX5Ng`mX~L zeu~wnwk6m}q8WH!kN6358E`BL;GGR=t(G1n*xOPjQ1 zbmU~XdD9<*HPg!b=-bX`j7+Ol;m^Q2i{h<=zT5iP3?0r9{=Ct>Cw{q!sNxqLc0_u1 zKU?S9Wp(`^)Le$E_uH9)69w)?)&2#{>=*v_!u!rM4lv%PKJcXxzLf(>=o-C^3lUae1fETTUNrhF%$@h};MZ5d%q%Y6;Ei&E z(@myKsLx_<%Bp)W0r|4|sdUWEAuQ)DOXCqfCW)?qeyT|)+-0k#cYBD!o%7>l zX{4rfwn%QDduYK;yOjqsd;}k0Q_!&Wi>wtx8tGceqyYQP1*y0fffZ<1p0CuUcfwO$ zueu&GzL$wnXcAGkbvj)7y4mxZAG|%4VsB&A{nDlNLCy92X;Xr!@Y?O}qboslG8R4t zy>AJiuPmX+iOF7hgP@+v&5KZ;8@OzsOULLk=pyl29(`AMIV6%r~=bP5*d z?!*n;KcK|zD?11qS)>8t?y&bUCf3`0;o9^|@An47Ba_L=L5(1lW7^(WCbKV_-lMO} zuc>o(O8k-EBK--8Htb1Hzpk{?+By3u8?Mcd*+uQ_i`!oELFx(G9rh}Q_%5ktYQjv+ z#NpE3wBk2)#nUf;h&hV1SYG1(CKo(ZXf5nSRvHO}tPQ`!&vDAn$$IH7$(lM`u~0#8 zrP1BSGl1`!kx*@@x2|V23-{(OU#+e?YxgjkTR+7;_V1F{_EvRrMhlOteSA3|w`OS< zowg6;#O5S{&Baw zF{}g>DJA3JOTvW+PQ|5x2a(mP8-e_=B{d%iM>f|VDT3Lin`nt;Rsqdqu zgr8I5Ve>*+)aY4b{ly>C$28Q!zR&g#mVU2+n!Kw^{hU|N8+N&Nq78X0{RCt*}A(_lm1nI6d6^juk>E`g}s4XPM{c{0vcng=@njj=?)0HDO2fvZx_jI454b7L4%q-ryl<{={!uFCOgw93uVh^6)5D z6ZF_S0-W?-F_8IorGrlW<^JgY4bKNnUqP`EAZIhri#q{gt1vuVuyqtdym02|>d}^L z#`a>o#zMo|^)EZIar+}5!WfG@fl^ss(8)@Kk4I^X_)~*jmSe-m`I6N|hg zDvFR2dHdE`3D_H};Uky|1Kq$YKwIL&az@!HW{}=gMCe-8W{nSGquG^-VFuQ`lR>?K z?0dfhy6nNa7}^v#ObX5{=B(K~4-GF;MDZqz&)KC(2Ir2-%o6w@F;DQUrvT~#WkB$I zA^rWgaKl(+$nH(M;4w^xmIjonzg4)7BJk@3_jY{!=-T`^H+3>(LzO8nD0=$sQKf8( zu!VkMv(7{$XFbCU6i(26UGu4FBB?=rekJ?W#9fBkxi1**FohzR z#xtZ`XMKi22vw~|41L-MYlzUx1BJ%^l*SyzxFjPY=5)^qflQyPUiz~iM_2hx^K*E! z$@NyT69YO6_?*-kg-lULr*}y)KKke%315p{9f4O$k4CGaOC3|$4O2RiBCg`*Q$G}) zInIxT9|hx)I&gx59=wH>+(zm)yzxmG*MkDzxTA7W6hod2+sU!+_p_0m%&zAPuTnYo|h77Z#0FhBiH}5IIF{?Tj-qzW&k1cfFIC z-!!fS`gV7$*F=qsSi%u?>z9YVeHw1hCNUqpKS8Dn{!UMh*Z8bT0ItI0MrAo9?$8*Y zlsXsnOy=WAee|%8A`rjx^8!Fh)%qjdf)bYghSo7QGD%-2*@aX;P*Zqjl0^fCDjNDh zAUXO`s+K5@pKqWKKO#anWF_%(?yZ#TE zi#S^913rx2h^4Sq{PVh}t2L(LVk`~q&gFB@{W`^q_klz*w*AML8{ z{-%sqX*`Pd>pvy>T3Hk8#aHj$1Zw0-***xKzIl$C|G%^;J=|)Xc@v!b$u9HDr@Lmq zSqStG@zO_RYwcBH_t6A1hZ|ZZfk&S`J}&V<7hocvXaYBt9=M8%U-aB}o?mZVlz(dn zjCVp4Ofih~se$Sx{`gWVdunMNa5mk#ANlzin%~*#4jS^T0W)0e(JsrJj-&bjnU6)< ziMhCrz1lzNZYd3283opU5%1o(-_N$mdb4w3hMa*l3@EiN&sTVHC_U>3uZxsQY;vhV}rcmbvH)0QM6uk~P4xjs9 zrfxmE_a8b#pQg`dNRdcAeOwzi?s_F+O;ug+)IL%@Mbb66QK+<{!v@1+{Q^u1tm~E{ ze#&nFFY)kN?dFP}fiwWqJKTzL+{YI~d4P=iB1J%IpoXO8@_{C?RLSjbRb65=f8Mq4 zU;CdA;Mlted5DP{Mp6oM2rI0q&RWm)gqWPcyWwojo*#qnX~DZ3_{n8(6Q^Q4;52*PjJzWT#`*Q3v#TzXcBJbX~UiaQpN+tF(}70TMdvDE?uy#_pStl=tP_>zc5cI*V5( z(4LmF)0j{z6j?n+aNR{UwV`-0hmXpOrFvI#lWcwE|>2A0zL88yz9IknC46TX_ug{Eob`3m}U4KK`F!t+hS0@oRj z=_x^>-l&YHq_LcKNq@{2E%AOggClyo^(a7!C`)NaGMLfJULJCiD!eR z`|5*QT^w5%kLD-?Z>@sY+6I$>MzqnyV;scsRfFORoCXN(=wYlmx@(jVgm@Mni30 zudg`sPZq`XOvppDA|)U1d6oI#`eL1n#JpY9bfvNiIgSl_nin-?!(bWlRoYhIFz%}_ zzVN}csExPB`a6Q}s*98*>rvM8!9n>?6kc7dyJ)c;M|$E^gu^k3ixU9hy4NEy_pHCQ zg7NUao}BI*q;Ov)M^Ka6Q9OGp1d*TZ4!9d2yrO!2DsD*9qM`c1ayB1pA6maMuDZ@e zNSegn7r(W4JiSS056qZk%yd1)yrk~BagjgisXeC?oP3*B{$!SSI@8bQ zCSNZ<%EsfzCpzfXZfk(>2DB;1)Wb$O<8VV?E|aqQnOco_Jc`MgDjZ1u-bX=VW8rk9cjA#!j9@@@WQ(W*>o$yfb~>KWq?>J=amf7*0utP*fNp7CMApsK*F+Q4 z?^8!qz_TCKrUt8gv?0nu4ce=!9Jk(nrjmYvD0_47s3`*3 zTJM9<`YPjD%Vy1yx$*(j6bx|W4IiIBwiU2*0**R9eCjjc>1%Og^(ZtbenKj$wjnsY zkz4(dH4Q=Ldngg0q(>`jrb zeLB&xZIhU8;j{guBl_O`^OpnS^yiF~x!q>9YZ)IfJ6!Af=EtNR#5;%=xmupH%Yf3fG$(A4XDaB2XU z3eSzGy{$enZTmhZ{Gt>(p|&u_3U+7__TZOVzQ8mUrdl=>A@!zxDk#6s^1%1FZ<~y0 zf8pVMhVYkDRYl8}(ZxGXISZWd)ym|VyiujqH26w@oz$DSSu8yqx#Bf7 z#{68BQPOC$Vld-&)Lxqhnk7!h4ho?GibE>-POA;3qfF0?Q_-TnlVabycAOv;EM`r4 zwz&dTqz(BIvm^wlnEMYgVn!bh#HTdFg7w@4wNv1cOxzk`O1+2@N^CQQ@=L-#t-5db zKG08|bEZ1z63te@20Ae~YpkCbcOpqeN(9)kpEw!?GV_syAgrFvoR6r7j&-H$YP<`f zo+EW%Y8SsFc!}XkB`mP_9)@*70>&gAtc9%EL;EUJmlZQduk8?|zf#Mf*Z&Ig{cPGM zU3~G$t$i()iU273il9veCT$sW($*KrV%!d8S?o*dJA&EU3&T@VArnIOO0!y{r*Rjv zI=uVLPYjo)3VJIT2<-Q%^`EQaVCaa-TT^%=v(S3)f-C1{(DzJd5mS#L8cfxM`|^4nppGc9$s#%sV%O^q!XGnG znFCCEeVyh}A#k8P8E_5M%-7*}0^q}z`SuPICR$BrpDKUbRh-KE4Je;COotAH@oB+nlkDF(kbZ41%RxOp#Zfy}VL~s2` zZzsCu0r+HLJoT#T4)=BAO?Lo`;y*pGqx{eAG%7a<9}?>mc`423S`BK7y}|ik`%Qt(tlc-;}~9S|8UD){RbZM$u0$~Ccxt31It~W0eXGg(X6)VHGCcV zN>s8X1zN9RmEmHbZSBW8`cgA|BM{cYsjrOL~lk7>g(E-7cr7kD{V{h$PNxc=b-x^ z(K7UGhazi1(3@+1qqS$#Cea#B{To3SZa+Gh2}zc%-Gt2^vvmB(3FdF9n0@K&&-u-a zVd5@><6gI&YLGIop!a0ootvWuv&z%Nc?& zSE=HjPMx6Mb1fwb_=?GjDOHYSv2$eyNFga^+=Vc}3DWGU%54*hunI!2AUj(n(_Y1) z5EOS^L^ANgN~oOp2<56+vDw=&O6^{|q13kES1pihLztzid6Jr2MW&lESFYFELg7uq z0%i=ldvcq>5qv|yRmHOVgv=;w3RI2H^hzTEGtEz5>2_{|ekEVjJ@+OPGYBGVR|A0Tweb zqg0&j?X?DfiIcrFhcl9#9IQ0IaYMltnT%MT{HR7^10bmOwhbYw9N>+pe_s@y$M%VgP1M#gyFwTh8 zZZREVVV+^Gb&roHzRmq-(s7lUrCHhm7(3kNmMIaD?YUa@;8@rCv)?@jQzHRm!7tB% zPpq@7Wt-!*Y|YE#-eBT4IHGtTGs0NloDrugq;&HC+e#2bg=oZW>&o~oJK~lyyaSKo zLre-3Fq-P7Q8N-Z-+2bksn79d-5!9m>|-sqUQ#_d@7Nl+E4B^~jsv(Qp6sJ&0z@UnwgO9vH{PrXj~A|4@s&LjR0+JV$ur-A!< zhZmA4K5Z8zd6pyQ_-7ft^N8ks}V3Z>6U zgQ5C2&ooK6u`y!ajP$>EFbY~~QXvQI4y(Gpns=qZ=UT$Y(I&Ee1?79O3t*i}MJGzD z>~L8Lh`iAW#sAMyQ$8EySbVrO@$cnAC`R0GKO~_`uZ_gB=bMS$Jv=|^4I8x|{QBeP zb??G*r1+~QqxCKcTN<3rVTVR9Vx;g*u@v$RJT;rA8vf0gHbJ9$vO)5)aRhe#>0(OU zE8>bKlKmzme@;ue@k?`Vj3$w!D*L#VzB+CGq8C!}qu1h3)ji)WurRMgKl+r+ltUR7 z+WcJSYM2u!PTz;|4**_`L}MkS_+1L4P(9RJ@LL;;i#Pk`RujD@!vq}svKgP<%IfrQ zya2p2+5dex<*&7sn!dR;{%y~zo@|LyD8u3ivTKXeIQ4piU&bVCYU7eVPHygspW|?x0_T}!|CA5@w0Xi52z$xG0By@x9}Se>EO|~U zToMRB{tfEwJbSP~8F?}3gD>Hw;>bvBFg^DQmbMG^fxTVa&dR2q!9BLZkhYWzI(-z! z#|(4*Q}XFMOy0M2iM zP=j*gXwqUlzj>NDn`NwS!xdGe5%e$I!bF{KNb7!N@BMGv3v6?bps7?e1rKRNieDsl z5u@%ZRShNMt|`aw-NG_w2fp+ zqU^QsvPSk!UWU$x4|%xfxP9iIt{Wi(a#7Zi)C%Oi0?1b;LCRlm&N1?;^N#VI&U){J zf>jgAo2;4$xsL$6szv{BfN9*`0`2kWw!keIc z`w(gQrB|N9%G{z3{#)@a9j(_piZOaUeagP${}))pD01`_0TH&cjVQsk;P(n0g^Fy< zd<#7|mi@Y5;d?c$_O}+SVr@qi0IaLq9C*6KX4en^aC`^Zi=WQbS+_6>OvwM?RJ@aA zK0sPam!qyYI2W6Z`O}T5w6tT#U!dxm{68u3u;f|?-U!pUl^_uGO8H!YTcNQvbX3VE z(9AW+2tDsVlGzQQRn0TM0f?l>2HeBTy(;NQIWy!l>_*^_xZ6QWbro;e_LVT-ARDl^ zcK%^3!^`mMa73hflRtL*dlOR7r+@tPupFEPfjHFlFKQil>Io-bfzuK&G*~Uwa>i_1 zWuM*vE@P6Dzm(N8Y0&281O^A?v5d$5yOsYNhJvgG;r~ZzJx!LTdeqI^?ps2?pbVY# z4aCaEdvs*v!Q+OszWAusY59Gw$|IpDH)&8Q#0u)y_cy1`e+r|2-K1u~`4~O~ociwn z7Y^gEC;sQ}Jcz7G%k4t>@Bg!J^yj9a0q<9A!acRG!+I9Kmk~o{by&LbzsteEYoMPemIjD*tdr8ryDQ9h!I1Y z;JEa<;y>M7V}3agSO}JOs!?!=-L^sC!TIkw>HhFVQEowGwS^c|P#!W;4C@d@bGw zO8HXz0BP&(p8Gjqg5S^Zg?wsHEx4exD7D5DCVUU5BJ653 z9_-{`9=hQgN#gHKIDZQ+i1$x7TbTT!#vw<~i?(~3*}uHZXAu^tbW7}vx1 z8&B1J+_3O0(RvWu6ZLlov`rqj38^nGYih0B9~A^#$?iq?LjVT7cA9j)RJ^M4m zf7Tx!f-}Q;L_qF)@Y&9f)6-xUC7kh9{P((r4vYPPihbhD9-gG8qY)O?(Qih7?d?sd z*CL>|;v1O%<4{+Lgcp-*&i3xNW+uN~G!5N$1`y82)N1JEnK9$M#&&ZH?1U3iT;BLw zLasdSxE(#!>c9a85i<_E&Oy!oHf;eXR|pGbiF;XaBnW^IIy`X6fM+yoU_X1Bdg<`R zYNO22yvy6a1WsW?cXLB!!24~OH=i<@yHYuqzy|_{RO}HHs#ixP$z)h&o@c<$oKCO2 zQYXJ=XYea#*BMP2mSOpsnG@8esL)`nqEB!?%T1`cWGovU9w0Tj=2KgV%n^N^M;$Ja&*Vk+cxJ`uV&9&RWdPXF_PYBs?bQYRL zm4b}O=|rnyz7kSQ-nBS=_VH_#OB2~FvE0hAFsJ+rcIeXlhk5Gp_PJwxMqIB5`&)xB zNg+kosN~vC_l>637qb%c(k-DG!cN!Pfa`{rdn?})8Rp;qc#aH+tHo%gQ{EbCRH;gX zgG}uF#0xs!m*wHEYG}CkD*m&Y2sT5$HQOY~eiAMGIDIjH%{d_Ge2~s2BJz;~lng(h?C63W7PdUL zN;tMaEgIzS)j&Re#YUL)myNc1>%v%nU-?dF9=dTYRUI1Mg!=f@#-{>ZX}!kBd%bTJ zv7p6hjYHIET%(Qg2U?FDoYW6Q^`_T?;%d|F>NJB>T ziHZK*hAzKwR_5d`{`C#}-A^bF@X-^Dw()YZ-ckKSGsT=V;{9@hs-W$GpI&X4 zzglr8#WA}uh5aN=wZ((#w7t>CF~DjgwkEjN{O5gMxb_IPj`S}~l{wyX-v*c{V&Oxw ze?_LzCh@v%PM&wn_i`g%XO-j?IR4+$x_tLVp(r8mxaRs+*n(x+@L?GSq1}d%EKXbUOJucqvLgpR0MI=7k@^mpNLT zInlMX6V+%Bonn*QS(85JYYzXV%MwfsajDQ zeN5aBn)b-vPZrtn!^#6n*EkZeI+7q0(|#)FcN1bzcpccJf^vyitf3c_)cP0Y={?~e z-k28TSxh$cWa9@-w7L4V+2u3fagstYEdqzFCDNwI@sv|4*v+Qohc*mm!uY69bue$I zRHE-mnaLB>et+&=WTg4H2j9(exuR$U+T>NTq#F@42H%s=0q=dlF~cs-Dx@vTM!=)QoT1!L02m@$tpH|P>q>~o+mzeXoHGrujQ;7|u5(Oq4` z(T-KI-ve%Y-U6-$81c%ep0?PREN4aK={|v-JDXLyZbx_KDcB2>XKJ7}p!382JI!CU zbPM{b<5?YjXj6QYIfPQj>BjT6t2iJBa2<;bxYlS+2R1zq8pqpT51SV1+({D*eu%_F>`fTC9%vv_NKI>#lHie+i~?JtZiRAv<2|VZB!YCF?FCz2(=_BcC;RnNzmq zv##ey3t;rj9u~aHwRti`dRXJC5dV14E_pUgWe`3DY5$GSx4>K0*D+q#ByEfr^T=O8 z)tC9AMSyH=TDIwZ7!0#-Za8t-j>E>B>65C?m0vb*CZrNCE56=@Dj4FgWu+>sMwDW#GgcHgjX)nN# zT11e&Mm{+!-2!8`U*^cNuFz(~O3|~-6AvrKnFNv&E#^K98dz-ec=iW(U6gg49wNBQ zwKf-DSPd5V8f*>k6z)&eP%Yt-QCfXiXNQPNW787*?zvy;Z%f{jkpDt(; z3_mU8&^VHy$^&H`M$`fU?5Z&Io;GRWF%oBk!4qdu`!V3pv+u{{PC1(y_&Fz`!|q=B zr90AcgY^#aE+(4RH`h+s2{DhLr0A_;6GzyBYM|LfNg6PqpjRj>4>V1P>{2Ak5ArfG zoMTk1u_LBcxI{q|v9Z3nIbkCj5B>MH6%L{@TU!1^(LMt~Pj&rTwRTu+*K{${Q&MN+ zv!spNqU#~+%_C(zw9qwH6bzQg*NkGW^fmp|Sr1-6AR9wc48Ti%35wECX` zVc4Y95)ycb9e05bB-XMkf}HIO_dBBihLN=DN@Qv`Di0@5S}S5nQ@U7^^=+&Lg;aKB zgac@^76ItO=@3*Z7?<~I2ycxN(?8bOOg9gA>j>-X*o>*ah0Qq=l^;qff{gIiF7 z(SZf6KgRPrHc^JUOel3Mty#zuzVzA;nSp;}0ZLqcqDuxR@|w{J6C(L1+O1FV_2vsD z_LPb1s9zNV)LbCiB_R`rWKi|OSYk!R8S^7Y0fEV!jrS$v-%=jH9j`;}@YQ=Bz2k;^ zl8ZEDrn`Jeqt>z77KDSYEZ?){VG^9=#&LhZ9HASd$5vspKzNuIfO5ad&pp#}&_%Q1 zUq!pNYCL<6u!^PI(1zDLv^SkZ_S8^tDpzCjafAQoMaFcS}A54CM&(2~4$|V}Kg<&W2$7Mxb&ZYuwt=hmScW?n= zf5WcDJkGH9l`m4qn(Uiw3q>L>PM07Fi_Pm-UM}gSF zmp3|aSiR=m$5sLeAx;d5K~4gTMR~a{Hk3k?84Wn7m-k%VG2iCYx>_090ybzi)V(N` z9V>=Zm%rq_U%Mvs%5OC2ItDWp`Py06-GBd-`cp*b&_9JE&8=TaHM=O32pkMM7p@{T z5I;EHe?TK^mk721V<^pGY4x5FvWf%#XJO<};Oi7RS0a`iy)7P!u{%4Hl+8Fz=w9Fq z(G2M_l}2%MfMV!^o&juvdFR!Tr<# z#nMzBzOJpHH{8GqN4E!XyhfR97PU>~Tt4MmNvPxMO8kJ}<>xSs6cUTLgKl{faRP zb;}9TN?fzMOA`irod2;iiCGsgl=Xp1{oN**-#wSwRr_&`Wy6#x%^?qUB0j-6;6w=( zeZ*wC-GoB>U-I}r!>0Nsrd$WkFVZHuu(u!FUqsYxIr5~kTDa|>HIsZ{6}63(8-2lw zE*tx1NEa)M|LG3O+Ar+{>)0+|WuLC8{A6|mivhaiyR*xg2m=}Ot_KS4CNvu{fLGH~ zB)#uen#YF-!HZ)euCE41DyG_IfW%s;+>8dXS_U41tl)J+5?zp3PETtomn%z-f{5dz zXZ!&~o}G(_Er1P#Ho{$VA8+BOr5lvNF~jd|ps^|FtLoMIDP%imv)a|dT~R*wER8D6 zY6+-PpL_O`o1H}%*v?G0o<*`aVDxO)s+}@+)ES!@GRJ>r1y16nUozYa=IUU1FjAEn zsvob~aq47q8=dZT^J;IgUwcEP$)T-X2k!ZRgZVsl=!_3%cPJuR!MVUpiwWUGi2)-j z?kP_&kQ$i@z3!as9rL)l#7)@$R_#Ai8ClhB@O*?jnTZUJ#&IbK*}$@A`m&^t|g+2;-wLu z2^vr+|0NK-%AxmB+gZO-8`C9RK2wPX?E2f>y=E;l9+GHn2oJM39V=_#3y$Of*_4QM zW@xvLn(_l5mr4bw@`b9WbJK0M`5<$x?0YlGR%;LR7;)O)+IqPM&rcIxhvZsl`5fG) zSb>@>@^Q2uONey2>V#NyA=^0?pxVR7P4t@N_N?r%DEx?rOSW6y{$3Ym4B44i1iFvJ zHt}C8{V8(^6BX;Z=OmB$F~}glUMD)4J?9@RwEeKjm)~&Jtea%U|CHa@vycno-|R~_ zBy?rK>RBLoTMNkI7C`fm4*p(`C> z;3V_cY-=~WEbo3i9$s1>;SBThV_eZDPKrFp}wJiqs)c7{VV18I}@mYO<%y0 zr0+{^Be*z)ol%>oZ#^7=iY+%TJHaiDfBXhq{@J6h!{0>c9(*wLn!`a;IqafyW1`!j?S zr5Bo-n|&Hwu2bTuM04Wawg~no9$b$-Pp^qIf8-@t*P4F5Jw>w~O2#-XF6ni$u>8t8C4MFROj;A}A_f zz#GhYKkCioBsa$Ql>uW1Z=d%E?nJJM#jn+hPW-GEuaJB;>HdrMoSGgwUX06kEkc5w z{3KCN^QLId<`u7989&X;Lngy*-MZ<}$y?nvnb{0_G`TLe>T^pw+$flM6}Lszt(ChN z!25Q&+pIOH8FGN_sHjDALsu>ee_7$(sr1u_88lCFZi#JDq$#~eft8iBjK3o$d5kSy z=6v2J#9^N-s*oPus4Z|zU3zy z)Db{3L^alD{kR`%1Hea^3tf`tJz4!kxIB7KGFZ%2WfNDnDe+U<*t|+{i2Or$K86un zjC?xohYj_E5=8W#*AyX+_%aux3F%Ouj5b-$A(6GcEZLR24W3@s5Oegh8hl67)1z+E z+Vvzr5HbrC_CrW>C&RGGBAw(pz*@a%!LhzzL?LwBYdp^}g8VMQm8}(`8k-LVfzE%h zGiTHL8>V;NiI&V2Gf=KBuc(rJRX`ds_}wDAghT#P9CEyo`=0sL#4<);7d>r}DaG}d zl?&Jhc^him^HuE&0m(BIq>+%@h>hOE_Ytbr!h)j+s)GZf!@A&-W>|CZ}NIvp7*)y5KyYYF=r*8Vb+vJe} z0Jh8iX#e7B$i~auz#vv>vinLDcJt}5p>hQYtop5uKfbIU&lxsDhf1m~`btS^&Pfe? z0`~ZtyJaXu_ngkH-Z?<=lr|Z0#T_e-^#P&JeJcm}9r@P#o!u_%8d4GR~1yQJPFi_XyU?&U*ZnQ#MWJtZ%8aMOaK3(uz zO#zM;ZdPi(Vj3=E|MD%0oS5**5y6eWL>>mrpMrRiruN52(w)n&oYn+dz3piqvLC#@ z6sKeSE2R3LY5VMr(h$DwUzYh@G;}(zPlI&ES-qwf)oWR`-`e>EC?&_B^t$vJw8Qr`V3)t}s4A5xcbO7x&Yg9C8M_2ODQ1TvMxbzFMewfO%E|Vs zp4wygj#;ocDIZhC*VCmb?6Cgukqs=sIPg1amf^uQh5X&7T*@hvGlrZXj01Om%&r~f{$2D^fx;MT7P7klB!I;&V!SXel;M2c zQ>K|Mk+B4q@;o|sh0m3nrhP=Nix!^H{b#ic#9q-))!l1ZkDk&Qva?I2HkPLwv2C(q zxVOg>?~}3gy*R4cNt=eURXR99GL|k)yvW>y{}Vv`Y34W#aiQl-CsTAV#lbk zPXkwxfZPGS8rK1c$Hy*&ZWY5FE?B(#Fg9~=s{7aJX0lwW$I?Rnjt`k%%;+2&Cq6#G z&&f30>{!jIwAbbgWKTnDIb;FVfBA0p(0jN;iQK+Bc0G!!*P$Jccf$Y^Vt`ihUK9O?Y+nnE<+xTDZ82P4&Bfl!V`f3(K%Omfi# zB1N%8)Bim;VvL_L;m?ihF@tm<*Xgs_$D1?0-+C;?QzEue3M;_h|EqgNwILDP(obYV zxPMuoe4_{~tpsLDZvvW9B;v;DUpf z6a-SfS;OopQY9taPWt>8*VCL-Mw>j$^gU!4WvTv;KIdbA+s%Af+11)H3TB(Cnp^5y z7AqWL5-0O2p~Bwvi|?-=%49bar`rFE#ttP z&i|)hd`8sI_ip{docgb|0V3*r&Ao5Z)aR)Urg1}_4d`>K4Edt|saHd6Y4(h2MxOxl zIOg~&84(LfMfiuG?&h*~;hIgYfX@AA#`&tC9?HE-vYuz-FDjafNIUY1fj%?WXZ%T0 zOz5~?Di`tG4l;|kIdQX-T6916mgt@@=t-dtLbp27z5THR75X*@luMh=4I*i1BBOPe zRWqYAY0C54h~LpwYPw$aJZH(fo{eE=N6R2<{|(0I;fQ(%j7-1#`j4K7F{(!Lh2|dv>p_ zd8G2U+;(Sw6C3>b!bb87cEtzXN9$Z(e*JQ>PzJb|gvw__$rW_-9EOa2k>IJa9-Pq# z{#wJKR7fg3-)r>nT~zHo6B$2JL+=fhIMt6G<@E=`UBe?bA%~%qIYmsYd(+*otM%o(DAh;R-9wD zwVbkC$P;K4L&?cVRxo3>EbQbw9rt|AH7_xn^6uAkD5eW_-q+^Bw?)Tbw(jCzMhbsL zBeaYsGTmo+xd*3u7EB&{!AON>pLF5J!KkS4*aN173jvwsJOkJ)QR?ro3#ZhT!;c&J zMsr{kqkV)eYzmxUb@ZsE<27K@=197*z`}ET50i1z3eBCwQv)ixGwO zesMLeL6@NZdb(W_lfs_rre@ajj5@_d)9kL0FW!J4A(Z9f{fWW@^PsS|0hacGQef@t zUF6k*T$|@3m0dO=W*SxX2kl~HZ~4wHZ53vmOd~)_6yHYcB%R&4oUEC}_;sk3C55hl za?IJ}Daw&GNG!Gnk{KE0Vwr|MF1!>5I?-zzdl|fP)%V2qUUl$;@s3zG`Z!F#2R3$x zq%QVKfJNZMP#gE`pVW zsdYs@4r1p7ljSuWSg<)LI_V=?quSTUvoEC5;qJCICoj1+x((NlGtztKp$L&Ob6u%Hv^o!lHgW|e(T9#6C% z61$CE2)jT3qD08q6&R*rL&X`W5l_AsLQ9z)H@EV%>(}OqL7E0TvW*Qj8arWrkBhw| z%mC&+br8~bGQ05(oGCN@fccz_#%w>T$~mnQgPFI+kb)J-e{HBD|E1pn7ny$`iU#5= zuOD`}IJ!=&5)tjIc0p@_jr)5{Y2lFpY}2_elsw1P=2An{c`9x!j^zJFA zuYk2SX*tWN>DKnAU(lA%FUf9u?TssUs3U#^w^?(JLTAGyTfBUJ*uJA;H6(!Qb5%WG zO3Rn9D!5;P>xI;>LW`5-AHpVs4Bmgm7~R>G-J}R3Hp(utb}C2#3pXT0KF)gEk(`9R z?2aJG!uuk&fa&=zwI}*E4(kfXMRH= z{Cw5VeLRN@pji;|>eq|3C$1GDEup6M*>|sGes-}{arO1Yq3?3bhN2&m?uUi8QSjRX zuE-JwPps5-#YX(OX8p~6)_7qs7FQlrS{kwz>2#1 zXp6%{>Ud$lPVKdnvnHSIWGzQ!aUS_~azfjoP=Y(q7PoJ)ksr%ojy~A*OvJ~;5a+nR z53EjFy0hh#s66mlS>@&HFP)qM-}yW2YT=4y5L6hxlfQ3z6-HzT$crGxzcjNdmsl;t zV0Qkk`Mf%74{eOiSU#eeN3|=yc_QcSHCsD@>95b7PAuH!=%4d}DQMJ^R>C#kDlJ^^ zXWBP?KC+g#JP zT9XthX2W;aZHO=IdlSrz<-Z zck9r|?HXl!MWThe_&XJ zEKKHQ%4sW+^fr$X`ZOQvAV0dkS!Rs-CcGx#SJ2AP&HMZSX#Z}l)f$U-mZ=9|!dtI2 zldy!CLYm5g62vLG)Ro@6WMT`ErjYx`k%t!jOCf^w)$~J75Q>irB#5aMDUYKZ{qO7T zmN?fLS6i#NsEWV5x4b7m-Gy&V@O-C3Q2B7NKj+U?rIQ1*-72*kl;cF;k^2{)f`n?=E`G`A}YUk+sK z8Hn7KCYiMDw_C5t98%85@gv4~TDB zQPv`*83f%U94vB2k574`2?kQsSUm45XsvX)a_7I=eb(58p^L|v-rs8IEs7wDR-N@M_J5;cPM_=2e1nO?(d#D35ix%3 zOal(1)Km{w9O2t!ndXj_2~z|YX0|1f?t{gJlJyANmAlleX&@B9D9i~{wwNtm zx(Y*ZoO@eK4F?~x*gHpu(AOpu`EDEhSl5r6ye>~Pzy2xY$dGKgcM#yhh`O4LBFp+8g((l)86Ch@k14)@NPq+W<~C&b8vt0+y2@N__qWgzOg%b zjPay3D!guA+0Bda&N_CUOD5Z_l&jbWDCA}>?k*Xr@J&IOgS@Fe!TWuHe0-Y6S(V@^ z{lZtwQi$~{b;plRTr$N=mwj>iBNVC4iNiM@m4^|cHK=F>HRYbU!^Lft3%)!7$_8Ol1ABxU2!@*q8D`UKRwP>1zj^=LUF z_@PtCplmLlzC~;V-A>la^O^vDq!c!X7z?`I^@lf?sA;G*cQ^f;!%ena_uW6__(pUB zZQ_CxrPkZ6-e&MGVx*4jn~$$1!#8@^a}JyK$lk4gUtYgHrR(=y$rFLJw{R0cJ4~jZ zeT#)oOtTL0$pJNF#;_Fm$NS^T*$XQ9?X{%#xF(;l=%kCO1J6ZZ9^-<)rpCbe%tub5= zPT(2!?L$mZC7d|vF_=09(#|ivSm*}(sm~Ub*29{gD!9LxTdWIPAY2&bu1hGN zyXfnT_q;%*IGQM8Gnj-?#u5=Gve!F2p!AL#g&nI1s_%f5?VzQUZ?{g+ua6&*aylKC zHZvLZbzcU7M?vvKDRjQEo zR9Rc?@(acirN&h9(sOJ>Qf^#FVx*Rxi;%vO0Z?W!3&fKn`g!oQ?s~jv@%k? zHrq10{EKnh_rc@_4sH#icy~OEoAS{8*mGRh?I_*BRzo{*E*Gh*%B$&T&;t=Wz73=> z7n`jakGYKd=)blij!O}xU#AH!Ld_rJ@u<8anbO{lj6!mAp&jj$Y(C0i+a!(RyjN7__bGZQ@<;(C2*! zO_zetq?nDqg}i}(1&>_0d&gwM)VwG%wDWT9sG?V8Y2ySE>iu2Z)4HxhiNJpy6;kC^ zb22YgSYO`7vs)aUXDI)Z{E7aDiT_??W#aPAxqezyjecaQ0%*-uZikoR7HER?u;Se_ zU8fuHgFg7&BW}asEvK%CMGl2XRVDb@hmu+~wVw@2@u`#NHkc+*!C-}Mn1XS@)H<|A zV0TG6`nHc|bF+Ea1{;!hK32S_G%a~5+CmglTF@cXURqFFWB?!KhOX>Pr32NoS`Hvh zR{k0Jmrd=BJ;Cj+RSDJR_|R)-P=Luyg}iCzh7Ka)rZm}z0OGD)9PDyroMHog0M~+I zqYu^E_V&{P{7ccPXz|X5rqRJKWG&`-5p+dYUu&V6x}!wXil;jr5eq-%E=O!MQQXm* zzZABcsSL-Hpi}}17VTOygge#PVTRW`njkYXd~txP`_F6q)REKu5|hi$srCt4{Dd4# z_C34NE~&rn;gbo~ZGt~-VzM6lGZT(w8L%z-H`1oXlq5?<-XQ+7(!pOgeBSR~Gojzl zRaDVAf$r3%?fl!stCS?OfsDuw&81gVzgU=$!Mc%7`L-65AgKd^FA>s6GxR2g3IVlt z0z3pqa4V61?S<%Z`0-~7Ae1iLkN^m{UcDHQQ>JpH_v;d^qic&_<;WLOzr z_XzPM?H)6s3v916&hA19P5B2uyO5#xSvtFQaDrJytZ2xW47+VaCKpp0f8xGNdR_H0 z5gOmU+@;~58=$K*n)vDIWWHcEC5!ZLYPMjn2xcCj?X znw4v6P!?Oyn=UP?9?+(n=HsT7J$=HB@(jdS9o!RlxHH}<(^`F*hAhY@c~|c(RGQ>N z+we=&$xJcfE6WK`l&ap%={6%YAs7&IaL8&$64e!m0pu&LGS_8Hof|ko@SE?VGv?Yj zn3X0x27VuqbBp7AuV~;1oDo;Dzqhkf?hfUKQ@81z7l{YY#Wm2KhkRDSj+rQB$vuGM4;-E&> zeDL8(uh%q}TJM?x(<=}ESQ4lf8<#`A1$5#nDBT~j{muW7&~_PjDShOtKj<3-%{9Wp z%>R80~%;_()}PFkju80y{h_@e$b`P#h5Oev1(vB`l{WWS2ut5^Nb2 z{360^AB!@cbXyl**DJ)IBzmug@EBLBA5OlkK(Fs`Q(E^*_wm{eQ9zxUP;eX`1N2Pf z?I4E1C=Qd@FYXF0+%3pTzsKJu=s1yy#{ax=P`_|5ddBif?9~-zVlSe-@z|SABT*BC<%Q+PX)1p*e*A>wX$_;} z8l6T#~5NEXcJ6^Ij?>DUmoJO4EQ%qgK2x*+Z0T>0swWjC#X>@N8nVFitt6k{f#F$#0YXl(r66~Bam3&B_ig3S^Avd0=TBS=0f z*>o3Nl?LG(G6ER$W2e+4L1LZfXi!{Vg2xmac}l&D8w2yo7rFIQ=OM&>1TNTmOL6Z zc5bHAvItg`n*Avfh&moQoh&tB^7R}PlH-Z>jTEit`3vgyQ8%Zfp#)J%kP&JltRfDz z65RT=Wu$6;`G_YdCgdO~y+-hoY~2n9)R}!){hh!&-O1RcUpRl!3;5UE9573Y&neW13odlmqA**ftcQM?Ek3xbD1Ga8lMLIQIrs`i zw#rHZ`@+c_V^PzVvUVl%b0Fwj7hvBWm90YHVJZPLq%_ zL+?z_F%0j^i;|r@mMLD?y)!V~CqHW1X0ybZV)J4_Zl=O4!kLzT8lQ$S;O;@=;EozO zt2A$Y{gdtNW1{V?-i#T4-$$h%=zX?PQ_tx|tbWaeywU~LGsn#_bTZ7#KLV?j(P#;M z!+(p+i@oqn)V;|Jk_8u%RvY?V_;T+%xUX~7&P~ywqAGNp~dAH#zB*kjp zaXlO}c@2ub)A2KieQ7}ijQ6u_k^1v&Suw&G)^7+OWVo>%?%@{su6)=vOMq4*1?@WXxMLn>H;Cdnfrx zX0o2%$#(~9JoI{oA=XicS?15iPN`tPOiW3?Tv%aw#Ke1WzJM&>2!QL(w15m+47S`t zBVLKh-DyEh9N~idE6yTad~(F)gN%sLs#xe70CG->uE$NJgt^as z+jR)U+`9j(Ea=0J63fg?2_8fz>sRj`6AOt@n4=o%uaFqRL%n#e&*8M1Fu*pmbv_z7 zb3eJGR6WsI+!^DL$pd@4JzUyVnk)&g@U*|*(m$?2BsRPGsfE!mBojYo^73;#h0GZ> z&Jl}WT;GLUsTc=!JNIM}oB57aEZW|`6-ROl&sNjWciJ5S9jj9?7T#0~%C`ov;I;?* zv*)LWZhWVN7TkOnK+J%>t2??B>dR3KpIPIKGVe_xVmJQ2O(@_|Ot>ptveu9rx5zMz zmF9e)p4aeGi>fv!^lBm6jH&TDIZ7x&4cvKMPS+=VQ9 zhSDRu?hpES{U)lQ$MdK>;=zfsE*|U2E3$8sh0gK6IDprplF3FO;vKs<&i}>MTL!iH zZT;UZP`tQ%aS85j1=>>Ff?M(8?(SAf2^I)a3KR=YaHkZv;!g15uK)bbGxvR;bLM%I znPldg*>h#DwbxqT&suwEIo>YcF531+LgkrAF=#mPIt3rJxVUFF>0@v5G3nHTt9g1! z694*0WBRSDWc4AtRigB{T4!%*a`k=sS7?K#Wq9twQ=URF;X3mNZ+!ZiCaAea~!Xc01!TDbnzgy z!0rR0z$+yU09Mag`1A_{!jZ4@F!t454NQQVe|h<68HYm5U&9?bzF*QsEctw8x2YAU z8pg;8&s^voPpM*DqrfV;jsr|2P-8Ada)>}%IYKs@@A^EkCW+tEeM)y&XKf>BQA-Rc*XvnFVl+%jNv8-hA=Q-K~s6W%HJ|5h2!{dOQm84kSRqZ(xobCaYx4 zR}FQlj25)g_?f${xJgmw)bpa1Y$oZ{@PN@zmSYchjG+6J|IvXv7Yk)lBH^_xEmO3P zsNM6wj;NoK`G3LWF|EmR&nSvqd;S~;?)H4I6P?K*8GUTb!uaB9ab3T|f%&k{)w%j{dM zo=t#0@VkWt%c)F=Xh!l|_Q(^M%c_WpDhct?lUHAe`d+NEKD6?^6}Z7JoK<^Dmm)B~ z^i>l@_)c26Qv!)JD+)p}!>&6!u&XcB6vRt16(#L2-WxEe|0x2VD5bv1kF)|J zF`(}em5?AOA*$-ma_@J?w(6%9PYbCKFYU4k6ztxU0E=a>khgzIdJ|(6(+_d#tLx(B zEFRM$T!QaG0t|Rp)j#Fiko-OS+7rB~JA^(&Zt^_Q@iS!8NLJ%CrjT;&>PPdIViER= zOCRj+_RReR%KKIn&628#9KB;_=(e6qkec^riukBBj+$%HV&<;-dFF+SlPe{6z^+|v zni8#L*Ry7!(25AYsYNHbIm`xwI4Gk?N!1u$3+@szooe`Fuwkuk3*@7bP*tol=cS)r z0{s~x8>(?>rlFXgP<1V$os%8a^n(Q46iuF_#ur9CE!(j=0d$;=T!cdr+5X0nU&gs3 zFGb^7TS}LR0!`0?0jJ+uL=@A;>81!a#nTH8P*Z++x@=sy5ra(`Hz)6>5b7s!f~4c^ zl$L;E8_} z_|H7ETM&~M>p^L}U3{49fr;O&$TLo}9|xBn6l~-Eq(+)TZn}9s?EES5&>?A*Qw3_P z!m9fOzBA6FdT@vJdV(Dx-K~ zoPZtXZ%ZiC8E(yi!k>|CA_pX~@Fuv7?5MY}_XN{6L?CS$6fR;|h#mp`#kqHHbKe@Z ze(>FrX1~w)sKM>TW%10LJh@7@^NVQ3d12UX^odKT<~!v}aO06g9?RcF z0c9JQYf+60`BHZO>9@}7KcrkvDh;shSGl#ku!#|SoyfSnfbpm2HKjyV{%*H+HnZ7E z*f=Dl+>4f8s4a4kXdj`XR zs7P61_FD-P#`x#H+ix6+p(5d@ ztCe?_)0Kv7Lmjun$ebMW>(^y3$zTV}4Ob($p75cO&7>gGFE` z3jIFl;qoWC%4Nlh!oj?}$iHQ;Pli@dJ{H>&t2mleCf5{cXGlrobUbAFX?ZNN2Y#d9 zt<-Nn6qjt(Gp6kLtJd2@K9)UyHKkDe$KI$z;dUyJ@75|s&BBJbr^d<>V`ArrZ}uXq zY~|TyS)AqdirK`lmewJS4e9O7!Nl&=s<_qdzf_LWWZGY@?U7VFtE%4kuAFv5W#3)` z0CgHw>z)%4x?0Xyh+}Pds z-gLvOEPqc%Sl;bAR$f6%Ma3vqe%7mdWJEhxLMP<`N|;aSX~Gn$QIg>T*f@3{Wr5~J;x-n1FjUuBTG4c9L+uT-kZ24 zE7#u|9GRMMc(+g6M>SJ(V~FcV1awteF7N@>d7ivOzk1BM16D-9j~@iNU;UB|9X7k& z;zHe>en&dO{C4f9H$4uwK+!e5>z5vD0sDH6}`6_n&MibJN&V?Ibwi$qbIT$ zpZMBqrxyW*&tC?5K;9&&C*5>bSKB^DQV>S%Tl~Iuom0@?%GzI2OkAIyORdr}Nv~S` z>Cr~wK8aLBo#%SMij;+?BGp)-xh8ItelCvK`X6>zEZ<>s8NIh`8{NT88#aTz2?RaD z8i`cFah)Zu$>R_1SP5kI&tc)<*~Nx=`QBQItJuQl4UJ)a(xfCY`t~BjD*qGQcdLim z{12y=R1@E;$@hbNB$pFbNPtK0)%|;r#P6`D=xuykU(EIydzyU^1~yKO%#;$Xe>DU? z>C4LxlUXr20sOS&_kH}_dc&^`;LL@xog2CGs9RFN zgnJ#S=oSTC4he|=6ZhjLRf@wX*D2#&(ZG?X6mvQ%$T0Yn_p^b30s;JsEB5PfAE&0l zYQd#EfvZ^Vx@miRv;Blme%kA!yLRgMz1+MGtszG#=~bzglGw~!JT^9>!Yc6XQdB0R zbs_T%TeIJ=ZG@J1kY*reXs7uh$u}N%zq8$)GUZ_O_9)A3e~Mfpm`kdiIZhEk=U6l( z0g(p7kN!6qJc(lehitzw?^B1h@)~%yFmEkaS7KXzi?;j|HXY?|GX0RsU|920G8o0; z@`pAWepRD`y#9?;e9tU{Q%8QW3XUPWx(g;ktVn+?C?^?bftd7h%W%11z)#isZrnw7 zJ9$R9qfoYf^&@<(wZktl!R#YX*unav z&u1fogfh|^wX)kj zj&BDYVnThKqfYK#=`F-s7-qeFBa))+R`Xfj%ID=~w<+d=u8YzH%R(lyD#HBbw?C=c zAMd4vazD`Gt5-$5ntMO0A}&ZQ1KXZ@Zi)|fVpRoJns|aIiYu|OJv1x2gdqwRyH}Lo zLQPzfcG7(zr2S%um2FfS%+-&+7@8fhoNxBQKFkl#HPv8Ptej}Nrh8PW$)!%4#V&!> z{veBS{~=>Svc5y0eNE_Fy;iSoPvm#sRl&IXweOa};+K0Vqjb?HD zG(A?sAf8j=EyqXUslDQGtTRQb>J~K{pliALbx$Pa#ya%tV(xskn^+ZCdZj%RL!<}% z##ct20OW|-*UD_~VpTNc17$PC|fU~h!BE~8CB@uR z$>)Knrg3`fh{jj1ujjyN>mM5U*s9S$$vQ8jO z^7mS)HC(={?We!aDf}z|7yBuV-BuH$U2s}UX!;+(btwJoA^6@uIVPql;;i&tPnM%e zA^wF8+EF0KwLko!@<>ZoX``oFY2Qm2v*rWxu184sz7qu~qV_XO9%*ZSx_vlCs5=Xv z60d@QE|rU|2_4XeK}^uj)r}X*5MsdBh_q+}QyIItql}p`E@@!*s-Lj0!E1zYF<3E* zJtsN~rVOdcmMF7G7u7TPlDlXLw|+#34{o)%CbLm|Bb%2Ij;AKVIKUYRh4nXD~jm2ukYyW(4J^HfKzdPBa`^rhb)EJ{lV&LaLow$f&Yk~ z0npfpf?EIUVXpP>hB1au)*aLiH1!J$FoqUu>Pt%H-kmnenKRV3?M2%vB|bbQL>f3R zzwJ>DHbLMlzb^mR^Zi5AZ|T0o7;-PmFfwI70df38$%}R&%J1=`32{&F5P&i1V6)=+Il#Qpy~CCw*3Ar z;5tZ0Tl^mu00G>q{sY{LkClPbwCTqFVW@5P&I08zhR%&Ask~XueUk{_2bct)oiecg z(MJSkKB15JnEBU-A&tuaF=vQ=yp{sQB9DJ(g3iBTwth#D=^fwIBcWLl@JKqhDEa@w zymt^ypiFPNk79GHt+U@5Lfosxn)f3_0`Irz#N&Uh-ISld#q<_axU#(iMGYk8e012k zeo<5_(LtQ{pV0h?HQR}f+`W4jPq|!Mf6GFqKe_y?s?>N-v=e~T{mB{8o#|P7@Q@nk zu0ES__l(E#f>!sw*%~VSH@^D+YXSNHeWD=bPjqvLenuK+3^JLtP7bs^ z$B3gikdj{Jn`!j(^3n0-5YsB;(xCy(i+v#q)FUOyxK<7x!an+lUGG z-Vo})s+1|v8MIVCXidM8VG7jouCLQ(vcP}-)j0ghKTURn@{~0w^MruZ^Xm*TmQfuQ z4qiIZt*M;b;eD%tQO(tqgI@#AL#=Aavw8UVn%}z`iHZ+gy32~hp5t%R#@F)U%Oc3x z_QIFl-Bb_t1s5I+*a<1$&qr4}6DQ&&$Q`M)`S~;BBby-O?9X;I=Ofoz_yL}|zgg)HPxQ_^(yi0JBTh@c2 z&RiRD*)!Sg?1?or#EBGD)om(t#YXsI2c%%ydMYY;k*_HH6&bS{x7F|b7dA0lIu_ePg6V(31n^vvy zTadac=Ye&cX;9(3c_nc-e1B~Vl|3h-7)0FKXM;_!(f5p0z}_3BzdSxg|QX$pC>Lst%&Ue%PSz`}pi2@cmt^Ul* zt3h7Uiw_4K!%r$BNH`R`N^l>p$BReY{-2hU6~(GTKA#G8_?LY?LKGl%fp}SGFk*;7I?Zf@*=0bv#Lc8f7S(wp<4 z904k+g@4`a)nGOMrl2F-Q72_#2)jm^>#a)J)A~#QOPpi1Z^H-u$;|XoMT*zsY$5Eo z(-f)y>UDXzG~u@zB>>F&Q9~v6n@Q?gF)goNVGhYcjT+6&U=xHDghJlxJWwMA=#mD) zJ2gG=i7SR##abGO`R$p*Aa^(ugt!Qg=B2ywwE%~SabS95GKZ0LxgmN|_hpqQ@tbV2QH!*yGUK=y;sOW8g-x5>3xZS$59}DJp}yotCT5WuJyX6q%i)ydaV`-G?47(({o$zHe1`W(Rc3S&t6gile&n_(${ zBD`&<7UD142i2}{#Hl)C_Hp6HjJ`%|&kMHw*wyJ)Rr8}MND#1m`UxBBM9vzPVD4K1 z!EmMrGz!khLz0)Ow~qbM<6@L2s&+qtc7m~$&yz3K)_)`xWf$NPYeCaL4kcgaRlNRu zFG(TsFRw;>-Q4wa!ltqqz2-z2weFdNxk6h-T$SIcweZeJ zC9|kK6mzIiSMH++!CgZe9cawJ0Cltybz{e!MUE$UVVP8W5Pisa`E~W$0Q*ThWo&-n zSaG?tRYkmxG)Lf6bAwduI9^c-$!tNI&f11`ObRmB+UN*+fMhQ+B)}=z`gQVmaTCNU zYTFs^f_4)eiyz+Yps^hYRawZ3wWN;n-ndN^eS^#Gxatt+*yN}*9uHdpbv<1={f|(| z>Xvcu_nOD253L(+TEVoJz6;)$s zf{~f6hK8h5Y-Xbm`3J2<1trE84o&hmJ+NN#pEyRrpUWFVUIv0kO(`R(gNXqpbB&W! z&GwuEMzPd?m50O{f|y?I^th>{|H{k_#eT4 zrpOy<2l9@=)7*ZW;^G@U?3mcL;TV z`t;HGo~*dCxcj$W8>aPzn_@*xzlD*66xWDP6{3xAElm3)YpNQtJ1>PaszNZ&25n~PmIa= z528n4tnalOyALJhOzjQ_vSLaFQ*qOjuO18#+~dQ5?ymMSHsx+?RAz8-^FA()TVz|Q zP=Fl4_(`<3@Wgku@`?N`w*IGmZkgsEi~zNif?v0=Rdz{#9=SH}a=@$J2(QO& z?HJ-Z^1<@=mBYzvl~)7K{D9-BQ3U^7#_QmV@(^Bv>-AFC0C=>K*L^~xDB{mVL+RZC zE(-jEZuwS$#d3iFes^zK54#CYr4jA%GEwVxBk%cobq2~r91DE4M%Ezd*YRplPgX}t z{9_vlahJ#{JGTq0M7vvqYKMu07uP#Y*N+l!joMJh?6mSM?Lx~Q(c&EjOSP1Mf)6qx zzZs5~-k?^7I|L~<-D7zw5qxTZ+e+IgB~#huGwb%(%aNf*`F+-WaMsTXEyI-7e!fftR^ zAH;Vp-KB-W{&HnZ*J<_Y$Mh^TmX4?Ki<%GLWb;dp_ebPlnVwg(@vB!D3Rb5yf$v zGiQ+0L&uBZ%*tKOvP$B9)uK%!tbvkH#P~9Z*DR9!^&gd_B5@~cUO+Lko}Ndpo0!#d zhoUZXPMYZG(m~?iVu)q1@q;U;_vQv#c2N+o+Ng4L5^glM5033jFbhf)Awb_ zqmgFPC4Sf00Llo=YjPx?@2c6h{fyV?rbv+sk%PkFT3aSQq-MUl1sx;MRvzxUI;ezn z5{J3(k+$|~8dRdff&j!}{|<E?$<9_Xa6g{!23tFXt#xO{MJn9n6#8W-s-?#M=ctC?3{5)SSlC}oSJoF z-7HC#a-c0>?@OsGv%=7dQ&@*dW2to>lgd@!&;|>XSwt}tkMssPsHxyW`NQF<+us!5 z$D!T^O**b)dou>waC2w#)lVsfSMT}~jS6G6t*JJTQTSsOu@$zSk~Z-0{UNb5yS|+W zMy_^j!%a}B!^f{|>VqM+L5_cOzLmet;lg&fC&y9zrO;ss2EY3&Gc>fmcvg~1n#Z`! zcu>+@!ybO6F-~6yelC=`qRGt-bS~!L4|*e+!0WQ9GAa7aL#Q(;6t30py=H*77oao& zbJm}nkMU@KNy;I4D3MB${}nOc$B`@1v)Dla3l2G$j;!pcP9&NYo4x2jg6`FAGj|KRgZO>D`ZED{8n)BI6Gax|qyym)nMz61F^5^-fZSEyvD z^x(}-Hp7w8l~b91TSjAX*}$?pKZ>uiZ`f1Y^yUF+!{zWZI`fEfA_2k9R|q%{ydBuXn2neJ*4ze5S_jzj-=hea|b6uMvB3OqcL%68kDkZ~-~(cZL~fVy$@M>f}eX zP@?nN=XZ45mD(#q^?Pmnjy@OK6Xx9*h zqTw=!Ks^C==XlLJNK6I__!`l=yezzj7>K<9c?r5M4_lGW?b*zmHabKUCabte5TG1x z@B?8IbE1lwMY)`h55cHWOn-y%2ijM9q}15^mXQaI7Us@nQQ2i&l_tqu4@IFRni{mU zf;=SmF~uxaPD@FBSCaWY8)Zvo8|;P#xO&dt#g?!Nx^^<86iZA@5@|NO%^Zr5S{l`i zVxn7Wg?{^$;47!^9zF7kxCznpG?P!(|4jT<^6B)LT$wmp*e1pML5_CuIiU}&-a}(p zBN8R6zf}1Y*d&Gd#yrkavamLw3x$wMj9g7^pLM6$Nszkk?kz1`GL5phv6b+x)Ge$m zj`_ekn_f&P^K7P&*AtpT#ywlx$+*-EiQ#pp*Q^^lMB76oL=t~J-QZ_c@YT4<4yS+`!v{|4P!a{w2;$0NgL?i@M*Foqn<;u)LjVI{K(=Y-DXMdE&e zWWoaugJ|bNYKLaO8V2yf`da?fcIWjA&8fXOl}GY7N7<7G7Y*ka@16==i%mHdZ2E(2 zjeDs2%59HO(vNQXHcZ`&?@WH8-9_Jmf#1j{7hxYs(0^{YSw^y=HN;> zSS2?sgI(g>w#qteLStf3E*z?wVDpi=U%n(D?hM&X-EOd*nJKOncJ zW_jvQpzOO9!aiUJP+R>0>Qmy36}~DiE0^A@Y2yhHtrBXDH$#fF9lq%k%bU zsm9^9`6Zd0``PT*xOH63j)eyx6GsJI9pjhFR@;II)TTJzEN#S)WlBo04aRneqiAF3zVR&?p|so zai5KW?KdR75$u_hLXk9_c(vF-*Yi=S*UNnlPbdQ;i5`7-p(tCFBO>&4_Y3Vh6K+qj z9w7+XP0B0dwS+ROA3qsR;h3_r`@YHh%duyAsINb3tHdRbJ@hPdh?pQNVrr+r<@5t~ zRDk1azVSDFns!^ZpT5%@6Y^U9;g3*K4~|n)LBw1QMT!YTC;*7`%G*x2(U*mHN>;QW5KP10vbUNNzE+>&){5U)v{U$rgh);d@3 zn6Y3C1^z?d05MQBU|yJ6Q^+XM0jZI@~^b1eyI~7 zXlsI(FH_hGur=_|!jSPa-dYjsTOF%}YUcSDIcDV?2ads+?cQg5$YSl>oGWFwK>Ux| zMxG_EeepqRV93Cg`4!OFMP9|0vaY=NL)a`yzlF+B_+%@Dg{8HuLd3?G1CRgHMJz$QdJf)#j$DfWHu!rA>4UpbVl{oE^{iMJ{55ZS;KpH; z3yvT-DICx8$4s*WpC#0ENOd&*s{IshEt!Yglp%F*7Sf4@T-5be~9&L=t~o2 zaXO}mPjfQ)HMOLcGP{A>B$UPhDSg^dqlY*t^`qHje2}imtk#V#6vy_%DOU-VBsO zAN*=?P?JPo&z_jtqbww%dq%5DVBIJGB;PVg{F0e>S;nB&rGMDs+EH(lbXd*LU0^6d zE#ZQ9uoF3wDIWOyL3udki9oDY&8&KX^qFOA=(@A3Fj;BV(yUeII*_j0Eo`sO6 zs<|(7|DFf}-1c(sUZk_&zy+}Ad3U_Jug1;H<7n=*X`B1@_c%P&TPD>& z3L8ZDk@m6&V=mByY))UWmD)Xr`{|khuox5>cr~-8JKlhpvR8k}=U(GtqWqTxT^6{>CeGkJMCmuoR`h8?;Iz;hsDxcAvJ!ucG5hW5c!oytp1|O@0{~ zeELW@N2D@~f4_0ESo?uG6P?rM@zla}r! zs}MM2y?4Adp5TV@JCha~P5cC{A5G8lxb$StFJ8jb9g64m;`MQSyT2BFsePuq2b@f( zs&Cfo&5ga6eni^eWXW4ku`|BY)2!_ef zcYr0|-eV5(7wB;1RwOec4Rnp(K!q9Et5wCw%rg)FZLm~Bk2_N9BZHR%TG#%QOF(K)i`J%+wuCL3@ z;Ho3`wM^1L(6e>|`mMT%ms@g2c;$KMu9#_!j>wfT4bCTh_&0sk5qtpYbrEm#2I9`u zHMIomYUd;~QI+TYSrDCqjAY3*KCnU8<>y!bhe$n#&f49tCh_5zP9k|HpJ@{^I^R+K z1{80jgTyBbMSxOPx>~j~e{iM9e39H8{}K^+WtES4DF^4{;R#)n)>!u4S0j%;7vu z(ByOw*xn)lO#mtNq5v-JXGiXQjA%1yfF49H)^U8#4NbS5b=Tu@TSXGHN zIRh`GMW-wC!`#!)%=Z!$$1$>C{|^h`=>|HM`iAVB zL`ro~H;j9p&GYUV6)C`e%VQN<{>l)yLM;MrDTOc7Hm5u6nBdAM_1Rbo$kCZu+bRMK z^07p7894YxZ*`TIErq}NxmTA4D7DV=(mMX{!JCSFm2b4I=OY> zxlMM-A>ufHhCAO8SEpd*(Cc}D-$z5PjKZ0a4ZF<~jLGY!b<09f<5@@Ha+);LxYz80 z0MllA!VR1Sdc*!UQta0Un=iJyJpwMN54h-1idoZOrgIn1ezLE(*`J?SBHD#llbom3 zU;Z^HTl?jT$d3x6(YowCil5`TJgb+vfbGvs_==-=cLlpIidl)=e6-56omAIoi%SBGIO8?*~QbWc!p9 zY(%5sjY~g_??Mm+2A?aCYq!f1c$7;p3gv zlRU5tRlPO~Xm5LzK8VzD?{vT$-+NPz?QEgyinTJWlOobC%kXQ?sr)WB(BwL>i(Iu& zqAH*r@4{{mFbf9n2^?qQABVpgx&lC({|PXjX}!~0JbHHcUH{u^afhURYf0(`mJW%5 z@4i~-zbzJddECcv08MalqZ1wo`x*-!A0UWu)KLt;OkbLmKPxi|&@* zjmk}|Chrqef*LKYa3%O>KB$;q+rDqBVgx?*an!GcqUJ(&~VJK zF%&H86nE#m*R7gDcv+^Yy3T|$W+X~&M5ded!L^ssk;@Z(U1t-t3i4RPKBnR7;D46o zL!=n{@v$5q+`pMdZ<{1L@D$;#Do@{>P%0V*PvjXg%CQVN@VY%gJh}2{-|Y~7(3zzZ zoAKTxybpG9%p}sM_n4GIhyEb+8k(Uc@>kfZmpfvk3J zKYMIJqWc9U%;DK8Yn@htzfR)cABe4tdrx3Y&!ax}x*JjfiudlJpNCx7s{6#dWV`!5nd%HX9b8DskcS+r-|hrvxl0TSGu591(CSn^J|;B6>B@v~rzM z#u_l9=Yzq~H$+rsGQg+ViBB0fwLI@+^fwQbmh}!{A`mdz0q#-=@0dWy>*%j$zbVW+ z^KChlv4_58mVWud+Qe1*I-rl1=5V)*YJJw3j0~{qFN16v$PsXg+jn@DnJOQ@JllJK zdgGjoY7*3y&M7~HxEr#|ZDLSmk*QG_*3MQKutfE82@UPtT4P^OW2YO^21=VrlO9x3@y^6?h$?>&d5NNcphMfgk6)C(&oX!iO+;{DkK!EEJ7s%~yNf_pted-KZx>6Ag{) zDX0Z>c|J179bHu|8rkQlO$F}JyGzx*px`b{>TWutu5%^&#mPAM2DQvb%N zsUWlz3zL+qXj8e#q!aTKS1t{*>l_POq9?X(u)!Sm&N+(P7l?#2^1>Dc%k@pjM6qlb zvJyNLPQ)$G%Wq+L_nyHgFOeG?5`gndJd-AwYcB8*HvfuXdZc!WC84L^+wzd z0|tgfQaM69Bu39PIMh0?v>NDZ<5z4ku4iyV@K9K2Nl2RMe1l6`2vUum(7j&83GKSUwd=BPN#RA_I_ z9dMzqX?>eS`>3z#H#>_dKJ-^@yA5S1_<33Ag*=4|u(H*SvDWFaLF%kc-vnc#9knrd zw!C~5Qn$Bqa7PuOo9uP-f@57CXXury2%zc-3Z~cl6Z8j_=tvXTAxM5@spzZNKqD1Y zg%2?Bgc(64ZUzV5>{eF-eF#^dy0Ytdg-Mql9y5@azE42q!1J#6K#w@|Uv@NZIa3`1 zZKq+r=nH}C7bp0KwcD!!uP*S2f=Rij7J61tR~stU`}ZMl9w8%#mStsB>4mqxn~2Q$ z-vd(!lFo|0s)AU@eaMWvMHPe)Z>*o*b-Lf&>B`bEaBfWd!kwKYpC}u#<*!?#hS%@= zS<>m=DBu!R)%a)=McfUM18nrS$?n52PZ%6cuHp+f=6AF|QU#^$g!b!Eqjy!DC*B#`rNd>v=Eg?Z%X3u1UJ9o%=;%tECr{ zmhl0r!U`f+J5n7e>8@Y$Y&k~%S?Er{%=FJ^XnJzKxKT);bG{d@*&m_$z>L~9mu;p4 zd+M$;Vj#*zVTuicEUGIw{^RjN+JjKbkmo?+^S$1SIb#TRnmXV5qInOKeX?>A?yRjMh9AxKxFotDtb*ScjA_!&3)NTihR)VXX;bmbE zjp^rjhIu{!fxX2NdVR7`QO~}-TyTxE&MVNAA@&x^v(GwlgFo{9+s+u-l=2KF(V;#h z$Q2Y^GjRR9l1mIHa__a%&uVsL!GG?@UHRirpC5FmdZXQrcP@8?olo{I4ql1gneBuH zJ*`yTXY~x?azxh2TG&Hbf!&guu_XB?Z-><9{G|w=WRz}IhXKOtBcKfH8MH-ubJ6jhmn)W={{9DxuVSAyI9O`g$QR>Mt zvR4EV3XE(Pkp;TFe@cslKl-(y-d}1(EK~9>$bClSVZ>|S<-mx-gQD$wx|LPKeiHn6 z@1$O;qoeEFP#WXTEeX8>h>9P993Qt*;%i&b8T9hZ6L*sEW*p z(!fmD9kbcM`4c&CLj7JB5!3lfJ-3VApfz{R47~#KXvBEr{dt+}Jty*VJNR4y>GSg< z=z13&q?SdAyt+vj!7=J)u#@qg_e7?cF2S>|b4YUI#M9qAPp0T=*U#72yt8}3i<4$6 z0}T&WStf`It4B}=@%~|ym_y#GMScil{XiCKXSvkG;m#fos{61#Bsp#4Gq1F~er0LRWiHUowg4b0I`iy9``!PBhMmh^ToSUL1WO23D zyY7x%4X1!2!xi)@iJ_Kxf3*nBMTv2WkP7UL1}eiv5d&pA&()$jzu|kHu9$^3R_E=~ z3~Q4b`kIMWFfb{hiM~SJMlWup7lOQttS(bUf`1Wr16|vbzNEcMGSA%J;SDy5cGePz zzc9~yv_QSnAH z(4JRNA75sH?ywvMOW@q)NeD~p(^p!Yf)|V?{7`?FHdgOHJH6N*S*ofBv=hc$|5&D- z^tk{@Q;J1@2??Sw^?{CeFyVz{bl2fmFnpQDBRcljrv|CKE}_e|i@u33uTe_s0f5^u zK<+dMfINo^*Eujpe;45YoG{bXh`yj~|F1Ijs#(^yn96cPq(#jNfG!hQqr`&5zT3 zf_Di2tD0=2m1od-cDhS<9Ean^zVco{;&1jYNw8DFh^y+9g3?{^fZI9)AdfXj$kR-v zgnD~)X;T!vosBQj0%%>?`Z62;lcqneB|lAXfTO8Lyq5CEnVwe2_{(@`21Tg9Tl%a* zo?^wo&G`w6wJPpka?HI9$A?Mn0oYKIYAizipr+nZ%MS;~d28aU-7`1$wG7vZj@mWv zzFYNUCtZ1dFXDA~IF;@Kk&m!+79Xr1b~EtW-DPc}-E=AOVIe-PbKW8;MoK-0kdk)+PuYBP4q})28!%VnAsGX&Aa=Xc)Sm{W!fG?R%nO~)=&<^1L~hF#l`!x zjDyD2au^39%m$I6Al4_1U$t4B>1II{;~Vz(-H;m}C{ zlbgYY=xsr9$Ely&d{)!fktmNfPjNs0*=P2AX@0AoA;!)Z6-@ zAsvWfbj{;N(DR}|clC&tG*PeZ!h*`pj^^cl1++VT_2`LBbiJoA=>j9sba$?EOt?ad z25ZE<5NS2wE!ppc4Cf%r`HGI>#kv5Q9P3wJHE(#YeX*zC$y4=imr9`Y5xX+5bW(r7 zbH-?ui4EnvZk(aonv&SG`c@B-Ia*gje--L;=(25tRO3)?rlA}8O`lcW9yG?!cp8zu zNgvbs12+c<4LL-YddxBrNnPF@fmHz+dMpRvE=Hsp6{x$f4mk@$ zje_x4Id1=fYN%SlI^U!H8|l#H3AU{TJf7eJ3~Phx(Sx(GEMG&U5vlU9AFGsvu#Q{fiI`}9U z94nFZ=f~3~k`W3RikBU}D+y_Gh(URPOaIxik#BlLPu{6X1mqdNv{?V304XMa{n9=F zdwWYVJP!OPbftHs$NY&tVICMg`XE4u7y`xr!LbG3;1XQXVLiGYFV`LI&lu1P=$8pZ z+Et}MiGuJ(_6XbKQDQ#Qp8UzjpceLj%aQlc9NyS}KplLnABxT^t2Pv(Aa|yg6&$9Z z0(8Tvo$KNQ=d0Q)-yC?_vouxj1*vcSU&>l9*bWKCdHXWKK3N|LxiaBL$yu`XQ#$nY zv~+%~if%hQ=a*bxxj*M`J>#)E)AqImQ*Q<5`jK$LAm zIu%KXoKn|VRa)(xuF7*D{pBN%k+Jxo;UVhyLG))bBYMXy8aVTi)`Ij`&L8Q2%sAt# z@4u*fyeig@l%2;j55<1}jMg&ZA)eYvG!b3k&f3K8&rqks8|OdQtQnuqI^QpZlZ zk&jN(-SJJDwT$1ivD&eT-yaisPuG_nG^I;*ZJrjV0O5Tw`mFe|=CKN({xzWEtXRH8 z!XJvc{9rZzMFJ0og2KmffTvKI5O9@&uc<|Qg_5Z^3~H>l|JLRDo-z8e@Wtk)QK7}8 zpWnE-&cH4btSglCc&Vh5IzDbL0lZ^x-xyRjj=H@tue zN6;USWxV!fEtGCM5y zazY&(8_-UBr*DM#b2N8bm@Uq7gF58Zdj|}4D$^y`d1_=&DsW`@8`J%nPTA#vz^#$# z&dHKE3`0@C7Gz=8y$94-IJ$@h+ndmUvNBPT&f~Fgi^3K*)aD&S;A&T)BmY&({GWi# zMd|qp+`3fU&tc_o?w&>-|PLlev2tx*pTL@TNk=gl#xm(Sr$F&j^-HxtkH)6#GLMmVf`-7*-S z#I7c`jsm9P7$Y^#eBgjpA+)Atl-BTd-=}dy*YFg}W`&fZV#xh0H@4R*78<}<=b3MO z(xYln)M#(A`+_a-a6p<&gdh@51D4p6p#eu@FJ>U__r}v(JQB{W(qp~x&&A*(!qEY` zp_MNA>--N(aXy4okXhgL7o?~LS9P3LIToF!xT3;1154_ia*8`oC2|z>>VAX7c#dtC zoxOt9V8gL`wq%6!PME_F;{wt_=3!g>8J+Di3D1iYlWnP&Dcg%As z#nr6^CDq$^8)BMZX;u;_&r&@BM zv3g;)?&iFT-4wgD9b?1kYM#ePMvsc;oATaH$Jf+_YnxPUOJa`94<{eoO}!rj6{F)w zkH-xx-V~5BuAWyL_{^#4s7<{x#TR9$eO-qGwlizZ?^P;C@7~jaI*zbU>>dk#QC!U| zI7O~bBTNV&5H5QWXcDaZOM|&lIeIWI>XSh8qHFv|m_&<`89UoV{Fy3UpBC=w(19+9 z{|)}zmkD)vcIf+VDZjb&!^M@Y$Am96bq9ZLxheN@mo=Y2Pt%2On8V;!2+OZ6FXv(7 zb#8xWmZptn}{3Cc&_UJ>Z(O_MriL0YY4ssT{W#_k; zrZGqV4d3b(;#_|`r>Al~y>^+Q`PS(RF^1r=a=K{Itk-7mF3y_CH0R&|LIhplg`f)> zEkec6WQq0Nq`ynveQoZG6~4@(J|9rg`#lEuD&9pHh|=!EZ-{HT_)P3Wi12FK2QV9Ff`ashjA5mo4$#Zzgth#hw!{)?DL8L{Y86!u&BuA z^Q92OjcfXX&2}L;jljrLr1rgWx$nZF5$GKIvea{oQ#EQ*6ptXk$=lk3;(}w;XM_EM z`t134^%PB(t!jjY8!|~_{L4O@fx#Roup_hBo1A|Y82(}m|Fic0^(p9JMoVuBHq^(- z`tpBphyU;Y`)?Sc0eKRL^ycA-*<1(eTcL2X!}BAFa?JC#KlEx>U`4navYmWNYsH)n zY_A$}5#MZ6@1yNR&MM51~ht9(h*+{)S&_P{1QXW z6BxL}jfffhlrxE^*Bwl*-L|m3n%~4<-!0l;@vE#t<)fMDUMBdkR2!JRj(GXbR#^Ln z0*qQK|Fg_qgUyoV`x#Tkf*61d7D#acH3PmR`;-vL7^(15Szym-80$}?x8?1PjePlC zDw0|2$aRE4Znt$L1BJrLh) z*(v&pqwM*FlKU?zJ}1f)_$hC=t^!TYEOK)mF`F(f&Js@iszA{@J^&dG%TML(ZVIw= zYms3sGu&wXJ=&D-)Hbo89g7pI(|sM*jfrB*b0K!YY<@2~-Z!z|e7?siq^<-|`<*{3 zeOj!ZM>`yx;haw0s+b!)(0xBWED$#crB*F62fEy7-?sy%UjewUK98T-RpyyyH84l? zxEOuvEQ?SQ_~>0k>Du{cF<(Uf{2gvIW!(0l&?kU(`Sn!2plt%lw}eFMB-(ukUpl>j z8>%M<^}CxGGPnXI1rwiZuhBit5tA=O-M}1J)0^%8*1Jhayxa5?=8|ZMk$e1x!kMWX zvfzLgSrwpBdlH!6;E&Zr;Vmq+TO1h7u9@%JzWeGdJfos|-l*W-wa0F9V0)EJ0Z+A9 zT(qmNNoF_>*0k)@^m@O&z8jL~U1ZLe+wUV?6~gZ!Bs1AvYp-AxgH|-V)A;UepvRE{ zdx*8N{|a>Ip95qqL+m(k|4e4j`Z{t}Z9feV(Zki=VV3lUC&D@%JDEaNgg*gU;J#HA zFVtUvIpLgzqk4ZPi`aji+!g-4?`**xFE*gfz^x5LO4pSua3I6_jhdf|yyKc_%g!+| zbjQbDC*j0F&P_Q9FwdlCEPymv#il!glNJB(C712P9<*H1bZ|H1EO2lU8n3qm4Wv4l z15hfqx6cXLVn3SS1gKmqCHre5a!qxeYE$$r7$7n20IQotY#0i0ex${hWKE6yDr}tRH+*#fI~YzD zZBg*r3^ZC+I^IStnb@)148L#-S@jZ`#vxLEKkO3(SfRuTt zYuWOcp`}`Qr)vv+{@O#~1SGwjhvuVy_pEn^jC>-|VFYQ0dSKZ~gRg3`&{?Lbw@p(T zq6ue(0vuVexq)uo_zdPRMD;{NaCaaU1`i6QGNqmvr9vSBTLY0QmbO!NxJU3itZj&; zU%}8}L$%2q^{6IuDF%p*0PWOVn$#;Bw|aK$ico=0-zdzOU8Bc8eGic}cE;EU_k}pn zE5AcreYL`AmbMuPB^|-SJO-q>OXrM;?pfz&41>IFN!QQ*CG{Gb|7t1xtPzfNgcxfv zlnU-Tb^YzB&OHe7hNpYr!(auRe+A6^6$2tOFZ5TjrAxqIR}QNx|2j^g8nz2CAaaBZ zAu*J2asCPo`QnH)#35bPs3PH9E5r)_%>uy3le=8;VPb#+AoU@D{0_+zjDTHErF5?U z{HvZ-oP|7z51z(JhH91RKrX__)Jz0E$n-?-^ZmUb^64*S-{Crf5pbtwGUuzIu&&dA z_xFg>pL#edy5ug>mJ7ZR3-eY9OAmOcSef*5^ZX1qw_Ba@tpLSM~ zvk~rjgAm9JrSnr&b>t3W-*s%1ysW%$n*J;v0@}&T6?A=NtChuGhxdcJ6@qAhQU#@jN z@9)ioHhFcXTDO{BMo0qdbe^r#fKw{0&krb&L+N9K%Cl&=YF_+(-+POQwH9taHc1C@ z`%Eu6_ZmrR%OYv_08F&lYWmnKxo0H`@YMO(clIEhOPMxm|M*2-KpP$4Y^a65w@eUr zP~djFsXOc7O9M{C{)fv5=eqmC`U15^0wGrW9>C<+fKnWud_m7?S)ifXP$N_V)>w_O*v9G>*UTorvVR}E7yvL49VMW1%6pbi9q@+l znZ;Hb=$t@I7GEX`q*q_@>_sSiG`EgAJCSgWdmA)3K+``+vZi0Cda#E=(8I>iX@b3# z7z5cUBqMubl5Kq?@b36po=F(32EDvk%;8piIVgwW8@$vh{j{!ut@ z+l!s~czE4d_S^H{vsTx_!t`ykPQJ|Fz`j-a#AbH=vyX@Eg^`Vc8**k5Ts}EAtO$It zg5nQmLY4d13IVx38{3u;vNH*tdXX+}etbu8S+|fiZS=qx3U*J{kL2Aics~c9H8(Gg%5)HlS z7e?bM=r`5&skv`|C^kV4t9@oZ>g#UWSE>l0wcJ85YNA~G?n2S!t{W8M2Jh{eED|o7U+>`qBma2*f-26o;b``v<98Fq(1us9oji@Gf7{1WG zn+WU0Yh@H2rPUn2a5;^k3NZ9t^tq;2{~Rp1pMr+QVzbnZvEgMR>Ml$ku;_wvds&JU zyX#x&y)9_Cn3wep25m~e$T zQpIa=@aBv|a+060N$>SwyyJ z4wYb~IwF&Z{8&%mgjI+}r2}Jn=yKCM^H`hHPxy8J>}m7xu4$(oqx7$aN0~r#?q+U} z^f9>yUcafyk0=>Xg)es`Skn4V0c&4z$!FC(}sd2*zlc}gdbYFNvZI&C9_gh>$yO+7a|sd+(9Qw!;K$S zKAkpm*w8UWN=4$0-bjmJ9w&C}{X8@6y~}iYtitLYsq;7SI??mozKTJ%;^sCzVUh7) zMHA5+{QBK7IC2gKo!3I1P8@=mhLd^Fx@D56!3ut*G15N)4n{SHGe_bt`tDd23vs>Q zV>$l#-GP#&&N`B|vL)kANX=TBc-g2IgBxI25&0-Zy0XO?4DeGNI}cyRdjDxb&p4A6 z+XVa%hqYTQn;Z@wCv+Ppe`IiG&)fR3DjxD{$Nm#hKqDVeZ72v=9Hk)q=FRL8YPog! zh^0)0*E~I)&Gzt$2oyDthrRz}9na%%B#$s0N#O8B{Fckc!3!=sr}g2it)4avR+gu z{3*^JOLGC$kxO7C=<9F1?$+!F)e)g=VJC;oE?rm9;I7y9^K}do-${^cq-=9mWO^`5 z85EbtFMxPyR}wj0vq#-eY z()-S-pTWSm{5Y~crJjbLa8T9j=w;!jnB%#Xx$tKY0U#Z5aS$3zA98^gumf>#M$P<5 z?E}sAKKYvH=+a>H!(@R#f0Ptx{2_xWH0ijj++yz$frK&16pmy|CnODSVP&J+jqc>Fn|Es}&c&k6{D$Q|=!~fzox6BIh;*r8V~7R?e@w?#ucz ziiNv=G3k#oSddkW{V|Lt5OIxU4t;>)-PwLyK=?Pi(mQRfFR~>9`*!|Rb$c5w*xjJ?zrl3QID72QZ}qhy$%g^ z92u6tUu~#RK^N@4E00;+vbhWPdip8+xaCFjnHTC3md{5-w_lw<@6=Ior&+dFY6Dy% z&3a{iOqCrVJ3>O`_3#ixc9}Viu;keDTx(@s{5;KNv4F{EBO@@2@yDw?a$Mie#NbrG zKF_&i&SUjmIvqM-IArZs2Fc~5Dcd?j-#kLrk1k48DYXBZ5^qV<;8>Rq&zW^`jO{nz&Q#crre<23{gf*;EF%Kk|QIQP1Cl9gQ=OS53sxR!v<>IM^#kwCFRn zy%-iE&PTSC*BNLzwKUG&>^o%JVy~}_wKS_uq{*e^QYwC!(sbT9Z~4e6XQR5hhPQ|N zwY)U#FsHw$M8~HQ2zij++xebb2e~PFxG$iSzEgyO8U;>n-2PE;KYWXZ&_b-WDg$p= zl+_5MOao~bN7XQmdiANWDGJ0ka@kU&NA#4!u-J)~#>d{Z}DLvsBJPWl> zo=U=<0^rw)_n**VGItV0i*A(18m~-JV}@PqvYg(AwZ~b>Ml18AUbzaQU`a_!A&u1H zMBGtdcY3(Zjqy*k(LE2vmt=lt>`Up9HG-sT4t$Qe+-5u(QD)u`i%dmn(n?|Q+G}lc zSu3Qn^7A5-zA0s&DB6NPJ8~9TT&Ewl=}zCW*EO-mKmOC{I=6&t=={9g^HOPRwIAw$ zDQmso>8u}u&N!PL5E-?2Xf41aTRykh!Hx&uDI0Fo*J4y&#{}2!tYG|P6%LBtI$P~} zUyurRZZ#kmcgG7cd0&m{w*TjR;yG=aS}4wC8KSy3&_<>JR5meQHU?X|2d2RF@2Tvm zHR=SB4w5B=c->={B5$H`99+t_g=R}yiLF}qqlZnTS}I>Zo2QrFirxEU z9%?JdyU7+2K4rqG5$Bv;sE5@5j3#|vOehu4s+Klo;E<9uSx?&A4drubQ3$Os|H_?7 z7&Mu&Vk!dv+CzQ;3J~?e&8SD&cCPzaRLHH{4MI^2KZ?{aNo^}qK;M#+?E8xLz;lvjwb ze*6}+LJ=LgYK_{re7i|=_iz!}#mH!cll8GWw5mXp&Nk&xI@F%%%fOQ+ z23d7~FuF5~)X~sVRPKn+$WVt!LOKn%NU_E}w)s`C3Al7sRNtOWFv$SqA{l9Xc(r`k{< z)XvKUpW8nH13WuU<9%Q`ENzarJIm;z?u*DsqKK`)V~|VoA{@}M> zIn5ILQZXm&;X6P^UL2^ zWYsSHG3AZrj=6=SEUtG|+vQivY*;z4z~tHERec40WzqLyO=5R9JB@WCQ*HClTXbBv zg~vZYszD7H6N*~`(1J*+TR!Uo%o!sDa*^?VJH{z`csn15`_(>JkV2pcsm5*#BU&al zGGm@-qRbw{$%z=)b{*wTpC)(}97llOk>fwh>v?;_4?QjL34?Nmz5s32xdA1gh$Zg~ zMKu7p3J}19K;mi;GFIZHfo^!&5nntGH-W3Xg>g=K6x#M+`(=SLzB`<8*K52{4 zXJ~G_GT9UHYCD{PS32_c5v-dHhdN%g4QrBA91E zeSBtioV|^HA!F1N#n^xXxrsvo$M-tXA6LK&+e~dR&_}~_hyGrX1nGzIP5hTDs?L1= zAd#0sI=k|+SwO$#wlK3xK-LvkW z-S%AG@8z`>NiY8kn#?D4M8l46gAo2+5J(}TmZeJ_Cyv^u_#&r_taMa2#k=HB1m z+~Qymz%IU+_H*2Sh(*eJvN zx55mAHl8CIYG$k2_iK^d5j&y;N;gEaw!~BRK0kS3m2}mpjy8UG^9<4D)2ROXiXC1U zZ(w=%D%p7ciJXZx_3pu{{Nq>#VjUF}T^u9EnolVpTG3b9 z!cbw!9MH*f1y(VIlFvkd#J+T^!@adSi4Ay{WeD7I?EAv)hAXMTN639GW9=%|pj!bO znQMX;YV`IXJztx2P5UyL%;^<9`|+Z#4o`J@TxDLp+U5arKQAkye95%Bec1Aur)hH|ml|M1GR!b*!tqm8BfnY1x$hnf=N zjB0ep!z9Ll!+e_(Wgy-55qdSNh!y3=dO_AluY+$A>4s~tz!q#@{2BBkHs^czmK|io zh6;KLh!X6)|5(X&pGVoNskahHqNXpCCWTdf^{{~5<%+shZUK(w13ZvrntkJ#usSco zIjHpLT(PuXb^Y=6i}>U09H2d&flcm0?;)2@fG)#PAr8XP={f+VKhIaS_94?SmWH0n z(sbl6N86uYcD46~H6-Ugn1sPEv&N}O&P(S#G%=k0Glo8>`2V;ShMr=TxDG5nl@J5! zWtKNyJe|fyr0SJN5KJ4I^_9CN@)tBBTn!=*Ium`ciHeYjjE6eF$I}OXue0}J*TvXZ zNgvy_X#jy9F5FWnMCgesC@|aa#?Eu-Iwpa}NX~6}E|g$$qkwghC4fk4gNKQ8Eh$** zHLgO>XU8>OQn#ah^epb_ss=KASjM8>^}jToFxuf;pc=P}Yk*ey{_bLZ69d~@DADJi zi3Vh{N{!v9qx-Z$HQWR5Sanw)qtUmY!q>MWqr%{38`zB}h1p9N0NNJ6KsFRDL@C@2 zcO&MqBj!wpvm80t#5FZ>Jbf;{z25qJA8KW^aLC+mks5?K)o@3#G6L1hFGM1yf|Fiy z#dvAC{2{Af^oo(F^lWaT>eAE)s);{&3eVeGi5=Km(2@?`=2CW>^jj;a(;w1UxNj!< zW*VMv{8_GIN2?OR10*OoO!nv*69YWq`fjLbFdwdj>U%-){vtxN_ZZ$E;|!EU+{`zR`MC@qYSBvHl)gL_8zVcSFA|Y7!rJ<_bO46o(;RMbTxaK-tF*6mwxVrzkVw zAM3I!_5|TNZ>+r$l%?xcQM<)B$9&T)AEC9?;PF-WvQN;hRgR2PROp|A@a=gZTDyE ztN&Xk?Px^Sp$2>QA}0WW2U}8T$E&KN482)NsM~ao#X;&O7na`TW`_-|WV=6K_$^Vy z^X}f!Q2d#!?o5Z9IR1`gs(uA@>*B=h!Rpl_`80HZ6Hg|^Oo{~)iM54BZQga$j@b{l_ME38`m*qA4~2tI&aA@jvhbEJaTNcfiHg$l8$Yz8T_vD{i7H>JEdl^3!^IM*{2^pAM_yUZpO8& zJ%|tM-3zPc@sS^XB)G4w+X^QkV;8{65dy_bi^k*2vbWIFw=HC83Qanx)rbaelXVnE z@pt&um6;ve5c+OgjMPyPJ&(HttaApNN;?1|DxJh;zgg>P!wd`;h4?PLsJyg?vX~-Sv$` z?0D0@mM@{_S)x@28W&moMelYN`;o{qnHW_4<4H@=0DU8Fpc)Zxgy!>W03IL^4&}WB z4_3`kACDW$sgK1PPw1)f(JXG!m@6>!d>BKMwr$0$yzHh2hK6Las}B<{0SVXD5zQ)< zGm+b~rdbkdus_)j@9@L`%fCSWc`rcT-nTLb)c+~ZEK`g9H!ONORm%)9gGi8JpnJJA z9s4;`vik|IP7egbYhq`z{DAjwvOG@_fa+kBXTVbtIV$Mm`#a<;Qao4>Maod~v2(C` zxQNZ(L{jJcL-JR!r4^wO;P}nTeJo$+vdWOT1;nM8wE^S+*FtfHP8)P)z%NA<9tHlP zK(E4(b*RAgg$L;EanDaf*$Mo1se~l|yhbAN@qUF^Hp2@%Ovu^N;+F~4L$V5zO!t=8 z?Mb9Nd498qhfR`A5=N2&ZCHcS;G-cc@_Aq^t@;`t;~J#$338_U%rL9>JRXipDh z^rPDmCHez~V$~VMTt(ckam6a^S?|!hw0TrJ#bO2&b0OhJFm9Ug%#>cTskfzZH0c4L zKt5Bz_#7%qB-_9)nva>O_0uLsRVi$nKjy%C<0>SQ{OQD$u%~7mRu==<3~OKHGw@yEzl(U zllsG&SryTql`;@Xf7jfoAYV>fxkns^P>VaFVt+xf$EAKyV>Wsue3BkK?!6$R5RCTg zgfY!5SaJi-w@Q3jT3$*)Hn&;zJ##cK7}q}RS$ed{YPH@#kXY?N82rLcWwnIT82AY_ z{wj(x+EbsQ7>wI8270=)LK!sFG(|)lJVg{JKNSo7hg{g%PQEp}$0M-}bD0KZ^g(8p zNpD8}Q5ssn!Pd3~s<8$|^Hfv}2Ecje4c!_CsP<10i!cHoyN8?g*-IXzaF!q!wTis7+n-OuO=KG2{+UtaxpAO?Fmb-OXAyGOj$sW2_R#_oVPfvYj9K zFQRH)I-=SVjC-NQ&gN&qQQySv*L{6nEn{e3qv>}Vw%ghXaPF%(H)#Cyh5ccC9DTOf zJF%U4Mo4yfUl`AGZHDL&{B#)cZ4sqk%J1nlBh%utRww#M_lFNaHJH|;7x}%6AP~yn zjc@FUh_NDO7Ugr^xF!%B(qoOeOF5&xRtG*AVth2X& ztYHxqwG4ir=s5NkQJ8@)XqBD>DaiPG5_GYpXn2vB17o(HEylOGps#+cEeT3`) zSqAS^8nS9i_VAqDqJqqIE0t%bs6QBS;(*5)uqG?Mu45UK6o4)`>-;EC4ftg49b>kM zs3+^QZ@OpbZv8e@q>pX1nD^)>=y~#gnBM9OaoQOeK6#!uZd(-~WqG!fo<8h&S6ln= z?n_lfB1MP$`gz|5BGR5_eCl^+sw1`VP;*lZMN`$g18fO3pTy#01GIz;;xBNAvuu;I5*MHjbEQ=(}$vG+^x&H%7_=xL;E!?&4hNbJ*zH4JqkS@f{ z#CS(+o@ZQcUJW*+2i_Nq=KK7RX(g%2AKJ=Tk>ffbw}VeyW@yMhhmtT=Fi|4+8$ob8wKxc1S0pvtzX$G30WxqbEB{=T*9HBO!_!Y3W&loCOi}ngMW}|M5L>K|4f4E0zRQ zd`^_*4K|%TuzP+Z-(l=9^a9R{8~ybDCtD=SNnO+#B8h&wUot>jBvgltYEfR7VA{yJ z$H4He%qB^B%o3qTVa-Omh~MU2EHe?ECFKD1v#$}Cw>r$$jU|064s8-2x&BChng01u zyKQ4qqAMqHfotT0157h133JxS$lMa@s#|aJ$Io&{3qD)^ z^MH$L8^g7^`n7`lCq8*)2OUJ#*-sikm znkNG_0+W(xjxMv8XZcQc{{3)2pdDfX0}9mXNN>|)ymuz7N@3wM<8?3Ml96CA*A{p< zyxgfe7v%kBzRU^IvR%0l3t5;9(9}DdHHnU^t2FbK=KSL=p|8+!I$xP}Ip44dX#w=< zCWE~7;tF1*FnYCFX*2YP@sUlju?#-OA`<-w2DWYFgn~>CkFHA-LEY}6tE^N%h9|(V z7v+`8_<2Pdt3Oa8SYP4jG&TJ5tH_1CMSQDU+fceGv5%SL^@q8TmeRZalz;V^y417( z2LS$wfLrLhG?%ox5R3!1&wp`)Q_cxi(ai5TzD;yeL&cXjR#IOoN2{g0?q?>0blJkC zNc_B&u(g$dkH`MOqqSOu?=s!-nOGf^bo7Q#tIlZ&N*dxGa1eE!d=x=!W&Wz9Y(_lp5M!FmDI&f|Vs|9W=~ z$jPM$E;$(hsh-rO1h$dm`03M-U%PqW=6?^U?}eZmC(r z6H7hI$q+dB3DUpT9d99wk){)%fJ_{wo*G0RjOa9-)MFx39zRgTdIQlkM@RfxOCbvKDcw(HN9CBMYtj*NRwO(aN_lq#fC#kwo zQ*wNkzC-jdR1{XTw)@nM@q+@|AT1?Nc zlgxtEzZ(Usw?2&-UhR7XO9)&J2yNb!c(~o^7%FX1Ds5(K`P5Xed-6(=%5cIi2%{0L zhHk!OD%h7;AMz&JD9i2D8YYizSOQptUa0|_n$HzKXX;4QrmlV-HWcV{-HdYfS4m_M zBVre8l$(VP*KK`+r&OGbT-Icb*t|DR3g**%!Dp6GI|>2r(e004MYr3>%H1WMp5w0_ zp(mO|qyZ!dpPb%y4t&|CW2y^zr6*H3cipbJ(1vOhBbi3$KH1*!yhyXr#FEk*`UbnR)jY!U9gc!~p1{C;lc)mxj|3|=M80@S1A9Pu0_2$I&|A$rnUk3R<=AT`NY{Rh{`@i-3e-3T?SL*RE{Cri1 zoN#MYC&r^5NNzXrr=q7V-OxWrSNo_NL?yv&xx(2OoZRZzZg`_p*6HfDp0p`tV~`;u z?T1-E-^5>6f}x^p>IW6}FXUgXpmfYUoZ>3_a|_fD+tH8>t-+236@3H9B>jX{6bM`& z37edKr0U9j)~JWkON^+gZ90Ui?ON0C1@i$A@dDD6cdDk@`6`kzxhBtKQtD7khqa~K z+h+H=Q~Qslvi3zK0u;c~AfxEMti3mYgx4y~HN1%_m3Dm)3!!&KA61F7(!V)&KUkfx zdRBq_LWClE0QE0zclWxqG$pk<`A_9rq3b{DnY&n(c8@~+rG=HhlLd@2wa96M`G#Tp zOZ>}PKi>_gyyJZ4sAtA{xB=4bucP)6`Fw%YE*MK;$gnC_{jP8%GUMv=s+IDm7hpBq`(TP-xyFqeP zzj$Fa`n5`!>4yj_^-}ChfU9kW!)m}680|@Qq3d%HS{tjDlVFjh=EnAhoEqZA{X(EfgY6o)(YSf! zCqgh~0bo=t=mgSmFs_U{)jp|BRv&}>g^@5`04u&)16RdHb)0~G+M=fyVv#yNa{DSf zkfBgpPm?PebRu9l!&Pn5Zb&=t$o#P6+mv57nA^Peu03~rT~m$43^0hexWn&4=9WGL zdpE~t%}tySRb%<~J=$F~_LmW5&$O;ZRf*P4A4(_kuEtP(8%xeEh}|>U7rH7QdEHJV znc{z6^G~zQvIwbE+*zx{OiP{0OKPD={m5fU@7@_w@eR1X|G!+*t_yh`zoMbfEkkt%( zGWKkrrK6X+WW-hXTLe}tOaC@3$;x)gxX57GKMv$A6$Xz;gDiZ8EZBs?k&1s7mxgd4 z!A=aj*BZV4lFK&aXMYUNC8q-vLkxL z3s;|ktzQ5L*ysUQ8dh&`{A^7)sKGEIaC0&dn7Wg%dST?IF{xl(I7XO3y^qx9D%W1#@ef*Jd52HfFTo!zo(MLoBm6{P^ zP*2rz_5W)|PIBH~wehkvx&#hMM|8F|MNxDil33iv?VF-%U!|1P0YOy(5 zg&1mt{RbiKgCsr7cBcHRWlQ7Wc_Bhi8aonr6>G6MEGD8C@NDWxv_>ED{!Pm1>H-7m zjiT%CtPrXQ&KA&Y+F0-w9VN2@ZHpTY-CW#B{={4FUG}%%3jy_JKkEgZP=M1ig8LxH zgRZ)C3PiQfM;{qwM5}l(h}UY%0i9d_Nbv@7YPgdY4nQOYm62!-Zsiun9F*To^AVW@ zmXp1spu#%?n}p<-kQA3gxDRI!BH(gznl@wdNCx#}&*xrc>K(3Oaaz?iOI6<+H;@?} zAPrIZywX-Bn1KlOOe)Oy1yhh_eRG6xYmtJyQ&=8dxU?{~5(LZX=V>{PXLCYB4%XZJ zJFDd!5Z0GU8LAm#2AVH7q`|;INZvF2=&RtBEfT1Zg`~`81 z+`;v`D=1y86A_kK%$=DBv%Frfxon;wJh+GMr`%p|p9f+t`k+FiLpwo3SHB@A(}MHM z;`tNix4Gzq@3oLv64B7F$OQLJ%rMWlJymE;_k^b&gXRs*=QoYG1Z7130kt^ABkNFt z33jQm%+aSqXHELLs8XAU(suhLfh=ZiU!wem@zzjkLSEO?VnPFgj>M;Pz9PCh1v$ZO7RP zh^FD*F=NOh%mX6Djk1*PmF}3*<@&$A=ji@qbrL98LBF$>!8*U5#i^<+Nm2#m5IT4+ zk$`YO>uAzgy=RCaC?e$l8PL%(&kyr$rNJJ##0hSsH;&L!Iy2qfx?p6O!Ha11n!DJt z6H2cZ1sYRH`CKR++(rQ713Cm)XGY?sDWAn(;kGFxk79aW&K{L$fgXzgP*N1Ji%`{$>81@nI!T26W|@xCnXA)&mmr{A-`w*r=;_%)~Y(e_9cw zedn$V!enn2(P7IE5aAk!Ba~Nn>Bx@3lx@b-&$*4*g4BC^n{TZZYtt)4frrI(OKtqA z)d2M8Z+EyL3*Q(7pBCV;9YaRQ^sx;cKTV1)D^?|j{xhx?p?rclN@aDz;W!0?;gR!b zA)1V6h;1Hc?NDMey{V{_d=cAAxIev=vk1ee`Fw(e^QiQm%iJm>;$3rUXwi{SSmYd< z?Ca0O!zRBYRV6e*Cj*@O4(CVjQ6kPu@G9^4v;A>o3JqW=o7thQvi4?KPnBF~;-0u> zhtMQksX=`oq83SuW3?yozhJhl__c@Q3%_cXF&~e}^XM>EiE!C>QalSLO#3omv`;BL zugo-0X8jQ{yCp1yQEV3T=7uc00jbdtIg(({bhgTng1?(uzwY@9%;EI0uJfJQuZiYX z?J|!I*y5faz13LBMWobpacxoG%!>ClX zEzu8$Z}+kf`Hos|D@%sObx&QU^fy@By-NI%2|3UvlN@_Nh}^Q_!e0Aq^WK{@(~c7J zIcbh-3Um^e3vho$MWaeswP$&KRr}^^u#gl`9(f(7Zs%1pR^X7$nOnWnn?mK)4<9o2 zrh5FFUefR&CikVMH)&;6;M}cGYOn&aVqZwgSqpY$Dg6N*h0{<>m9e}=E0GPoJ%lb> zub<4;7i+GZC64ipK8%gNZ6^C&+iYR?sU@Ns*z!gzMr_ufjl^T6R&UC_680c>Y*+DP zw78O|86Q7m&}y1f!AjH~@xkk|@%x$o-iT*({U%Bx0gcmT_Mxu|gn)2zJ~UtxewI@! zCz|j^-#&dyV*vL>+3jSaMP@`#(b}S1UHRhRMSrAsgT_*~FtA)v?N4Z+mjSnImENyV zQ4e={DE%)4T7Ef>arCH7nh)|%LBCIZW6kcBc5I zx|FX^)m?f)0k8kT-2GFvC*8_>Z6kV_YUZ>drz+b#B2CP&B`ETXnd92vDCFFr-0Pg| z&uB+!bD4#G(Z|BqYHgdQgI}HSoS}0u@7t!F`du85IN!qE5eDZ zJleB+iUwy{J(#V>A=_kR2Xh~U$i`oF@&pbB$vpjz-0^znNL;HCw|+=(aJG8mt>k!j zR{J1AN)7%{_WbydN)F_cwNQ5-XO5!*b7nJXz-4K; zt5rn5^GJHppDY(yehmm-pZ@k>2|1jX^xFOcWa}5<|GHF}Mh377%CE=_A0shaji<+1 zu{KnU>dT4`?Vdv7efUBmt2d$E_O+vqI#!suY|i%C9Ywkvp*omH?EBh7b@^xYQ|mo? zDIorPJ`UxM1G*&x^k}PJ@>eAxE4>n(IquERc&SQV_BF&xZ(maLkH1c<=2NdXT`n`o z_ryMT!P@cPUUTI4u+?1p*Xzio3f*aCg_@?%|(a z_xat=bJe9%$JCAQ z4!_y^`<;e`-Aek!AaJ`B8jnoGV*3#Q^EoL>_7Lp+3oKp=FgiW`X<|NHr5!%N^lc2I zd#vS5#LrUWo_m-HSARUg{z$b{So=X6!yUU<2$GHeRFXqG9pa5C}!~; zgM_T)TCmAnuxRfyI^bZr4!hJtJDxo^Zq#4s+}PB= zB7TUXm$vHk_{TGqKh6&5ONKtY_SF2U!l_>L?(GOIlAoLen~2H)WIk30HMUg*WxT`h zbVS--B4RAEHNEK?cqnd(rk&P)E`wKX(ViLz&jk}@Fc4Shm0h6y zT0y0axFd%+t=+}&vje~tb_fYZmwm6MF^N18qkTh^4_^Fvfz=MN^2t^`N7uyp>d&ivK< z#p_*G;7tu!;97w~A;+EHe4F_zre?>Q!7v@4I?A*s?(Z+tr;C|VpekY7o#h1NW#^3u zv3wYxanCo3qp5ftXdsF)wog^7o?XY8TxjDQLw<0fwA1ulntK#fLzLKws*ip2!$o30gDeu>UxIs0Aowehkq1$HZJk}psXK?rYTwc~t z%{)SIp4YbEL9m#7I~&M0Rh;58?zkCcccPo_6(?y_@#vfHU;AV9y|9T!p8EY{H?M|_ zr??RISumvzjJT%Smf@|>yb|4iV}L1Y5Mk0xE3+ZSyz;n(4SeDSFeUjqJ}aU?JoY!j z=tSaD69{(ASy+JhRCc3$ylb4=nic`kVk|+cepR!pa0snMSzmoxfwce@gHb6{ zM!D~`VZe4->ue~30VYw@JStT-(#W$P9mt^qv>p^<&FSz##M?c;pqNv-S6fu-+=on< z8Q1SQ^Mx2#d@^tPdq@dBq-cErEsE1$WPclSD9j`F2SU8zD%klY{0N-T-gIHhs5f;y zaU^7GcQEPE6T&#x(2&@%lW*|RNL~ZG3e6*M35w z7m$Yu-G8Tl_gXEpnO^zOM0*i=dNpbK8^YDW@pIobzpn=eyY&1HGX9E8nQl8E63YF$p}re zdeDrK;Q6q%gtngIA2la8CP~33e$FH$CXkFOCp0K22fO*a+pOLu-ef*nm16UmEJm@e z7D}q{L&xJ?Ch+0$xXJZY94BaK#Ohied%t1(2dQ#l$+?UbfKe5e|)UPblzF$`oz-xWVt0 zNh0`^XjgwBxcoWb<=Pnv4XITo-z{4YrUdw7%M>*17l|FBIgd&v&n1qlq-_%dZ)(9) z#|cD^)(Ca$$rP)v@bme3Q@%iM97?+CUJ;U0fj44_?9RjQGijK-?ABja>A_iQ#^F@m zA;wd&C*Ht+Q19JgR^z1YbYGH=wcC2ADyL0wk!aV){7NQBqfEJpAj! zbsn~i+8Ho^V1~(pru*ZCkNfg7$oVaD!M4+pudX)9-MHaH5XKb+&(#ZW@4%IhIyKcy zK}%gs$CCBzrYgk&)tqsatoy4C*2K7L{6T-r$ zPJH?$A%Tv>-P*`Sazb3in#K`ypa(hdKRr1UikR>XcJMd!G%YX$NxXQ-e15~%5j$Yu z*<%TE_q6^?>2SV%-11?tRVdn6FyQuXQVGf2j7W|t!ytqxJQ`2x_BNXPx1=+X|D_c3)*~jc0H6Q#eM~&-bxx*P z)YR{ikf{@fp?Yom0xcpZZBJLT^dpETduvd|bFq)fs*oIHbTI~X;w#T`%wJ2qcS@$? z?-3ZnO!1!&P~fz6 zbED2sb)3oYFS%WnZ_}V*( z|9!PZpF*D^0qrp!ZIm^1t--DJ@-7z*TH=@bu>U| zwRZfBkjqLt@<+vDdz-D#@$LH?T%p@P!^d{2_D^|ws1nbz=~*pTRBQk*XD_nqTIA3)#? ze|d>(xj177EIgw-B4uJu);Hk|uF{#_9^#%mNr(b&a*u~Sq|zB4j)0H9)UB#aGO;h* zkK*inY?pN~kWdTON5zZQYi7geh2Y2BJaxXpw$pzdbx%(M&z#jRda;UZY~U+Khzd z`0z>6@ZxM_J%)2n%-dNRaeO!{j?*ErrJkw71*vsk)?XXb(dh157l6~FQWRk~-h>`n zs@kFR8w2Gad&(Yf&YrCXwoJwMIKV__RFjQI4*%`6J$k^En+OL+nsCszs%As_2Y+ql zd`?OVn*XKo!VfnE0EFZAl(+dNx1}H>P7w|!YYbtxG@OKJOfsCMCBlP)>u}A=eHJ=5 zPp?L=wP+Y5c5m+zGo4SVyvSmEBDOw>ZOxD+Ubs=xfeiflxR5sn-us^WjE6x2;ea=Q zjk-Tv=KO7`FM@u@d9w)5cPi@}cD)v%pW3}kuF=$xGSE17i}yA*L@n>G`XrHDO6aS(?W*5r$v(ws%5gw4c{rm)7N!#QUb!mKkyXaGhi9`J-mKc zBnQ%d_5jZC$eFow)MQr}HPk(IRTv7l9Dj~cGDLk^WbY@Uggl&#nnPHKU3Y>d z$_!Y@g!$6%64XSVeK_wEHd%MjB{2$#RG89j2E0BjfYpMxw}PJgiO<-OF&jyL7{ak_ z&T4|}wgXJBhxJ*-FG`DT$WZDBlol?@8=-R`t*|~-5VM-^q*hB(%h(jk`-5p%G6m41 zd1cE~=~`s5cHh}0_iJhsrZI;3FNKc37KP95wf}k4;jjF4$g4ilU!3GKvo6r_PzJIj zTR(kZ#g?*e5EP=Tzw-1!td}0IU0ddkJ>-RXWZ< z5ET2F-VHpJ-otCXF4BWPF~KBEqhfZ?Eo(TyXG>|W=C*c&=iozy{)Z(s&~d#OHAldH zUUeaNg_*je2mS_QL6qwSNsjkuMh<2A^R{P$LiV8cql5N9&`Oy-r%y98 z<%bbca)wCJVc-o3Bz6S+tbbHtdAE%X72S^*$;c@4jp2qy7oUt`($9?0m9cKl%=gPX z{=RH`iG9DmNY8(5jryUQ<_k8PN&ovsK488%zt2iCKqB`nv^QW$3JK`@o9G=~iX&!u z%6*t=+v}$E5vxqzLdQ7h(0QMO-AMD$0BjEp_))t}f6 z#S<#W>AnD?3%p;zap>ygfx?%)?y*BC3U>va=)Gs`Fvb_Ju;6b*ty^7+Ybo57ZFd5T z4DdJp##=Z14!R)anNt~R`9&ITNsKnbk}hv_S0PYlp@PF1bz`j|BE7jkBt*^A`6JG& zI?m}*5xue$BZNh{NB7rbzE!Y;+lB5cge~Gnzg!ci2stS0oE>R#8b>*46p@sAJqiFQ^uYL(vK;0A#nDq!rbkZ8bfi zlC*td8v3w8TWUUo^D1o_>J!QQ+R(MHGrNXETDtR`7X00$=c4!ffTdsQ7GATNJlVT< z{m*YfO0exM(^flaMxQI?W0aE83ZuKPwpm6q9>1S4flR4wkCl(-@Yx%4q{1~AHswPu zf!pF>Pn7EL*>;gjGQ&`s9b(lOnZC}5kx|Q3zE%!X9cQ zP-qf3ID+C?WuOeqlr8QSg7Z$;RA062aKBmN=&!|IucET4`Q5Hz?hyDvyB6oU7!0^AqdV??} z31UNpxNWoykHXr~>`2G3M`%}hSoVC|J`Zz>IV4tG;4WBgeE3^-RHY0xmWvR{t(_H! zeZKw&4%G1AT|`mQJxW*nENWM#sQGE1G729^iTuLMS8BXa|Anvx3-*UTkI&CPDENSB zdofdtFOJD5K6%dtL@gs}%fd2Sww>^O2f#fqvxrqS1$~ufIQ~zW`3q5z9O7Y3ioDu9 z9VEGT^blb*^OI=odC)2G9>faY_~eVroLgovDEdbxkpO4kzg>nUq61hbyLT$rHYrvXuiV!JnUlUkR20DO5bXj_hGS@N+(s zsagnXQ#RjOkS+OCEpMi@@?Sw&@R8|C_CDNX!dE5x=N#r(t0gjiq?YKxX0`C zkPV0)!9a>xac1k)byU9XNa9B|or+Uj1s$q6O0h05o1dBq}D#z<3=l z)<&NsLP*}lN$N#8@~cRy4D#mxF#3{ED_Q=WDEjJPHF$eUoa%vLn(Ql97fUi(l%v>> z;h(Y$mbJ2mcEbUpzs*l)3e4mr44*`*-wpOkrMu4N%@jzFjg>dQ#{*zf7X}P|V9m+< zHCCnPPr~-joANz~{YyIdT3e6=hpjG>D-r=}z1cK-*)yPt!n$^UO#0hNsD*IG*OP%& zPB#Gus!Zu(4BNWq-0PKl(|6bzR|QxLI|@EjFNjus;R6L!0Tsb!tGOR5N+xj6oCgs&Cs$p6o>(VKJ zH18{P6|VLqqMz&W9;$1bjz?uIel7KAZgxcIEu2-c;b$??2hF>SlC$nYs1@ibG1P;X zGJRvx%?p~Alf}v;9JK znU3>VM820+!k0j;%B=J)ZCGap^4>J}*A~AIY1_z4Ij6`FHLlUpvj9%BGx|4Tjz#B$ zUQC8TD+73~9>fz^S9Y$WOB85zZWtjL>1n}}=sV-=1ftNR5H!&W<1>w2hh_EC&FE55 zXs$`x!8K`TV0sU>;ET{5)^B~_(EIRcz z`XpZLi=rY2lcc{#RS9}X#%*SBN9pEr&H}?@8Y7rZbvwouP1{$MN4UE###BQvA0{Z- ziFs>P+ywzvIT>8}93C2By}&`5W6^h)a`_m%mD@i$wLr(V&rXL4 zQ(^qH9H9rCu1giZVq;8%p#}g9m&1>3Mv|jF2a`$punUiF(~gxFr(FX2*R;$(c-OqCzHTLn#JIax(SyxeGXWWITcJXPZ|olb#VGyU%pm6HguMZF8> zYO=W;p%9zB)m7S=va-MstR8Gpidor6%wQz6%Tw6HHCJ8*e8AgJl_$(!0`zzf+lc_! zLwM2rB4Tu#RoS}46`PgdKy6sm)%5NHV#`_1WO&(jx>C_QR`7KO^IVUUda!iZBOqR*MjYJ&@QSQ0rqVc3e$mb$`M#5Ys{&L_-vJYfC$VRnXiWM4V`KJren ztNbY)y*T;Tt@9e@ZH|Om*tS@zdPzJwBYyFHT_Dg9eNJHBNP#6gdzbx$wj3Azhrk=gpdbFknSj2gAuiRonMFnxSpaKU8 zX%3V7jqGqjW3j|mu=3|mx~BX^8z4L@4yMnxtB_nc>X&-t$gCtmbea!(@a9vwZX$-a z-49+P|Ll~dNAQN2rQ7&RSC@;2{pjS$(=<0%S93Q^xHI-Mk#3RkT6w<^>GI=ydi+Co zK(!<0ImiPW1EPS!&kS8$+`QPLy5;`YX6JpNls60mK~L@jfaG@ZC;xb1vIo{m=K_w4X!jjtQ3vf3k^c}cM#{I?Cf@ZWBO zlDXkOeJEV019yuc*Jh5mDn6A$IAVsj9D&2ef_28fmsjd>A_~y!jMw>q$95nJm*Q)4 zUFt>~Z3{2`3fO~4GE+m{Vi^v!ML(Tm^#9$||3wzpeyYKvp(DHp1c0kmlr0lY{Jk1$ zN!z4_h1{f+S1vx&8$O_t8Q!Tj6vUWmgq@Vy&^?u-fu+fcz@C?Rq-R#VaG2PU%32V3 zqp$UkIJfKtPiX?I{}meYaG}1mcgtn+X**k{u=5->QnS=1!(@(*|Mdn4)&F?|W~V0JJjxFOpM1 z9RU~0aU8N){@8{H9d442z3}2SvxS5BD`b^DKWW^Oo9v4ujK_lp%w_8b1CzG7y)6VC zVhgv{1_&RSscepG~Ge2_3mt$Jb7<~C;Q8IANDDjF)_KAOf%MMfw-drS{o%p6r zJX1V46S|i|rKqGX`NfP5IR{M#EAWFEy(IcHfAGVu%n9aKB_$xY{iM!gqox(hQ`O+) zd0~c77OYdxOV_Aeq_fP?PYRXiFnZ;awsq;)=;L|a!S49#Y+JL(Taq^|5in|XmPIN( zcJZt6pHX-Q&*y0zpDv6qzZf<6*vcgx+AWNKtuyDoV3bFR&}mb&P-XQ0M3P(CUsTl5 ztjtuf@GGbg05A`%rJw5LH|N`Q)>CV<*S}4I8iJK!GAW1)hsC-j41*d7fwJhB^?ocGoFpAe8LcQ)J7udbVYhJpF85S>epI`OGjXjk>^R)Q*)q9Dze zZa-)EgH(Q!6#rl#rbOzws5!=|EmTndq|qoXm_)6UsKMYRCJN{)fpoba6GjZ(8?$5d+9kK=|F*GfmqwZ9Hl*;`>|huUK~4PqP)op!4Vu z36LCF!L&@}A37cOIZu~}C7q|^1WHsNS@5c89|cFDv0+Y#ohV;+Hcs6QGUTw+=Cgm!bbkRy#5ci{I8b*sGlT?`Fex? z-Ch3w=1%`FVfrt^oKS%%HT&MRBmsH{pP6(77JnHx;vv_z+QzIhc+xPp%TBaF4Ck1Q zBYmmzrQ(~0xQ%uGkQyIY8zP~a9rtRjQ0BJh>){dvXkPWzKjj)eXFc47Qa;nhGj}Mm&47vYa@)qn=)h0;(-3P zXp&gptLDe9WWbV9KgTJDMglp#CL<|4o6;lj;nX*Y&o^89Q;pDPgY=%8tLLla^ICle zzR(aJT?FRui~N~55pU($FO*}k*s_N-6=G|RG3v-%ihI@aG0PfeUi({tUAT~rhz|LH z7SfuZ&OSAy&*KvsOzh_f$^!BSdC&nEEQdv%sMtPUr_&?lYPbO&ZvRIy}9Nm4||5p#!PReaAKQfEKMk+--S zx@0QEsnJmFBw12t&RVR`hY-$ zkMRM*<{#8jK58>8l>1Lxard66y+*s{rWrqZQ^sAh3RC!DZ`T0pZQI%OYpFHvVB0k@ zJZlv1UvOKX!^7P_QGFll)LrkPU|X(d_0~LmiduauZq5z_bji%g(fSVT{M9`&P=1i! zLVzI8a5p^MxJGOr#^S0YU-Nb~7bjwk)NN?=Frk=#cecI_J`~zlFTJ%XcfPPLvc^UK zQQmc6erDp#cDiB_S~QXL`74muI=iv4QA@^L_5~~{cL@<$V;J*t8Ad zLACKG+AM@#1Gm+OgG^vbtW~7pg7xVMYPn_LRX` zGY10sJ6CmqoT|Qi;ea&zRUz+PtzYEFkRySIvRP*;&t7N2;r;R>02`LgT=^cbTy)T; z#y8a7gJ?xK(cK&o1kkh{{MPKRqW0S+FHeq#*vo>^e`w-l?2@uS3%hZ6sCCpvLmW-> zb8{9axOOSSq8+4M_IqoIk}PH4v9M8-K0 zmmfn#;1ALS+U0ABvNKP1k7Au%vK5!hnT@eic5Akg#7MhPw6s z_hj5Md@Nw!^o@;%vQdL^UmkIXjXivFgx16YNiC>^(mZf1TC7|kWLvgC?o?U;9&z?s z2M2`P$hu?e6 zbm_nW)`5(xKE6okE3luf5TWDMIKYKqVY;R)l}#W(`sji0|19{IQ!%Bx5MX-YKtuSb z`QHReKQtZoU_%^bKn~4DQe(uq!WsSS6&-Q}koT{Ej@!f#t(U-A?-$T`bSRFJ@m=Zb zs%fL9V{ZLN426Mtv;EtHz->>_s#C9fWT^DycUXhqBHXz9%nrnp0U3ahAZXgfi`gYc zVcVMR7)nM&C6VxG=)9D%?}z>F6_#^XS-#Go<3&+OSSjy z>)FqK;*G>N{l;H54d3EITV@mC14rOi*T0QFNjH272i$z!Y5}j7j-S2`&HkU<{rWvP zDhfL>MEqMk-Q-Nq+kxQbO(qw8LZ}mH74m&?i9oxgQkqYlnr{CSgCRn!gykJ<8j zw`2Q%BK-B-P}tvsR=9O=k-YA^LZ7?@+(+ETuP(M<{4L{_V%;aFjPJmi99}Ne6fSVv z8l|e@?&5u&(HH*@{sjEL*WWc_z!og69*JzbMgJ;h@XxjsntMzi+V!`0f}!SICv;>a zzoL6vf?0dS?A#z#Rw`r_kN;xz`6rUb^xnwoSLemZVF`9pqa!b1n-hV_Ud9`_(ZWzR z;c$-5l{@x-H7lpu0eRTaSAphZMUjN=H2hKy6}Oz9pK)wF-M^Bo+?OIko>liRz8DSx z{&BI#UeCrE-GOWVzI7XpNqPf>vrjI!Uz%19rjvz$Z7?seoHBpcHzL{S(URYQTRR}g z?;xH8Z3@g;qxnR?kv3u&Ify`}<&Bw>NrW`s=t#Imgq9t(L| z?3|%aW|gM;-fJ?cu$Xh&9m2p*xRfMW!P^l+oiRiJ&h2=j=X=;4?!P{MLD*llFPZ}X zg)$C&9N?;EJ5yUY9^~)xHE9CHlin7Gl_p3Aj6T~KUTzn1(3AzWrarEqRMB$7*9D|oHvi*?s zH{ZOBENuI&F5GA#@^?ABXiIbeAGk*EBdckUYHbSteV&V=wP=d$a&a*fd0hUAv`o=K zpV_;N8@%t}>%cqmmhfK%mB6Qr-<{_ura>7VXn@-X1odocJNXclJT{IHJ~rZ^Q1hc1 z8!H0(uqccV61U$q*-#T zCryXbT;ni$G4>a-qKWAGO~^sA+5T~HF1Ht>RJZP*g&tZpSlNbt&13M{j|BCjgZJin zh_Pj{QUnYzWAmqmq@3YnEA6y-`bYTITT7f6bnxF0BOcCYhnYhM*T&x?W!h>17Dvak zQ4@Lc$v%AOzBruwgyFIB+jzC@`~yL$>CJ^Gpm50?(h#~G%ebE*YEah(D-3+j%%i90 z7I5uF#v&oEYAb6qz_F=$VQtMg6wDU#^w4tz-F{(F)e^J0`cIwsqI04QJpSa<6$zfF z43jo=%I9IbpHdqb%l3Zr?)`(btSsP9>$36t!jHZ_f$Ve|V*++0S6b}~R+IliQTHl* zpMve37He(D_?6HwFfa>>t2@P?)w>SLW_==S;p|R=EK27vh$*Au{-ya5yVu9Qdncb9 z#D(nP0X{pms{}0|5DSIfsx}hr!r+qtq&{I4rV+8~tn%}LHnFi2;i~Y-53ypU9jHU1|+bh@* z`<4h^xzKZrisdx~ZEMvak-5cVFZ6sHOdmu9oi(9cr`H;Oqo2hbtIK}DmaU>irHYqU z(RqHQ*)Nv92J2Ac?gzdQNU#ifzQUJaM3NgtyZsUdm^mq(FQHrr-G;ELbKbQ|pkw0K z&?}TX@@Zx&H^6Jx!;S+z6`O#fg}VUMzFalWvZN<#=Cq)eyk0A+I)~$W)!>u=#{%RA z&I|+Wp1@ILMmyo$j1u}s;Qe2iGaLoOjO)GyrZ1ytWm${wn=tt{68Z1M*s42^G}N`V zaiYm-BNnqyYoA;xNj~vAbh)hW_1lBqDc0j))fu04hngSulMETW<^^F`lTVksf-!u~ zKQk`*+P=naWh1Pn5NwJjCMGvtPXAK=r;o}iy*OaeG2Ea12#H>T%@Q_aJ7)NB({`2@ z#&tICX*H{Z)r1=-k)B46U#!-?VQy)ByUc}8!y>l1MM|-LIsd`)PBDzqw&eI@(hxvpYAsM=JretaN1S&<#d#N+%h>TlMR-4 z>!6P-oRA^$n5t$I2zDp!>SN`Z<8C#BfLn#IO8?McfAh4H>5-j_GT1%w{beES;;}Fm zsO2`9={KA~O+(wmJhgr?o#b?CCHT<92Xvg(K~j#CH)^xqY5n|bzJ1Bn`?a2{4EpP8 zl`7k+6BXv>nnx;K!wLJo6~eEPnv%NBB$wDO=WYy5xJiQU3ay`{O)~fmvJ23~-4$U= zdM~6=Wt}M@SdMIuME`{ad3{lSu>jMfGMZ=+%gX7D6y|YPW&f;~NK3+ItifSLMgzLb^UqpZ$(hYd-7v+o zj>^e$mu5kL;$I@C;4j`|Dgg+H+@V3*YBBfpWq&R#q-RFa>IV5_~InoWmkc}K9 zNvS;Y%1Xp$Mq^{{T5NpGUvz2%BG@YgJucGjy;4X4R(hQ5SN=m=)Tsyd_DDwQ@z7K znSTMV0GATNKIgYPjAafbA4hCN?6Bcfs+KdB&>k#*`WZ@$Czgn&t?gd9pl)>6?Op9e zsRZHGG<+@a1e@&O(?55b*sjy}D&PkB{)zAvy6wp7`<$Wvf;e8c!X9Z4A9oUTdYjyX zK5}rq=|ICCbYdA&Q4xrVj<$xZO@(M8lqZ}|+Bw1W8J$1A*fAaY*0im*oXcp?i4A){ z9~CJ|KIzWFDoP^tT73UWH6^F&`G*bq{}c72bKUvvbqLUc9Yaqu!`g=Ga-JB zi}Sd8gm9P=0d+o9jkpQ5e;;`|N7+-%9#(a&{6g z?bI5;shCpt-2@Dt#-*`czO)jZ19pZh!~f7E$3}t(+wc^T%;wJTty_t&35rm`@z`Se z@fd)33$m|09HuWdGWbDjc3yAo=2ZJ%2xwPXozADwu`MTKRIB|s;lBfqrv4i87YadO z`gn1UgTBVImL{A<*N}VLw22(J=(?}L*Y0hsjJh|agyov%X#Y@%zs?ItecTDN1AXn2 zSZgV!a#Z)k4nV(BWMmzZYD##dZ*%`CY4aYWl=0YO zse=G`_2i(>j`Vc148Z9sM`xmb&kTcPU1|7nyRY!<*Q*r5XpIb~ZHTVJGQ5*(dstxx)qEJ50X62JeW&CoeHFqAYV~wxhK9E8P=FJ~ z^n-snHh)4qn9-2j9r5D?`@IRW@>osnqPuxB^iC{7<`e>CZppav{;AF0(T+n|NH7Hm z!bO z>Hm-s_vg%hJ`@bw_~>9HDA}8z&fY!*Uh1uX=qMcf#y{3NywrWje z-Uc4mFVI?ulJ#?gX~Akkmtem{k_D66TgtgvYm=cQ94z~E?h(>;cp{`fwq(KGf$e(v zTC&S6=IW0hS#Ywb?kU^7ErnAOt!||-^sOz+`ca+2d@_EGD736qC&cl6FsA@)D;DMO zh~Q6{SJ*-x9J=`F%smv|i+!4^>1i7|$DdC7QsQ|8@v&hQQ{l8qW73%rS3JFG0x=o) z+lLlW1JrMc=B+N-05KTOYOequw2lTL@hK#68g_exxa1t)-kQIiV`T+WTKv4Nt<(;i z_fX)RTxu_Uz;o?%l9KR$R%AEQ-fCL0?mZS(Zq^tI*O*L}Pgle+{^8AAD-(Et++$k@ z{%we#0sn98MJvy5U1}2hx<9jqI8iXo=6qWi4#TdGCQM&|+s91~*2^C|Km8pAO7yqW z_CSNK`j&{kdxZ^lS@?w7wQ2ffeAq95I+9=nspJ`T30%7|4fWKqc-!103$ zM~f={l!kT!hBzQid*j7-D3s+-?d7b@mCKc<_`PbbyyZnYBQ`ybHcy&w!uzVdL;ULa zoALZiT&gHeW)<>bl`GEa)c0&`)SG<(_NZuDzh9Bc+0dzqco~)tNqnLa;vbpQ)F{WD zs*-u#tY}eiu=!ZiWT=tQexskXSo2dw!77g_(b__hl+mWRO!;YxIwdf@fvyL2kU2Y@ zk?T#X?n-3Gl{S{z+}+R7+XIeT<5&{)IJKy;WJYqiI`Rvd7pp8>FG$w7c`>*j&ycWN z!B-BXe9mIesXTUsfnwgKn!*rsxcfBZh6IN3Um5CG^I!Pc@XF(D^JBwP&4sujo@GYX zXzU#)1y3)taEd{YVbe5jVHza`x?kdvpqVCpE8)o~BnFN?V=*8I1uh~tFw^vWKkMUk z)f@bfKbj+zT|LA;#F_K)S|44i7g!xsZ(EMOrVGLzBWNCPJU04rb4<^9Qp4_aYJ~C8 z$E&Oa2W2xz_hQFJz_$@`r*(q7qZ+qLhD!Hrc5qww-xbiMAPlbd>J<^ci`9zkdy)d$^w(x4(?b^MFU+ z?p$qmiV6`wdxwxBae#%%+;o*>iRqNQVad@-hS=g=WHgZ@l?;e54Rb|k#sk03|{Tby}TSGRB9V`}NEl_=kR{k^(_7eHA$J&hVz@ z{#wQh>mNE=H@#Kv$-QsF!bmplL##=ZPeyRiNCk`NS};gQKbV^jMh`?=KrI%G1;O zQF4a)iHp*gTPfwIFWE9>Kg4$6W}_RYXAFj5mHE;#mbq^nx9>k}^pms=Jk^?36kHaA z`JYs4-@kNU#B4~{ITo5ME>uSGAEAmGm@fJo;3mr&{~aj$*pT~zO=&Q(Cyclh(?^x$ zbMk8(3pZ9eX8IQndz3aoErbPWkLMTyUK44a(u-Fp5C!td3Fnr3Dei@4tF?Ubb53Du z!{yG?uAx6+CvdaLFfAFl9TiI2oQw%}tRj5@{^DZ0H>U}u6Pu3$e#xZ{I*kLIu;hu& z|D2!pxiv>EmVuHpGe#>17kQ&r4Y>?*<~!vM*FhUA`G=0FtIB$h_k7^j66uv!%vC9N zrs$_c?Jx?Seeq|Kr!~$uJiaroB_Pdv%iVQBU%vyK;W@KD7m?Pk|eyt%h*-Cx`nC4qYykMLs&~ZMW4(a$aywOD;0ta@*!KXVfE;(m7 zBS;6b9~}lOX$boLh330IQn1_?wB3HAUYoRiu(b%|W+fSzO}t*mg{+2H+w@e?uQGRIAtub@?L9ao3RUq8al zYC5!7@6FB-Mu5TIov^!|7?dvG6Lx2G$#G*jmXskh&+8ehef({Nqje79-e3~DYCgK7 ztWD5URKNhh{||BJm@{k>jgd2_381@Vz9Iti>nZHsr`m7Rr=P6uyKT%+o{SOjfR($mjSiP{V%oMjF=P3gz=!fu#Ex^7 z{}R}EDRIs-Fb2@^97hiJO{A6m)s(7pdfe|;nnieOcETxaQvnX0=`~AHK@8_q;RW;C zzqkG_9_1o}%rDZYsPWi-EuJJ8E7{P@D_+PI+MRq6k%;3Y?FNMdF{f@LU#k6;vUJz z(R96-{y;;uKy}>6fT&qIU;*1Jt-ky70Q5wwx~m%F@c~+7%>oF439aDWSl-)h4le6J z?mx^`t)&?l$mjMU!D}`k^UZ=^!6@y^(1 z`HNIXn`VjzYKhbPWJ}rA1QipfNIL6`kb?ZystH!!MI5T-Fz3Sk zZe`8f*am5n7}tkvQuxiQ)|=Yl5TO0f9_;f?rbB;Nq|7p?_l{@u*c5LC8LFJh6822l z1g)jk8Fi+<&&vGkDM9Wy+8b5i1GYV?qO?6}ersKF|1k|Je_XJAGVTd?(T({e#N?3# z_ezMk+p*SLI>E=``BAjqssgWFCED2}y9nN>4b_V0Liyh>f)bs@FnC5VAd{Yap6!LWuB0FwWp27|N&nB(~Pq4sxFa57gJi!akT*sqRD(R^dH^8dc zS=uRyu8Iewgd*wKAeI6^dIDg1sm6>%**kRte5;??K&@-Je4s-f|M~Wuyy?ebvv;d5 zgHZ|oPkPmk^Pw^Vxj+2503-}nM{Gb3o&l6Q-* zL8a3yWJ65#iUx;fY|`5IEscMS7S!01>_>#t^=`kXCzXT=3~|CszyZJA5Dd1=S`A$D z0kv9@ubOkteT&ew=bB`4d&3K%@=|td5zfz0% z55Pf6WAT*5^aOs=Hk7N$2fE>8u`Iy{MBe-#lKT)%a3*a2*$=r0n?GmuWR>{M_Kg4^ z;rWC?QyzzflkWQ6z=QFs7(q3M6#fc^C3XUM(aK-Nyw)iz^iGu?DoxuR8)oX3Wj`%*~qaSxY34bEtboJ>u zw8!9YkCNB)JWoixg1;;DU3Yl+(bf7C}584fYhvYWO%@8~K z=yuqtyvcbP5fwt3iZkSKeHON2l`Dlp^(BSoO9z3EM&id~ z3qW)9M?egw-%Da~7g*h&rE%`P1wx}M5>}t`kz;LG7awc0uUN$6N-N^`R&9S}=O)9o z>s%}B(eoLrr1PuqDmw&Xw+v^IC~!g_09`sIl+d8HtqP$K1<;zh1*8?Y|vE+ox$xK=EIw6-NjA|yN~4d zi4I#2VmkpO4mI?m^0Q@}L{HF@cea25M|~mMKE!ml$a@2F#Gbu)r3bj7eaJQ?y!7XA zWZc{5_BAUxtIW_7@PPS^l}CBXABqx*Hz(*D`=I{Wl*+#i(md~7!hf$`tbSqgnuAs_ z)`!Cf=&_|vgp7@P?(a?VcB`bT*DxWm6V(Q)->F=}fmTRHp#>^}@4^N_F-qqN_WeUH zh;D=`uii+_2igQ*u#Nr7sb9j(HefZW#aFEl+OA&e{${^ctDD{7kLN^At^rb4M&;tN zxxP7lcs3>h#>tdQg1g)vSN!qzwk(yPCHlz-5vxMl+3ifC?c?rSwD2V5c-88Kkt_jxza}}F*{}Hzpj|dMtw zrF;PPe2L0m?K;B~kHz$vILlj4q3yVzb6UdH;SjAGLJU(qBCX^y614Z7q+GYFjK{3^ zyLClLkzqss*c7;Z;IVH!vPV~c^Z^jJ`3|YWy)aqQoyDycDIXx=lhZ6|+`#eISyAx> zKgnz*UMm*Q=t<(2&w7zcB}Y*bcVs^4mzonsk=;1h}m$_FNGAEn& zm-_M+MIAdb^pid5<#8!Je=tn`XDzn+e0r}*^|P`{`K9{t|3}wZM#ZtN+d8;QaMuv5 z@!$>tf(LKhEjR>s3&Dd2*C4??xVyUrr*U`ZR`xo3?RED(_fL;Ok3n}=)mLA=GN1YS z5pJ;E0)q*hpL&+kMFZ_qvo5%I)6*k_Ac1z_CRwSoDAR+<7+k@$$&jsjc|3}(v8RW8 zXfu6f4IorS;%eiP51Rgr`WfV4K_lLGckl%oe1FDE3@WgR<92rs4#nkA%dY3etxmhS zCWLPSSi%}XhI7rJvAG&SzAsNwg9g3LIPeF{mf{N!ih?Qa8EkYYX~@p8Xy}5*!`flN zT&{RaKnn9(8M%mVw`iKd?f!@Huu58U4`VTiCq^lF%$xlh&kt(#BMJW=Yxn!2-<^&r zuVNl&k(yN!Tkw1{W0H6QZ`m?QvuD!(Wax!|I?2@`L^bRbjIa#z+)ug6Sw?;;Ay%5b z+dCF$6g{+KAtIizd{6%t?;nN){Aropu2&82r6~tOS2SwiNq9?T7V4 zC;HTM13~v;Wz0tk#0@Y-yuk2-VXq}3-dOGvX%DJA!`fSb=6e9N^HWud@*lnkd3TBy zh)fAEElx zGYJZY2Q-kwC$kUG3a>^jEZyD>WH&CN!XVgG-R$!H5s*7Q-7_@XZdes7vyHVCi7=UU zssMf|xBHCepfRa%l!@r{9D3Z_yiLoJRytg!M>6jY^D+Qio+)5a&Lo}GN2}y9ln~BA zwDx(HqWQ?C?0PobqDAm~j@%a(`49nL^JnvgINV2dLAXe!c-<9bjzD^g;k~H|jC@oK zlMG1BsI+yi+2ceVyx??OXTW#mc*`m76kN4pm7Ob1FZ~z&HhQ}yh?y~%Cs0_Kz{OhT zb;+!{W3q3Gjs>AU-kE0~JVP{nV%I zivw5xKvp+UzXd9K2Gm*?a$bGUT6}=NI^@j~*`&dCp@~+cZ@4~=kSSoX6g92V_OAi0ahfcNgP3y&r17Om&hcMfYL-5u2yy_dE{Z|M3G|5_sx#M}k z*B;eEbBerJ`wMyS^cd(7dPTQxabKeua{-ecrx2nOI=o;{l-U%3exs0Wmr+{%@;qwJ z>rd6@s6i);b0!^)!adwu7Fgn;p<>jm59tAK-{FmXLg5<@DiF(5J&h|{!d?FS9Yi6- zVP>L{JJ-D1rI%!D(j>;k{1PG}NUQjm&T)ryrlst!+W36Hz1{V4&mAc4rpK{u+~fF9 zdRvDN`JFR(1ycq~j?VFP#P+LA<08CfD`rJf4vd)Bpk#cf3YeKm(S;Jn1Zo4cf3Ft+ z@qLVeanctYJQUwupIvYP+Ijc;?=k1urcq|MyDZx~BY=m8$dTx(R*LA4MDAPEFg zh(P5hcjNc?xh#`DKb}8$pG_>q^v}LlrMScZ#yn*C9R4b!-BCO!w6`rTJIkjuXrS#| z|3qm1G&yC%r#(jss=s1!7{&N`=wyz6s2(}Q^N?ZSE>yLyRIcrp=un&98vx1pwDpNs ze^J%@`oP*3#R2+$oX|Lu4+dC148Z6?L#xdSo#~)Ikl=EMW8aE6g*xuMc zfU7QeiJ68bVJ`eCqlB^m_NIlW+Qc8SM^w4TQCI5^Db;cg=7#NBWbvWL1U32^TG`b;BK>V&HeHQ(7KlO)_*_F@x_Pj=fasHP!&m4&29e}I91elQib@c%O*^STEjaQ@t zMz3h9I+2^ts6&15d%;x({n)=1PCzIug0229;ok=E?Y~nwHY(T?aHMp5qGRV_6SFOLcCaTA}pMgP$;f8})tW%aR{as(-hN?S!HkD|wx7s{~ zEMpk+jjXh~)a5*$s=?mRasfzYu61I82AHaOVdqDyH5!;1R-Q?tyIPF!s?rc?U?`I~ zP5b&wp1dv>h}WXa$dZB>?=K~Ea|Ra(im13%u4Lsv;l(1R1Nu ztv>-;5{vtd4;~x6=bxP0y8DOGL=%39LTHU1WsKk`S(t?zkNovEC$#pX)QWMsw4+wE zNQhQwBD);Nv{3ZJ{&_34`-=JJLl3=R8=c4fmmv24_os*;PJ0mTKOa7bwh(l#33!%LgN@`Wmm~{D;0AzK_rD{Yd0w?=Xc)BC?Eb z^2Z54rEa20aSP{VFk0lpRkFY3=qnqnO^jDP6JYmqNN2G?bs#YEQ}yzfo;OJaroG+$ z7bpxlFlzq1g9fbq8_33@mH-?UIZpV~6)%rae$a>CXV=wi+@_$Fern&gj-kt19Z8)v z%_gRaU(2xSRuhz1(`>7o3xY~P0U;Buk9)0{+@9@|csJ~+`hdS7^zNDN3H5KHYSP+cKx9F~}x=dY8ySjOTq(moUgaGTf$) zFoNB8(59Zt*`a%R687D11lM67@HPJIgDL!iB}^`vsUdl1SNdT*?Wm#Q(xw=dOS&(S zY04VCT6N#P8JJMEv4s0+(6kcHR6R~X<8@+cZs`fHH8QgNo}M~UL1oIL*K*mT3pf>{ z_6P0!#o^u|yo8E5Yqofkn&=sb_9TA|KdDL%XG5JKeGFsNKya2xX;HrJ0-5~ynJq32 z(*$yN{+y=oOWfJa3>Pt8Zcno=eH_QZH=G1BAl|@DiShU>0F=$8~MJ+=mBwtO9p4!YX5}_YuS$krqA0BA*;tuD_=}ynARUBZ!J6%w&)z-hWA{%}+)s9u{xfvBchzlxR~_mt-eS z%wuaJM~&FKrOZ%tn9-cFwhA8DyHFBq7_8HdGZ>McBcOs*E*yGH;2VnWM?NF(mXy;e zCx^Z3)55#IgB%Q^N;LiyUeroGk)ST;7t+M!c2ehz06Lna(Uvg+TN9bO=N7@ z!cIpN0Ik*8hS!9Mfyp8&1Zvvs)bZV^d80_DCjp5`IXV0;E9+Ko=#N?8$4`AeQp$n-lAa0}JvOH848fI`t#z z*|*IrrlbUGmaDPq4#!Kg7h>X9sTMZx!03oWwXj3gn29I=)aKy37XE*Y-}ps>yH@c? zrE``49q_hpI6?F8a$K!#`aQe#Cj{d8D+FpNBs2w(2fgYigY9=A5IQ7)f%x;r@sr#C z%Rt-$41~|?GAID05G2OS(DZrDH%aqL7Pw3=IRJvu()%ZL)YB*iLN--^MF0i`p@rYv z;I+d4BfJK#zZw9U60Z#|uP~u%Nx-*z`kIL(KqGZ{9Eq{1cp)2Nlc)&Y;nXq{QVYa zWM|zR^2{UDXBoogD=WT|g`<1Q#Ja!KZ;cNS*dZ1(eUjhBgaR(cPPg{rcwTpk=x$3% z%esAwtH3EQHCkcuE$RT=t1It)DwuvuKg5;R_7-==W|Y|#Dd%ZHLKK?|vv!p^D(aIwadiDJEr2d{gO0&n&v7{5-dpdzua>F{wo3b zqj1@T0aArln+vpmL=fZefkoX61+;YMfO{B732Om9W|@APb#?9w1g(0eu^yNQe^LL>bMoc2aW6Wf5_D^&54Em2`6Sql8h7v&G0)JPMu-ZEsF|vE;KH&QKvT>Y6lg~S9X877sv3rdOC}asy5!87VD~d zu;3?3AjvNifNMJa^`npl)Mjaqs^cn!^S<|Ic3%6d5I|(@Iy5Gx)Y?%Ot%MzyWn7Ml z82M4OH(6%BfsNef78L32+m$|X+IOSLxwx&_0j5C2RB!4)CnZ97dXNxNj>ThOkh9^z{bXg`ekXk- zTila$NkK-2*X#1ka=yNNe$NMgldbfLa_TxgM>7O1ti572aHFIJuGni2e=0bWywQh4 z*D<;aJKfUQ43k|K_cra+g#Gf6em^cw1#PJwzkQ?r@V>hb&W{<4gn<6_C?W^&$kcx@ zI%>5q%OYxBjzIxjKpGFj^Ey;ste{%7;KhPQF_bTU8g5Qd-CE0{PxVc;5|9-JA>6+g zRs5}hV@q2<{q?DVVC7CQ&<03@eYam}2AZko;wAY5lx+Yk0~yQ@M3 zT9SneZdC`L2|>4aX;W83$cg$h=$yY~;Ey)Cm(x0rn>Soh4qe@pwnIgsKg(iK@ZnHY zzcRS_A1icyV&SE#1^E+7L0GYqTPYD(QHj^xUzA~$ej4P;sx%@a%c$|uQ6YN;z`g#M zLeVleKKbFKDfQ57$aR#|+;xf@F4FDf;`G~cdV|wWx@W=Taq>+!*x)X@jR}8 zc?4RqCdN+{`I{fJvM_ml`>_fh!Hf#@5wWzvG8xLF%WPdn2#QG5Y@KK89J2By(dNi! za#!jPYwH{QE7_dwPSG&$idY`8uu&>(8QYVG>S!LWV0V9`XOSH%M!~QB#`ROveii#% zMY+sMPVpMU8-#vFmJVgIyF?WI(CkFsUIrsk@5W+q*VNLPE&UbvK6;c4i*=ZlGRI#D zDHtd|5rJe(-hL%PstW8`&n-AdzeamE6b$IgUjPHUjL=uYhqlb!@ zUcNL#W21V}VG8v<%d3NMuY8qwf$@6)TgBqOxKW`q{;&EGV*q4x1u0k(aI4xX5^yUF zL~!#MTt9MP8|HqDoDD-P!qA%fg*XPCT_h`_ytTJ?n2OW8zpyn{vLJUF7}}U zE5ePP&xs2|y{rL+m$$Q8-qZ%{^GpL1uuqq*M2*i%SlR02USTVa^`>Ax0~h|f?;)4V z7Lzc$)6)xEr!gm35w8dLjGUa4ia@Kr+p|!lIYfpr2%FZ)ut#Q{>?gnro__0kP@!&L z(uP_+k?Zo^8*feLzw{VPvNWcvS#t`4pY=_KJwxhrf}JY$M>%{DL}_%s3TS^tTQ|n< zD-*)xYx#aiaCQX6Ltq_6$yqIHh`Zw%W}(EErTphYMUD8w_kv1Yv`Sq+TE0cs^FU$e z#p`Ct=M$D($&r-C9PY*l(jl0Ts*={TD6*zlbM}Qtb^W!_hJ3y2X(V552%`S{ zUPS+1BwGZJ8i&J2+91r}6_eAw0-4-zFKoU|tKF%L$gBr4_(j1PNB9yH_m|5AJDE{F(%}BW$WwD}^D-{Y)*LcO5AfkI$M7pY{gzwXF z2GUlrn}Kb=px;{0hiMS|F?PCrB8Rqsy$ZF*><9+`gc;%&Bz#pKRgUo1dhV#0=oG^d z-nCh&*h?}P%Yj&t)u1ZfD;-JaY+LOMHX1)yZ&wtW!|888Y)iV{=uMB7 zh(Uw{6$md`(Zh~8*wn=MUEfGO5$e9#Ey!Eg*9XPx)v3{uwCq%%aHl&x**D?Wh>EG| zlj`lS!7Gim_`~T_X*P`9V~Fe}V?7e^lFbX5tm_~h5d(d%CgB$^V0wi$O#DnRBx)D5 zuR#XNe0jYe_+Z@YBT96C&!Cyf<3NS|R*`p1h(&jjXcpM!Jg*TczRTDILevPuodwcm zBH+kLx>Vn8!YXGKR83cYXnnbOkf>ynFjftbb`n&b4|%<9E0Bgtj6uWy4v(G|YJn+c zCLEs9NTKz0K=Vi6-$MSjDZ32lLp?{6;HXO{$t;!#SBB5OiL#cla8q=&Jt;!v%U-9w z16;6w>PN;|$G3?HkmC}X+-AQua4)9wOAgG-5-~^%!OPAI*Fw6rM>{>%;?U{Le(ESz zwg??kYMOLF@5R_jL;OPC27mgTB!*R%X(qkks#*j0OUUQQze#Fmwjp%{bB*4AUC=(@ z99{^syq@M5`4alWXw{LXdquOnil6&th42uRV+=X=mWvXS4e1S3JDl}c@fZxMmt-Le z?s`iTqaVldnC=#$-7svwBzH^;anN;jozaSn)+)@7Oi`)#%B%h=Cz1yI3a^QwE5h4+ zG3=br@=9yGY9K-)>Qq1HSXr>I_kG;ON2Qm7gW=TZ5Rop5Y(?Fc;=m<0!JN>M$Z^>m9f$Yh|v=)=m0rR{@WtZ{pFyKZf$gmlpUTEu{LzqB>UMvSe3#pJHK zeN-{qNO|)Sq<>4p6zj%9!`Lk5DBZ=OZC1Gp+bi)0X@;3O`O=7?yF|rfuDjAWY{xs? zKqv%-6ezRd))5i+A-uAzxy`4D(TJPL&x%nuueFue4(yZ-#{ERx&fpBcPE^Z!@Cltz zSm&FT>CSchl6HIDtE>rTCR1dxRoQz3#jBUOv2n$^&(wTsM2Wbvi9}BK-Y-4&lfk!? z#0C#}gw0jlI$m>0-B}lo6=)MP+yIQa@Z(@ay0+*CGmIgmJl}V;$YPkR`oHpm2c~SR zoXzFJO|G^fNMq`@wzppKO8sxK5W|)Z5>u^=Zk`zuSl@?4H4m-{iJlE$Q_p+9+WR0; zgp&w}dS?Hiw~V*qz06Chu%;XN7&x zCBFP*xRe6E-LuMmuHWH;H-~*7k8F8W%IDUVT1_mf6-&0=?0|k=g_6DS(!5s68`&Pj z-A$dzw~q;Ol{~F>lA?8ix$6i?TCZPK2KFoXp`=>>@sFG!ozG}?jwpuP5&5VV(PYk8 zv9TzAIeGXjwq0x2-O@X2mzMlLzt}j#0+3t|({%9;vhed~e4(dHzNJ3;IAZa+vgZmr zePj}Wcy*&D*mEbgPhb$RDdFx}3+D|5KuG!Tt6V-|=Cz#l(tl_#eCYpxAGB#RFYmMJ zBbCh}d8`8a6koKn4xC}D+FIO14Komy4oC>ESAY;%aeWKRUjW+UM`REBm7u{aN{qEv zOT#)}U>uI2P=O+jf?jg=PTvkGQ8*z_2iHMxW0usKkZT`lztq=-+Dd%6JyLY;Q=7OL ztMUYtA*8w`{D2KuDobk&P3MHC_i>0gP+X9uR8Y$IwKmq$~nW=_DIQ0Ao%{=(DE2p2OmVPA~_`lKC z2tGHs!>>Mj#D_ZFJaHS2``UhD&IHF}uLCxl(ea~; zU|+4lHW+c`0{h(Jw0mYE4>fZlt|j-KzG%L}KhiU40A>!9F*><+S4q#y=cf8$k=NW% zeSXGV=V*znA#BSHRo>UWY{+?5d{6=if4(RE!`yduF8ckT>K9*E5N_-3$n{(F5Qtdj zMn!W!eY7_)%V9i7>QDYo2NI5ay?!!+vx1qkYZ_1m>xJZjP4f2R!%F-I)K_d>7v3yd z{)|x915L)PHsuW-%H@7AbbmQ_|GU!jR@RAL*i9qYop5905ly*S{w zeI6WVJiR|PNL+K8{mp;6&*wgm3?w;|@Gt4gqR3qLV`?M}DHNx+5qwY(F# z*=xTa$I%ZjD4boggq~L){Be4p+X0$+~353`w+0Dg{Rd=v3&k zK#52c1005L}YsAgAb1liYFQGH3J$gwxt69gJZhg%sR}w3jlv+q>1DhS4TG z=N<%*4T%O>= z>-)GPa9KAS>zZwSrE^;k{s<1An7p1?sqv$(@R}P-KZ9C^7R=xSn>@a=+=$|O>*034 zx29Zg)n@MuJa71x?218PA(IcfyK~&ATsC16D1_@Bp)!d3Qgw_;%#hB4a4pfPe6mxq zOkoOQTCQ$oVncVezMLoUS9Dcz*Ba@?5Enf1!w4qa#PB#(4g24RLM(D_N`y~f#PDs> zx_btJfbrCob9)mIR*hFy8Na7WH|ZF*sxPvF8yeVW!4SNH&ZKE}Qxx7l51Tuuk3h78 zbEjaOIf`M0G2d={!sTP_czod$dG~T zQP+jAJc>1c*#y_RXkM*Ic%28EaX{yPWl>xO@#`VdeEtoB3JQlj-2AX`558(P|8fKW zVImC9U_b$-+ME)x?H<3ntHO)B)Be)|b~!HL;5ZJGX6(c{jR1i`#~Z(DizarL44Y&Z zCWlyb>Pf|oA$shI0Eq~Y?%~y$!ZD*s-Znu<*c$%%A7+M6(_yGom zsJr;Dp7c-+UJv68=q&V~=k_@o9*4M=T*crHe$5uGFt>Z_RX1Em8gPR%a2zJe+~Ro` zz#^%Ljd*gGhjH0a7l(`7VOt3c$Lo(E**7H=76aL^OJcS%oK#JVd?|ihtsj~9!CK4r zgkoSyY3LLu6PY zUR6t_jJ@yFeXm*==;gV|>~N%M=V(9o==k?+nnc;np6~1J%~a^fGkJe$#8LW59T18` z6-8q!a=C`Ii=P<`1#NX*79xr<^;T=ez|X4De5_`2 zF!L?^gm_+{_Y-(5CvB^+e1cmciF6w4bAolmdn+x0>m%Iz9NIC_+thH?jDVE4%HhsK z#dF*Hd2r1*VX^F~^RH)eTWOU+11{rR;eTrZ)H2};$I7|959gkam(X|XcVQK;dA^o+ zF0Pr|1VIu=!(sQrqTw7?hXNs&*N80=%Ie7tPh72~*=7~Z&6OWSJh43FT`jjXyV(Qx zOHo0z^9>}W3H=_%@U7{NZzN9>3%HebBjc-(<(rv05cMCFb-~BcT|QlI9adibIXM+N zzej6)ly~Q0*WzsO<~@7ihv<#csQPZQUvB%f;lO3$A6Cp2COl>%V#F{r#J(6kt?!D7 z`=wD$&{L(0+<)yc`{2<2r3a&Bvfk^hTO2t4$pT51G^)tf~JEgxxL$yeS zkvm~FZ-*nP*m;2zPU+52G@B!uFLfbvq9@YO19MCFVQt~CXC?EuazXi(Z{ElW1BxLW zFMxA4>^8(D1Z4q_^>nY;{#elz6M{!G*y8MPoLCem30@}apxdq&TkoGB$$~JT4Aq}}=qhy3_Mr;c;3$yNVp2wo zxH$^sO&j;gbIbN7@E6HkY_*UUIIMziN%-nYtI8|8s0Q0$ z$aN#`3WH!$$} zz>H8yj#c-2?aRo5baz)Tp1`L}rpORJf0>Xd-DIj$@_*DF3u}>oyH@Db=wt__#78i( z$zs4@0(2}LMj|$9xMWlO*f?J>R{a8gl_te0rQ~A*!fro&zJ`^)*^CGmo5_s`7uKaF zXeJbde}IUrLCJa(z=iQ3@|1sU@IE}DK0^?GteFTt+87#e51CxMArE_dmgj7zGw9U+ zCD^NO!0zEP8T6g!Os9y{ZL8nowDW?JhN@rRv$PEJ?nw<~J#P?Rm@mT+0I3;1*5~8E z=*egalS~Ycq_b+ejx1pYm4Da?X!AOJWtAzEAUwe7&P@)D0}pDzLkc%S8XV&D4M^ z=^A|msG!Qd3TJg33fv(3;eO!+hQoya`>+$^qO1tsQw{TwE@>K`hsVVE;E*m)ipQf2ro zrp=s5OLk-Syf>XVa}aBAG$=W&5WFZc@SdYOV%Vi;Np_TKsAzfY>e^VH-XvLB>orh~ z57)Ao7a7UvpYu&d)viaet5eS7x{FY$@jiug&h6T4 z2dQQm4>T2G_TjyplBxQS!o9oia^SAAeFP~3(yTvqQ%R=9nJN_H*`g+Dd_I(E+c>rR zo9bxCEgbo?q`l_4@jzkm0>MZh>1WIx- zi#JaDqei@W^Ys`JM5|~PW~<-w!tCXw`b+Z-3W4Xz#(w)bzSMg^J3kIrW+A+8 z3!T@ANnCgm`e(mT1+_ACjP*8gemuL}e8gK8wA&%wofFFH>~{=1rE#;!4DrjEU^MPx zKT1Z#OSaVyar<2)FC1Yt8vCvF!W1=?AXn^aPU53t>-f$_kVaUKGIoVmPpb0Q_OEuH zsRwYxUGQunf{HoWt}Xy1qw6ZH0k zM)gJVmfS%M73)#f2EO4$ZTh8X1a_!MKW_PZOSzBQeVZWYrrkas`B5}>>%uD5@@x}+O3Cp&sqDT0l9t+&6mDdgm#TjzCxKdMd3$H3?EL*L=H{vVRJ zX*0NEe(*D)M>MzS$=N&D-vi$%Si7|?Yc(pP5o!7Hp>c57p08qXeucl@%|r`>=Y+1% zE`l3Q1z!rhAW?VY8;U7O0R-NNcb1)}Zw)tVmrcY+T9&ITf=DeDE>P}@9ik0eiU4gj z<|z44(5uU~DBELnk7g)e(l}Qvg3QJmURbF@N{*3Ngx^0;5tqt)LC1e{lR}sZNpqm9 zO58UFOA46ohk@@hX=A9tynhV{+cCD2=D^Z*l z9!pgFx$QEv!DP22DE1wtXdl*IP)Jh+@vUYxOGihbB~4wE9l2zcb+xA6ziz?mCm&$8 zw;B)=-Hc z$ffI9r5jKM2f5P_QQ23?kn};3DOh(Npey*H^@OrY^%_x>T^O#?nJv9{N2HseO(!no z!O~Q4$LLoN9L(f)T;LT2#nZXHBv`xQ+vt(m><1%#8L>VeLBbYNR)B@MUJ%XHH^a8! zqK;3IK3%8{hV5;kFyvB%twpKSTz`J`Jq~5t+xUw(0bT7Q8vXm61SAQ+f?O-qh5BE` zP-UB#?!?%x%C8N1pGc#}!f?`YH^Q&hc&ObJFw zzsTv|oXUyN0>RH~#Id4MjwD1R!Bq*Xgg$aH8`ew)&AP&haM*P&Cx?vn$mC9s9CO}U zO7x?32Xu^1)&ct3+7teH<|f{TMd+a=$wvO^7YSk(8IqOe@h zoWQoEgA&g`Yd4RXBoXCb{Fb{KV99Y3J)sa3tCF9~DJ%06>d`yB9fQ&hXwXFXJT&6| zQWl=tXQg+oB7;%DSqn8tp(Uz!dA<=9tC!U@{7#)k5hqR)YmNdtj56SUcDvU-bSWV|f=sk^)=BDj&^-+=uDv9T=InGCvrQgy>^-v~$H5 zycN9ySd%e{0?Nk?liNOiD3lqH6Hd{<(3!UI4(an>B*V!wA$qD|gi$Y%`+Pf};M23d z`VaZW$5hzp=QasiU`fUIoL2SkR0FWh2dj&QQ~()MYwC9iki zX2qu31sx!E4}5`iksBq~!XzZ|!?(*~!26*Vjj()wZ_g$fRUi2|FgqHyvhX7V{IIIx zP&gh6)z^yhkVI<6FD@1XtQI|{W=*WMuCTInAGn>SXDju4UePe($U0LEEwi%U)gpb5 zz!4mxHx^82a^Rbuu_=+HrJ9Cio!R37ZTfp4`{q z9h!h+X5cCNJ-zM1<=yAQ-SCMw0SI0Kod>}vr`(XpTC+aIPSV$Ad=R^ zkyxi=z9gi~M^H1F&La5IS%tOjOj7g{?6{cNkduSE^&|rlZ3hWqcnt~EgZbip6`#c~ z%&mM2{i?#O3*-fpZ@R-_Euj@h@3mqof48s!A|k6)*R_*GoXM zn?<7BG2ppJR{njWO8S=Y^SftiJBP(`5bRK@kGK`CT&Hv})d1~fj2O1u{a#Qa0~~>_ z4?SL-8I>GyJuuX(dmY@{=#uevRT3%KpgE(p zXXnq(RN;7^tnd_|ADhX?UY5dsda(d@O-G6Aw~bdD;p$fDguA6Lm>vfh&l||Hw=%)! zrUDC{#4EkrX#Jx@G0!g|y4-1xNC6+yJ~XBVXOvi#iK#uj$YR`gu{M7R#qKh_dTFsx zlJr&u33L=>!G=I+#$5is&4G~&qY;hcByk$(UZsV7oc<@3yMoN~@rXAZ_{^3D^lvZn z=o}}$Kn{7)B+ZM#-2na~C>i3j?tnV2yin2jTD$Fqv2G_bmKx7yEaTK)i8>&;MW#5> z7ITf|ciU=nLUbq>c1a=?hI6}T+H10yJ;LyeN=SYIYIcV=9)Sz zp0Uac0^n1@8BtDpIP_%<1!P*8v0)6SI3m&#aYwP9%DOX|^}3!z<s4bUKS2X8;b^&aT&Ge7C!FtKwZJ9}>mS8>7(nCXc z%_~%IG3e;5qwsp-c0*LN)TRdD;^bB|^V!sfKyYVNfa0ly&2xb-pn~Fo{&TdUe;+MS z*_<4`>hZUdm<#k_fp4cyZyD6FUU}r7r8^1RZ`AjBDR@_OSlOh1x&83>U`!mguJge{8qm<6awkcmxs)`GazkMk>5q#mL~qfW+vGpZ4WDuY zcgWbh7ur9hct9z{-?J33x4qF?SKcp=jDa|OU&EG>KGmE$|6LvfX}}7W%6K1sJj$tZ zXan{-H=gB7tqo`RxnRPUYKkS}sp>M2zAX#P6MzQnQsd1&$KB0ImY%4khIO3N2L}@+=82L2{#elOlzjK#a&vdt zU{$|bZyZ}~zGr9i?Y@Fb&iSG4tl7KLSiGy zHQRxJy`xeJOlms=}Kz}uXpg@gK5q;Ura=rNR3b)n{9h#V_4&)9wF_vZ^XNjegf(HWvt-1GO#mM(qtS4<&ef)s?^Dg>P8mmopPrFxte7{_G?cCs`lhs1v#81F>O|dfUbj_e-jY zh$CEQRiWvZzSWPBB1WiCwQ{ie&iB)RfO{kFV6!QoRTZF zhO6aHi!&D=t>j&3uRSluSs>gS2#GUzy5gH^JH_lQrFuo5%-C5k_Jpaof|bpuc4de7 z%W}p@8=qg>s((LLy>?q?e*b(Y`+#+T=E3_qx~<#ek;#kzC(gk*m-Ooe+yzcUXX!JF3Mv*7(Fr65VmM23i?&gND}!cwf}2G&oKtv zCp1u-@Ya^+-y6@rsgD1h4e|fU=;trn{0}i_`+pv4|Ih4pvP z^nX_ujJnoTN8b#td_oj>cx+j8Xi##OR9jn+DOt6yv*6^jE7tw0r%sT$>nT{X#AFIT z3cmea>;kU0i^+@+Fj;I|T{_A?(L3_k#c7pUYRs=srB^%Q_Om`IYhl_Bb9N=Hd&#(D zbIMp{i>oej{;XpgxnP=?ZR(GdSBynu7VXOUeU5=C*3ky+II!FZYs^IJYKX;`Zk+kWD@B7QxWSW^e ziNZZ&58-JI+F=4ac!?br4TKe+<|H%2#J&V(NzGPgFOQ#F2<;{oiKcZrQv{Ig_4{im zvxbu1d$q_@;Wd}HW_9F9H zYvV4zmxl{j_7z~TFMX5x@|&kXE?A&mOy5~&{4P>Kxu^4;Z=A$Fs0D({;@jImvC+&$ zt-WFSS&<{~$7CILg2ks&ZJcuHrL&YvuNyu0>hqRSg|9N-cvPtE;QW~tZ8F?FAYH>> z;Kt^b&b&r0VXF^WGo)?HURs{kI&?8?BvDYzx{RO(UZeCI86QAc`d~@biSZ!1(Or(U zlU-Z!>qnp)q`|StzJ3Y{1{!v@RrvzvTd&O&e0yRW94brg6tDUx$+(jAw-q0cQ{$7Y zT!x%E8up7#x?;`QGDqVZi>Odg(T0I^&!#Zmqdrg}_|xp16DJw%X9YfdyM)$k(G2&Q z99B-|n^(DLD5?fsM$#^vX6{@4-hyHrf}*wbU3sMG+0xVNwN4^6dbN`?AdC-I(-c#0 zG*VUBi}dR>ec3M`e{i`{b+J2g*!G)>_6oYCweoY;V>gXuO`6U_)vQbq_mb9$}AT&lif$!QfSs3qdLmGN7!F;2<79hqV;k}zZ|EEh8a zi_=PU7@C_ti#xRP!Wr(7jW+C0UnG`{gH(Pka!AB1v@0I%Mc_L|4yBWn@PCZm%e0qI zAiz;0u;=Zg8B_fUbm^Av zNmH-zBc9tKLc(I#w=4_O#G;NFngex(?**B%Iw>+IiS)FdwDNU>8;s6uyZgK4(w|!$ zT_ejJ{43i(ew>>d_?BIXb8EIgGa6%!nxOtUxl#jiY^W!SpYT(lE&O=CbxGdn$t!Y= zsL|C<6}@!I`LfhLdDyL>iZ)!Vh|2M$Ackhvv%&Wfy7_d8)OR4uL_b}e3pD>_!4pra zO+!f={#y2y;7y{#^-!{Cl^(K$4LHI!xDWLiz8DQ9|GQ8SOw>Zf2Tt~I3EPGkx9oO) zPJMokMecJN@?c6aGpHIvBx5d6dVU@T7Y*+i)**mq?`+D!_O>!MYYPyNkr~P zy!?FW&%Jw*70SzTIyzJ3(7H72+2Z=534WfRT3E$}PxD^aLjp0XW~d(sma;Bd!$(T) zn8IOu6j2IIu)M8Vk`IFT2AVhA`2<5`j1P8in~4HbBn%qJX6ZW40VHvY1-yc1=pNd` z18URAEk3^jx&+C#8jas^ND?*l24bz~a3?RIY|ppp7kYVG7KRPoY2E|jCf}IT<^c_K zV45!iNHOZeubfiUEd9QX@0 z)$1n+G=|1L%vHqj1p;4@_d8JV9Oy&EWlSNES4Jj46e=c+MGYXr_*B44xz?X|)Pz|sIRASQ z@cvueT11s_Xkl=}svD0TBU# zp`{z7OM2*`ySqa|T0}}3L=X^$?gojW5$R^6yZdatf6w#Y@9#S2{KMv&Ypy+O@4eRA z-}nSI9?ZwQ(J-gD3Kt+M{ePaR0&zdbR{>W|%@thBjDK>~eeW^hI zc)Q`+D|wilPt>J;-t0(A*Tq62bGn`Dlgl)vw&U0r2u(~f@op-8rzH3;29{h*C^2am< zQ2hhuTL7VJZYaGIYG_>t&SANd2W0!R;TN@rCv_t@A;_EV9JXre!<&{$*Z;u+Xph*f z|IheW+SCEgJ4G-&d7tp_ol(nKg|@s1xBYzyAj2$eS({1!%xR846R|v>=f6Mu=bx5* zyWaMDFJM9J%YLZO`R_sr%0a57NU1Q|M;{oF8M9>-uPA}RpYR9h;g{-cb{?%dj#UAW zr<-IJz{Y}+($zJr_~2ksYpk{ui-OM+DGb4RSDO}OoDBo%82OK*J~oDCWQ5(zB(8`( z6o)&tjU!!?;Ztl3?r42`S+;c8KHa(6jas%;l%rkkkwC*P?gXX}ix`9qe-_5TOq43s zRyq1XNnVDloWZ=3Ze;)#VPkue#>+~ilEnp1D4~NcjA~#a`$cpkE4Mr!>myg^I(Oc3 zrvTkvFqCf2%7*4G6Xii2j9<9h?4su(+H$0Wj`p*?XKGkRnpk!7PHOZHXZ7y7{_eqW z=D=TyxW`d}oOz3m%-k=Z9J$o&^4M=921H1UTYtiS8fV$y%77lY=u1|f1*_CP9!z`1 z-^7kvo-T}a%Y_`y}UbC336f3dc{*T7}nFk+wG! ztWMP@uun-#?&x~vRN_dkLL37_tutCzXLX|!$1V%V9Cd)?iU#}mSZ1b98N1nQGgXLG z{(b$jr>r6-{nagOWrT{ZI_2udPPy<$enkZ_8jiEYISNYubDpW5AE#u-8voJ)OVgwZ`-uVIWAZ;z#z3A}_Td-e~z z<0tih*&W~G0&sIZh=QL71;4@36Lq169LvlfQvSwX?px}e&J#lJH%B;rYF+!6*@57M zi?lU^205=s@OyYAjV6C%(g?bztw&Lg)+P_&p4!YLe0k)2OrNv+1Y^|e8!~RUA+4%a zm|@UY$@e)}q4$}qjRTC|V^paOXarvuo@PC9d}(WPcCyIK{_vH5Q`lyG<_UPne*Z#cB)kc#2MS3}(`*7}qvZul3 z2SneGZ}>3!KePiY{He#0Hk9N zMQ(sg7rw~JN35y9B+SiV&-h(1WlUboHtBGm5f>5gcJE2op?Tf*8UNnFa*o`Nr(W1Z5y)DRaH<|KZ@7u zkg*DHj2dgtK*#YJBx)1OM9bUEA2mPYCW$RkEZ=8o%aL1W zUQlH!%a9pGm_6>vjuBbv;_K}vUsb#RF6SsLB*CvE*29J%ZlC7l6Pb5|-0UgMK8&v& z{=l+tADvTiZS}8Lh^^5d7KztB77CLqO4GN2q1W%~`AoH=o+C*b_xE$WOGx+x@JMP9 z8B|BYB56Ej5LO3%$*b^&L`Hr>v};`oeak}9G~d> zJBPYWyFnK6-F`VNVuKHKWHC>9Ya|*NLS~+_@|T)p_-D}ybt7mP3E-k$GdvY*$9(Mw zpzBo|Fj7_LJ4`$vK0fnVV~;P>j%18M0Hm)3h;a-AK}-JKO{{J}G*!fiyfSrsK7-N+ zkXdG`_t`S}p9|xteRF`eFq?65ywx@Zjd>SxIp~qTn=Xu#KDmEfL3ZN(Y8^XaP9A3# z+Gre57{cEElm9g-5s|X}t@(NWIM~@BBTt2joKki7G7WofyqVxhczttPWcQTUPJJnU5M80h`~!_Yt=b`3Vj6nbuGpot)3 z-`#+Zz-EAab!CY7NuzlJO8&r)E3-KuHj1Ql{ln)h_?SYbM@Y{*MgV0@aR@Ti!W`jZuzP&~`;twvwu0jOorNfbWv zvSwBFHou|-t-pDAxoUa2y0a_N*f!{BubSx(`{Uu{2j#)@i*I(*ShMHv8T3l#9&OfA z82oKqz5DPC)9-^iL!Wsr5&MIs{_{?CoMz+)c_E|_b^I^zOc=c*UI46RI>3>$Rls;yHAS=X9}F z5wYZ8yb=jsX5>mV_ho#sJNvzWItmX%%k+oPLHSUCu@k}80E67l$xHkym)w1DH9)2b zbeOk1c7qKhdq`wBMT|Htht%g>My$5B%)Ah6S*Ck`up5Hg#pNbN;eYGr80GL~GYzai zNN`rrM(6ac z0>0y`CC7*K|3(i6A&)6Yk63@q9oX*9lJKZ~`^mqmUYg5pO{%&_Fu&&By>#^;Kq)BHqPy>y-@A{^Oe`{bKkYF>=0q*4daFS z3hbCCnf#oSSX=7qN_*U$-pm)laWC+gD0p~(VJN0z5l)@&!e|+OSnuls9fxFfG&dPO zROHYC-BLEGwk4FshfVy+2;R^%eq5X!w?QlzZn)*s(_?`Ke<8A+E5Yt!Q8kW$Ui#g- z160uARf8B#x+V=<_E1E4QkVm-cQsqslv~K5_7Wl=K5C0VGvOEdZIi(j4e95ef7kZC z{{>IKLcR2%5E87kq#8X`_;Uw=qSpV-44IE>1zS0U!;{HlP{?8u!t0kWf~iF`aW)9Y zSR6nTS6Q6hF>w|3OHY=5d9NVS#~b@Yx-k=ra#UQbK~Flq_+m5!9ZB$RZ0fHh%4V)E zdWmp`PGc0v7N!0}poo6UNI*_z6=u>MhA#2>4aeHp*LvA4VTr_+7_!?c`4*RTE}+$# zKTv9mloG^AIm$$cAohR-_EOYwiTZg-$jBUxtoL7~)HepMD7_{q@6_nAk!Hu==1e z(ic0$E2YLyOjh~2=AWL*@`cLM9MyK6jC}WpjL*l>a(+iZ8y1A+`u15GLASCPu7Vvy z@VdjH7eNyd0Ib5@Ft6=R5}$G4b^;L{!tDjT`|er*RCQNcaX0&h>6}&J#sFB<_sj>n z0QQspLXASd{o%8*<>PXb7IvvNrjyRwzv|j{R#&@!?XT;10kHvKWYS};-uevw$M24w zRURxpzcQ8rbY>G#bq=<4i7&$SeYb=Z8x9M$4y}Y5J3sEHLyxEJ!6({Oq=}+|(p>MR zR7JM1PG!-+w9d+1Co02J98PIscOi*u-C{p+L>b#CIYV9L`2BUOB600MKOL_F8^&JVPk`B3qyep;#&!Y+WO6jE3$2(-(hx z71NA!uJ!fv_LU4A@M8=C6MJY7(hhdr7aa^(5dX)%i#WfOR1fp3%YR{bW?0_tn)o0t zfz&@`gFW{!AZny2Lp>+^^$$-`*}@rfYFd5CsJ;guISU|@Q3(l3Ra>fPcNkIR>Nkv` ze}1ioAYH5OPD2t+K*iY=C;j3`zgmpXK z7rp?qvB`2=1}V34a-r_JBzBKk(b3W)J5@10+JwW!s1!mI+H0i2qT{p#fdZzJt419s zzRC-b!L{Fzo{V*k$cfdnRiy@J;TY*p8a{z?{K8XWD2|2$@8H}(rR+1VsSbLIPL1Jh z{5}S#B7Wpzz69%EEDHa^^J&d1`1~8vboP`v3|Ofk>3$y)eOJJp3(4JuKBE7bn&&sD zLFSiy7pV?aP(}N}NWPD3yi(*yR@SUOb$qOJXqv-3bLXPr;1X%xjZK%`Snlgc69L^S zf-=UHhu<07;_I0&mTmSn;kuATK}zqJ%?zJ2=}J@g=TS>ZD}SPZmRnW4=YM0?=vJ~T zkAI{mCl5T7bvfCw366V2hXyt~L`~l!pZPoi$Uq1go&fPkqdPkE$j~lW`m+e{QwXo5 zSCy%5*!kKDL@c-c%Y}{YA=1QT{XDE?;2M_K(ezE?GjCR6@*+@n! z*xctZe6(4E9el0{7|j+O^*T)EQ{41%^lyFBVM9{GfsJICJtus6HW)eEj9TF-5+ z0@5D^3E3xh44=2x(+D^0<_$mja8_7x+*(FQ`l0v7FPJeNY1GjU!v9-=cST5EZGbT9 z`rulxlm}dCq`g*PXVl@)g8u#s&FgE&+c?1aPZ^T8z{kWsy_d3U={jZR9|Tv-?)4Yc z*!hYzy-gW9cr`6#UpT$4x#B5qqgmiXsI1_VIVP}e(4ut{f#&l=E2e9qq2>Gfm`H50 znC1bOJlhY@s6k_eto2vMVqS~1ngZ_EQG)*Uj^geiwuPnA)E|BoOMI0t=ly1`-fmz0 zV7_&&=y32R!eYa6;R7r**6)Zvz{}Q=@!7uQHrHMUlCa=9mDXQfll>d4NH|`{33usE zmEEthIGa5RWw=Ca%RxLTLwnYES4IwfcgX0Ajy^-Q#UD#1+Mpm%Tu=S?FJq_$WthYo zc^KBw{FlzjtM~0VOFo^H2VW^yD~~IAD0Hdg>zIs{ab<2vf{j&eA+FD#=PXn#Si62VjNLE zI@0$lON7^R+_aI&EXTkRGsD0MNran@q|jHF(SOQWUK?9S7XJc~6Oa_2LxowDgY`^j z+eCtOb6bu=aZBtMwjwW>xB$5Sg#XY}dJx`lq1=60`3 z!3hmzBA_B`?VAN?-qFrWk`s-JGF;fkG({Jk!~L%MFB@Jq)}dYw_u zLbo{d?zRb~FIQj*h@r@1lpaXpZ=eK)Dv4XfiAG;E33OGc*PBTn@Ygi3axcFSNo$LQ zK^JD_f7pXbTgEY(YR_3U`Y;tMI@*%9Ymrj$pMDtp!+A(w?_KiF9iTj6FXFQK$as?~ z1c>w#eF2hGy&}LJTIG=)4+h%-WLH!79D%5H>aXU(zAwsFBp^scXfBJC`Ezp-p6`6zM%a(%nS)OH@cAGqB^=5hR8&y5hU zcgVz(VXgAXBhnPBd5P4Y0w0jC1jffG_!#%ENKt{sc^P0|xQ0KmRp+YfdE;MO(a!RY z0)QYEDh7Kw5ijSOal* z-lsC?yU0Uc7X9E_>MHxCN<}Wkr?akXYfSRB#b#q7J@*pCU=|lt(P~JL!X7sx1 zu1_oYIpxZ@P8d%;YjEFXaa;>HY6Y%KmO9O^ht z2P8?)t1>}~=1<+EqF7>5hYW~%z7k8mmN9=^e&(Nqm87xMWETu53Z>=nN{eWq2-2^7 zk#kfS@?l`0!SViHw6$H*b&~V&v!iF!f#7yJp<8$D?FopCZWdEeEOvm0Mn*rS+`(X6 z4;4(@LQbQd(yD>JyvN1yc(g{(+xS5`?a>f=XPb$b9W+Y%>?d*SbbT)Rtwl|}54`&g zu!Yg?6s&WsUmL@_S0Bbo-zl3pcB|h6&^@O7Yd(Jb!#lX^qe0dsX7a%z%4KlUMOuA$ z;9>zK#D41D%(*2!rViYs!jDzb;jC~w`BM0Vl%elSmSdXS&z|Q^bkI!Ubp4u+jJ{eQ zs6`BEGr@%bAgM%9XrS;4!EF9p$$x1NGHc7sYqe}U?!Y9yK5bQuMdhT> z0leSiq{nrHMVH>EFp>}5gysLlY|}99#TOg;VcyCH&>p<@OH2p&_D>1k;)M>*K;KqD zs{AV}q=aRDem!i*hh%S=^;vSzxHG$F1JgHzKofg&biT}EtNwE^+>Rs4%3Mw@BRP*9 z>Ff~oXkIN?Oa)nqCT{%Hdf;Tv95Kw#6ya`A0HG~S){cweN;o1)v==33xxl1*Ew0Px zd>@nJjy@R0-8H}8l{r7*+VS+UIJ>cq`ZqM!b#Ovi% z8Nh~fHvETgBT4|Uib!8=M*N2?z&M{*bpt@r=$r6?Zj$C-W4iiXpw12?5J6YZadv*G zfr&Ie25tx}txND-A-A^lzWJD6FL0k786`~f%p*gdm0?oY-3Xm-oGx<^nr)<2WkSfR zpw7Aao9=MI#AB9m{Uvy*Fqwkd_IIc}o14j_E-goh@DS#ThU7Sj5I1@7SMxMv7o^~i zR_b|QGRN~2ep9g(ZWIJ*m<#C6$LeR}G^=8aYQy?|hKyibKOVlNR?<(xDjG+VjUv1j zVd$-l!u*UfBPv9EH)d>@`GJ6u#c_!>tf*)PWT;?7c*Xaxq~UIwq~Q>9oi8mq*1&1$ zrpjHtHNFB#pEBwdeUZ6mfbsTi&(-f?3ONNX#OsvOsVA`@KBQ}IA`s)~X-?3HRbl~9 zL_1iV!r9n%Cna@JpdKKO(<7%$K_64Fcn})y43qb8q_^dqO(6d)gXxLi>j2&oV)YGQ zR))zEd<~o5+81&h7qDw@BZIcgb9;a#MHl2dL*TM>%H$i3<4OVw=9XQSF4vppE3mNJkKpxTpyor+SJ~eFN!fdxlCnFp z2#{165Vcqmc6uh;Vb6tg)gily#vA|a2;>A*&g^-Lp9y`ndaePIjVJC1K}NN%UqxJO z`ZnWTRL68A5eG8G>F+lV;2~k08`3^h*Q;lMTo+Jr3{ny~PAJZy)G`eUBdrRE)QlJ) zIU^AHmw(14AVK>OF2#Nm;=HB!nrG%Ry{p{%h=} z?vDy*3XBz=M*oU}SFnh6{vd3#gph$=3XW9doYCWaRc}sb#lyXWHeIRCEv;Nq)t4NU zKBfVR5Z-9(kzpPwB_-NwlXNk$NL`_~w00?E#_lG;UYCwkGC7-)8N4b_rlppXNRa6fo(c2E&9W(F?+rY``q+zD>v89;6#8xet5;pkT!5AD zuCeLJej0Md`iTqUqHh+*ns7hlsFVP$)obDN%IVK!(0e>DWU|o2v}>%r|;nnxMlXM3&6n8ooV6C6Fmi`t|1zUJPKBSCscHZ0aXlwzx3~}nXM*> zVdW~4S)rklu@T=$+n9|{>qG~xXM^O~5UrzM<-cg8)U; z_08xB#RqBBES-LacQ1bRnrB{^H3s;d6tFEOWd<{Rm$F#k$M-&xu;Q(hG0T1qKY=$o z-?)z#yXw_3Km?|w9@aI8KU%H9I4H-BEH*{+(A8dE6Qk@X7a;b%`c2&7^96hQ z$e{M8Wuqk2Af~8$_vz1HU%w&1s*gSZ5O)aGT+K{soOP!w=3@4r$>$;bvy0N#11I=L zV)=(so~}_@jn%0lNlu^iP{3*F!AOO}4vcJVG@6xlIy93uIqeF$XnHEAM6{PI$a@;9 zHYzJ_{()jm{UqxjjXBOvVBTCP*Xr%ITxK&WQs2+n*??AAl7Ws~uAdjl z@8Nz3(d+oLpeEkdlW0nnkwLIXMSC`$*8XF_O#`Iev${=MOB>KBqBvKpT)A4q6!i%m zeX$<(r(3))2n6+b9j+6*wba>1res4IVcLx51CqHnF*IDOFk^?y&QBeu{S!??jDXq9 zNY4xirSI(6#Aub6R(bkjnP8)?_e~1<7Hp9yNx$vq6x9;t20D#{N@QHK;#~VI{@MY4 zL&s}_UqnRV>W1b;l7)^Rh-9jlO{0VvFHS>5XN*F(YH+TD*zenwt{mIOGTEucT|%ndnKUjcY zkG`}Whkav*RQE&Qdl4y9+7eI!@notLpI&GEE&&kQV8En@G2Uy?J~vF3BpgS*(zfy0We;Q_ z2=O1Nue0{sSa03)>tslrTZ>H^%a`@B*?0NU8V`~ZU8}gfU~@}t7t6%<<6yG3h_4_UB*)KLIJvXb6x6nuFX7BQxUf>Xk0K!U((J^0puD{wgWohhqhAe$Qw775&}2Fl z7ehHr(g`2XJyyh3*2BoEt@DY&?OoKNzS~1K;$9J|f>{_drKeSQ%CbUwD|=BM zPytzPRrUA#cihGIN2`~H|9}S(=I2?0JnDrV!d|x+CdQ62PFI)=Bt(AniqZhfpiW-{ zx%($Q?s&AAWR)d z@c%t#y*2kERrlvx&b18kTa~Zf8zee*XU~C?cnJK(fp{POEs{5j{(%Mo_f2g6@%Go3 zFPYdz_`$}UF9OK*dXBpO4cT2ed<&pX+NI#8^Tn9p1M6x5kW*++RT8xDvX$yKcU1A)n#POSKJPj^Fa!3UT$ z?2tWeWB8Y{he1eC-d|P&`Y?5h*b<9hDeckT>17GIYr#ouNk?@uSd3w0($;-RJBO&X zj6-z%($~6Pe-H=f?yON~AL_XLLM)0Y^y~NA)M5|W8NRF@bjqjuWn@C%==j7c6Z^%8 z9d{Ldw#?;gZt$I*W~m-PN-_6oo1Vo~!+i4FG>8Sm-N*KHXp)5{`*Hf(S17w8JsXk& zIG7FmPjNSGsg6Cs;eWup=rM2lSE8kTrU65i?`IqW7T!XzfY6ibGfpmy_X<%;Ltc|M zRHDlbzfl){)Dyq>rlQ<7A6Ov&ON9vh>QZ?S#?uUMN;f!9o2WaHJ_99yI9_uAtZ5Fu zD?8&eNAxVLDg4PIgSbA-tfY}%{X!?}4^~FCuax3oi%q>J=xvtcl`R&af$|@qglB(h zx(uI59R@jUWUZ{9czEwWBlxcK-JJ)9JVC+J|9W7GAz5iB)!|nTj!4kA;jDgW>_RN1 ztL_IEeCnb@mErxftcEPMZam0mBbc{rGNDN$@AKu{nwQD#s-DSuL+Wv}#QWx)^l3Hf zStVurtBnV_y=6+=>918`Ur57ybK9`eO>nb_Q6saGukm}Ye-nol`tfg;XpHJtNmeVZ z+Kv)STOy0q7IBaG+8G>dKo&zjDm{kTmGtBmcLl=)*nGaK-_tmLj$@LbrLCOP)Xi-k z=YI3srvF%}|9sF*UVdz28vkr?d?W2{VsZFHGQ6t8Osx1Pbp(nuOSKYiIh$_1YnSl7 z!P49SvM)%+6 z$fSS|;Sa~yM_o={cl7T*26#|Xm9-Bh!Yx0PrG{ES?>+xP>qdC4d8L&e6W}$doavS% z>VjNhaXr|mOW&^N(#P8p*{@&W5OQI=FG1<|7+5E56mB3=5}gzl+LCn)Jsiz%ZJ5s= ziV@p-&8JYG!&8)=5ct=bJjpKI8M_=9aqj4&SN*2s)wI;_p>G6%Wrt|VIQOU1-UE*e;4Yqe9a^kkNsT>p}WbUZt!)v>iS+8NrlL!72 zpJt)%)OC-vQ~WGQtF!eDbb`j$83_ z{#k?l2j+}1!RQ73NP32Q<^qN*nNJC;9Bpfl7d-DWg1X;#c$sqn1-5Z;`Ox8$?{KIl zqtB~pRyOKB<4r(gal!HW>Rb3or;(w#imORxuJp&3BFZj(jNr*PDf8cV5Z z^tBTasJHhK)s!^Uch--v&u4Omw(d%f!fi_yl9mj$GaSLDHX8oUz$=UvgEA|b}oco?ss*JsHVEMQDQAyP;EuzmD zxO;ok%}vU1E%^yIOg}IbF4*j|;D)&Cc%;v#l5S*UX%Fo7>Hj>im^%FAb8cx8@?yx8 zvz@3s_;MIB_X2g>x={Dwy6uqWnPCuQsKUejM)sW6F)rMUvZO;sANR{nA@=#}Sqf^KZQaZR#;@r-k#VdlJyw>r*~m!3`p21q z%qObU!z$Hp$fx?^8oNHndheDA`^kC5G>$v&i7}ZlTdglFeCaVtjQec;CfPTkSmgUV z(`MdDQolj#4pD||Xs9JrBC)ZX0qxrhl9BICWoJeVTJG`%?~yz{&nB)C#3H&_ReAIV zrX=^pa`ItYW-uwa2p5;wfdqSQ$ClwFrGpd(5GTSFf-n@1oyvA)OAmtsn#GrtDaD-4 zYnoV_-%ih^gq@|JujDT1U1y~8W`Cg?j`(F7TtxSIW?c%Yswtn?Y8CCpAqm2S#EmD6gYNwq}nXoq`kERN`<~et)od{c=o5$Cq`zww@F4#&^w07%Waolub;^)gcz{# z?t0>sbsCXyEJTIQHw{Y<^_3joik`m!k?r86%-ip@raY07HSTg9CvGGilDN0nkHvry zqTMkoJ|GnYtyTBBP0P%u#-Lvwez1^{Oz z>N*Mj+;QR_1{Z)sd~C%R@YJ?xL44_EF=sL!0$`(HsDX|jI9qq3IHUEYd4dq=kZ|^u z3}cBV7iiji#*_$o0n+%PaS=_z7P#z;K~nRoK6ImE=-sEmsD~v2t!e19UE_ph#lk4< z3KJjRF4ty8s6jZig{kX=I1J7<3b>?AEqYuBXa|!(P{D|Q4{V00PgAB(YsDC=GfjNr zxMAce+@OlhRsGZ7z~=@+_zC9VgS@vS(VQUkSE;%q&}V}dz&E`9{HdrO0#3=(>~*U4 zpGW-9llCY==sszhtef~uo^m@95pE*Ted0^q#^V%k;xk-(dL$PCr^f1q-aX5Env$9t zX5v$s#SKH`ug-J;+g@m{7W|*F{XJM;VQ~Nhvg?NeL#`W| zGeV{g!Y)%7vURfNd{dU4&0gp7iI&~b_cH2)0KaCwG2}V|s+e(m3JkbNv=e&Q^$y-t zEQfL6LcVcdO$L%5;AsYYbpH1ROfh#rTlAs^u?!aFgFk@?(65P<)$oa7Zfl(LEZW=tG>z^_&-b zs{5XprQ)|MC(&8b=x8dAbL5uUEXJoPeoMvyhE=@x?OLw^Zu#^(2k;^6xABa6VNV{KBZzK?%waYUW+t*t7Cj1NS;)>v3pQzt z6yyS3zAdiq#R*@1#K_%xL1R(f zb5b&EOCJm9f`&3MwvtbWu&J+)^>G&95$N4rz(-(M!0g0<1w3x7QRx0N+y9wS{8$D@ z(7TZ~q_f@U;%-BGyky9CF}zKO4;x`1jr4w19O7KX76i4eSI&ZzkWDqhCH++-6O=~d z7F9&b%NPQ}mmL2!@qQhJDgo zafg&=2pI35Q_dSzDu+2uHx6c3+(#RBW(=Kt^Lo1SV?^&grk1#EJQ3-=O$7SQuF0m0 zQ0(nbdU2Q>y|7z`*qP0DM6vG(tvRC+XDwCs^Y0NXe47RcX>%eq!X!}xiLWo6TkoCB zOw?5+KqF{~l8d8!!gAP`%M|E~^Qcnh#ds5L3Xtw{CGX4Tb@fUK9qDcnz8@VEJl~E+ z^8j^pO|Y-GR49CDr)BTZ)cd%(YBV~)G~lh8BNz}db8v`w2*-oj0R)B&{63~HoS#22 zb;YHwx??fCFEU3g>p4D~SE-zxI-6XtJS1{_2_k;kL!R4VAE~9!oh#o!o!{-jaWzX-xad6iK4q*~B+i)i znIdbbSe->@q!_(KQ3~SGoEatoVSe)9#Ej@CFvj|_D8lm478dCch~|2by5aWo4-NnZ zd^GvPeS4`M;**}xSOK|qEjy*KXM7=v9u*}Gbu`rbmf%xuiI&DuiM;p7N0v`qqnE?wC~76sWi+RGPLEzu|( zdGChXlFCVNtXvH(N_HRbg|LpsaFOgqUUoH$rJj#w_~izSB_r*L(jv_kYfe3u+U48? zMScZV^HPxj5aYf0vx{gXKqyHMxnb{`+(VD-Dv+dNey`Nb<{llX$r+v?6BlKL{L)|u zWq5^wH=K!Dx6m>nF?~_^EqBazr6Y#@oq9!NF(RLocr$M_C*H>X94^x`C~?ru z(xT4u1Fce)GF&?Y>TneRkJLdUvd|v2m9B)wTg+7zIgguUp=X z=Mb9L&_MUJvs;Um)N^JqVx#nnDn|qE8$Gs{mdS`;<~mOBv)gg>eo*8Rm>2}+;Zo4W z5{|6;(T=>iOQ?I(jA+9J^g~9CTY4KTu+UDxyY~9jiKq;L?Su7wW*K$&;@p(*e8JrnGDtBr0J@}Whfyc8St+c9zF-N~# zM}MsKuIL7uRXBUY$5CuRze#7r!!rQICj&n8CVbDJF*xFbsO0bL{m|T*oiNE5s!$x; zZ+l%dA0ge@_G$h>*wzV0>1)eGsLr5X9QFWz6yBgQS>~X7jiBx{TIJO|L{9beLc7rp zmKSvz1+_<{nZQBZ$Oc1>XMfr#2P)F%_{^} z$b&%=+Wyg9QQOK1pd&F{+x3f;9BQSCXKqO1i$gymwt zaP2x<_b6hMGYGZ1Zlp>w@$munTi|6%-3eU~0z2AgAh2fp zK0`^ydL~_d_+B9>2xYy|+4-iF;I^YxoFi++=cZ(8;ueu=P9ny|EO$dma4(08YOdu9 zv}I=2VZ!^a6^c=_YI0>w{QQ1;nfCk^*t13MLp$OBjsl7ck;p(G#@tr(5=o>ECx7;? zxz>D?#!Zp(V1}#3<9(VpVT&)6sJ?z!=}kHmDBNqEaSm=QAbHa7eLz%%vT6=~SY;+m zad5TRZH=?gqjfHb{gn{d3p(C}vfA&lor%|h$Gge6?-&;8JC>3Vl1K##an7T&;jNqr z4NVu1F7zg;5sc6U8txwaHWG%c+hWvfsBZNfaOo|wh$M<<`waC`@FO6wf%XPNEQ7-NmqVJ8EdVW(Id3W4w!YI3k9?gmDEg zRs^eD2Ku6vEwFV7i8bBeiqLEc9B)zs+R%0(({L?afql77GCRJ#983N zyGtqS9N6j^zL?aH!yw7KnQ?WQn}P6{4qXGJPLXD*YBjpfkDow@UO@EdeffL&-w{MH zB`O;jtdj1}&1rYHtbsrz#tehfIg67oF^(cE#K9)E+oMyk5*A)|tcZr9Fyhh2JOQcx zh;3DKN}ZalBtQ6h`T=R#%i_M(xdMrM2yy9J{u6?rgfo(}TWS>4HxU^YFF3%)jO%jP!?dcSdcT*|Xrx_NW9pCGBgRPDR zz3tImT+n0rxg!N`yI*e;C(;a{_CR#P0x*NK4Y^*xMZ|Pmcj}u#mXDFH$XPWv(l|iW zuWehLMB1_AzY_c4z{G9@Fqic8EITF7ud!0ZPS5IG$=9$+FCucEr19l!4Il1q*@drgC zCz9-#_go% zw0+m>Qlgk5x>DLBuphDPJK9;{QtneMKX%9#?cq6CpK8y-6|T~O<8PDx4#K)H-D4Tu z&mr@BhGZnABvwiKlZx9<`=R(zc58d4WA0CS@3eTR{j41_w3wwgc&kgI42fN^RCnIl zNw{C&)Te8jdbSBLa=a8j>!a5(LhC*`3H=k*tB8b}GU|l}y+CCGT#;JI(%p~nF z4wgtxybi!hCXK0=o^1asmQW^XfS6o&z)+tC#2~cO6$cW9cvu|YiC}F_;z35# z2_LSC%5W^csn;=gq6%h18tq{(rlrR2GpxqjHp&WPGSd}iD?TNv9K~}rWA3PFrsy8X z-*PQ{m_J8J(Wv9MhzqJOe98b~dv(7>wXO*@b#-O}EnoY-3Pb;-JM^}*O~cLKvioH3 z9j3EZy^OWAMz)A%7@P(qglPO2U5)2BP5>xUc^I{fAdLpOZF{FI2a~>8N1F-+O@N<+ zt!3m6962QxEyul4U;mJYMs5ny;!$1LRF#xe%E4K>Bvt!fT$hWz&mP0pi9YK79g(U_ z9lo^QKD3QEu-(hyJaOS_=7`+onkBf`lG@kms;x#TG`tdNc3`x1T8WqZD~T`lzd;h{e`WfUk#Py+-j>njpXID8d<5z zuU6AZhi~9NT)#=3evq0GV~Hur)_GldOL*Z>W$JUJTqJuhhVFE|tfICOhS5P~-TOix z`e89BR_ z+;YZ{AW%7IAiDSCM`m3p@iTrD+0CJ(c!!%YWP*itF3hH8^zIYpLO9?5di@gp+3?t` zHuhz_??GL=gQmomAMgb;Bo4AWS*_9o!!xe-dvSkZq~wT?a9alIihR!>kA`!G*9fc- zS+7bS^K`i(&xHjAd$OX;+xXmrYJ&5MaZ>yy9yUpM3C~bcF6~M~*t0Rh_WK+-%sq82 zud`BjAtTOaOd#W9dk*(ltbuBxmF{`tR3CDUW?aOSY0b@8fAp6Y$>)VJBGs7}D7meOwnD%z zM*w0(Q1E86UO!c zU-)Q#HYUQPGu?Ldtx-Su^6l8jZjkjR+~zTeP)Be)BLCE-kVqt^A32~Wv#O5eB1m<< z=z)e1=VM>fvrJt)ppJ2e8~P^~-XR3ysz~@3ooW0{#S8|jK#vQ7QG-DWcKK0+fFx^c z?f@*k%9m?jb8HAEn#nS6wlw-@tCR=Dop^6d&V=}+e&pEYZEd+Y&+U)x1g!&^%t-qe z7vz7}O+M+YgoeX6Iu#J&s+x;dzGk?}WMx{&dNN6;Y4Tq?O6Z}f8dabyzcRZsJoCqu zes$Dk$_OTWMg%INKRYlgpFGqNPx$p*x9r0dR`^~PNbwE%@2X92?jg^BLrm0{d0DUm zt9^s=z2}S2%@Q)U-w^S}zDP_!=Xs4uD=1kK%$oy{H<%03iUtzij&5Nue`^3V@!fs zaNL4DW_F(#$(QV#(rlHY(KwrC`1orfXm_~!E}-R-uh%NL89v>=i`r0{17i!n7z1B~ zN;X}p$h-=CJ}{MR)N7?`wP61FV(|Iy|HIW;M#Z%)?HYI25Fkhrw2|Ph0fIX;?(Po3 zJwcNIjazUC?(QMbxCFQ0?rwLn_jk_T=l){A=w5@ldiGpZ@B360h2mX%%eeI6m#VGC zd+**y#SvM>=NPN_GYsP+vyOV_v-Z|YO7Yjp@+<@)L+9J>;kLh10|M}m+Op`neiwmU z3vSj2Zy2^GUD{R}@6?GAtVqPmC|}8sg4QdgIBxTRKT%H+(|S>MuD#C0U4bdP=*zyA z@;_mfN+3EBWP(K4s~Lvd4gbxGJY_VSVvd-|t?xC6c74tK>=en`>)M6Le3=uiYjNWN zCMFj~AT$-xT}+9};aEC3uqIyrvq&4 zz#)oxo?r7YYK^p!+d&*Qdo5!)ZAIEZO#2kY&*dPB+;3luyu@noAo3_bZ9Nxo2-u;K z5fYxe`1o%u64O28*`dufSV7#GI|x_{7{~9eajiE(E>C#i1C__ZB$_lF_QQOWe3_-h z12#CPy!w9|UmwS^-Gu`i>CPIYBFF~H&9tI`P3ifL>HUsGHfRfBjJ}vOavfVi~I}u$MF|b=)`j!+A#yS?X(A~Pqf~| zz;Jfq(`VJ=)&Hp;;6ri{_TDtIF+~G0Y6JdYKmE95de~-zD4zY2<7u!W<&{ICn|97# zc_57k_E*2*r5Z#$;YZzD-Yh**%ae2b@e|0Tn&Y3Lxpu@y+~7_w(8Z-)G^z1_|Sq_`0Fs>BWv^`%m-X}0gcY1N?MN8dl`XqMrmrB=r*Eyjb)1#dUYsXMad zTu2~sn2|)wv>z0dXb?MliEVVhbPN76fDHK5>xU?6Bwlgk4~-r6$cf!Ap_h0>93PH+ zch%prX*U)=BY;dey}sRBZBo#tFA?B{!j@dccSL%;1Re=R7+Rm@+JFfX?@QizNBXgt zCRU>q(Sr(_=&OB3r^X6P#Dc_9-7UlmGy=caRCOK`*Cp5=H=Y?X`&_yh2ZwBMj@?9F z5Yew0#K^)z?uzTPJ^7cx`@ivMtIJeBkTT*W z`H(R|1V|!P9W#TMEFCI=JZtmw1(6U?kUOmDiWUg#OPyuM4xbdUU*Rl^6xH$;2@ca5 z6{5<4_Pawiwk9lw2`=~D{`*P~@?qowJjEf`*^KiY9E@0OE3_d%HB)Iq3{zNqYnDo^ zMdk<%u{-|N0rs?2N{jDQNZvnG))_gyT58u#iJEU0#%6AB!L{T-qXX5znx*&$ZG9Lk z=KPr0K1ui}#+V$6j+JP$Y^Y>(!!}aXbP7r&&1+?~?|%BFlX)0kv)r5LZ(PS?kHXZa z%F{W|-g(jTeG6mO$G4$)-)lqui9#40u-A;H0^yV2ZIUv3$XqIaj^;ZX5;jAyy@C}z z1W6!??f7i}1juO|kqsw&C`Zf0zq-?^VD>{p9nE{oznt7<<^@M_9p^?1_9p`1WkgIm zoiEGBUk5mTcK%9*P6U4vZ}0st1G3#@D^k%6pW=6L!rc0n{IPR=s&jSIFD~`M{$~TO z;3=;Jg>Rg?WtnXf918UjmgB;r4RCp2lR%)4YieO^dkiJvOLw+GVpVL}(F+UgHv&7@ z3AF|%Jc>rVcE?5P=&UBvR0IhPhJ%w-NS^E3f$> zMYqFsjeGmU@#+b@e9p4xQ#*aR`?~f=Vmnw!2fVd8;s;Mtwr!<4whqz#i#kr{VkCf& zoXRV7qB#02dZ&pja`N!z@O4I%TRHR^2ZG&NR%zOO`r7^@y>~3WKqhw^x#_0XYM7IM zrpw25tBlCsG;LA4hBu2I+`$bzZ>ke|KF1+eAh7o>iigi0_gZ4AP88aJ59OcAi(|d! zo{CC6`WUjj-Y8(@^g_$|TT*9u4JZnvO$PiD0pnmMEbmW}382)c-6C{59~m_YKmcr! zC-NPC7E(6b%iO{9lvf79G&eZ^_Nu_J+=wqRK;=8?B|xcg@zyFSVgp*@T=)xEu0v$c zjlHHy%VPq_6W`kxb6m=uMRMWs(o1C3P=0RJV6^JF%ts7SeCZ zKEQNo#algfvjwA7e?cOfGu{@V-{BQL;}0i}SDevK#-muNmzx2&f_=?zf$qg60hu^i ziaKgWISA#7zpLSkgEvfm{`uxSXk8A%q8JEAM91>_{Utna7aij5$(KNMmiuH7uE8vR zi}q~@T^_XfB)KRMxsGoNth>e7;@PNpUjAuH_vxGf?KSv+)*ASv9~k)x5_ffy+f0bk zAyK1O#K(WMRzQeHM=R_Mw?W80>FZV`5W2ziI^p;-7mICF=pO#myW}SqNHPpF(N_2p=Jz!C{Qifp z(s+19+WoHr;RUp^HjrGE{`agYEE{*z&g!E(B9Y9aI89`zZ&r$?ItK#yQ2Hs;ClRJ~ z4&_U9mJe|LkjY%iAeE!DKRZp86RgkQJm0@!&vFVnpZ_y~|NcSz8ID*G)IM4kS5UE_ zxupmEt3F#ZN`{RruIAuFbV8O>J|K2tA;^0HF`(1@?!NULf&e~KZqKW)(Z;UdWoo4+ zGk(K92PDZ?E4t?a&o=Z|BE9@szdnEc`XK98Z7sEm?e+I5$%o+PW)_N}e<|WHjE>pQ z246<`AaBLJ`NX&LnLku+ZZE&W4xF>oAa71LixKovi{cF1Cq|^g?2`MFqTzd^i8*n7 z3ecIppR_2l|k% zw}1)2^F-gZzor$|Nu{1K9lbIbKajq8NE#zqB6<4gse%9vj&$x8yRfno6v!Pn4(mdR zo5&tytU~C?7a5RDwR~W;k~r!;@hBtDRYHMoXR)>iwCf;*Ugc&^>_;4g+Z7*l|DnqBO_EpEJ+cGU2Crv za6D;LQmHI9@ykgjPpNU%)lO*Ttn-wdDN)p$pZjumM8-3JPzKsl0?RY>%C0eys@;(ajy{n(wy|S;>gd1kM{VSwcd=zLY>B!$<8SKTjC^On zaT|6l<+PBx2M}DVO0IWJ$Awn2SH3}v8SZgX6Betj7D2Sd@lX(p999jfC8OEM_v(Qr zvwHcd+GO5R*5Wti3my?QSqQn67+iF09y2|Z>bYHw>WK+U(A)@SD+1*#1$KTmvY>aAhjMjg zGb2@}N$)nzJ8juR>0^-9^OCl4j^Klz7&Q_&8#;(0>sskN-=k{8<`hSK0FL?yP>LO--YOz%djZVWgR39n* zF*V`WCu5+&Gqv-z*9kW{Y?8y4F=DAAG_;(3t0*#l znLGdW_3!8{=|F^svgm)liL3lCobo@%)4#LY3b+jV6*rnBiz#RN|2d)mWhwvLh0j{0 zqttbyVD4%8)&25oeI4uDhf}=N>$z+*yZo`fgVP1b+g=L0KJOT+q8%^ZlN@ z3H|vBp7dcjd8ho}hs0D&eZr(Qn{}b86*TBguZQCsHM!lM1O#7kOi5F8n_ch0qp@|x zgdk520DXU_LTuX39A{mA;P=E5d6C-)%JZajR#WrLC_ zSuRk+WGkH@kD}c|s+MPiTa7Y)Ve+e#gop1d0qDbFc}~M81p78NZFh&oxa1jNZsNot zT1gZ;q}9IdD+4{7Jk`u^L@Fy=4(B>?fMB@ z&+DSb9(gg)e^P))XsJATT2g-drjFE&qkKl2mF4GBp78Jzq?+rxTu4=~o-yLLX(Z6A zm$nb$ecl|>z|6hx*-wV^g5`RiPsc6W4kMW+ay;MeW<;^FAkTYj``ir8MZut@{poux zW7rKbxUJLs#<8a1_T}=c;)&1A;#G0{kR*7>Pt*C$&uCjne8ag)hx~a{1R)_IV8nvb za)zZMN4k)L3*(cVfq0*%fVhaHU7@|oLs<@>t1Z1H9c$Jq)VBc{vljF<+LDf-2o z4Wpfi$G{u0oZa2x>&NURiMt=o;^HEc=X-|zPY8EsUU!uedf#&Et=^IniI756wcV6U zMu9RX2>attpB8ToTrZia;qP>^&}{;@1TGM5Xwn+Y!2D(TyH^cf>-ny=nb)O@peXub zbztA=N$zWxvY@p7wnDitg|XF(unYBqEnYW9ysqbDNSWb;9q5`m>lz+gfs|Ygb>W`@ z#Wcl)6DsorB`JsFTeLfqfleB!eLx|5b4oqOoz(IaE(v%WPa%Mm^Td~d% zazUdf*>~K^i^Nao{LQ2r<3u{yPs_=uPxgMwup(a)>6PmBny-_CUwmm}{)ekJcD`%r z=I(s;cyMf?Y*Z=7qx5iq$i~9arfa(6p8B1+hI#k5T??V)HH^A9WwukyhdU2?2%@@^ z=BbxRc}+aQwqS(x(HSG$@C{363u6OoX1;F4oW%%fC7Sw}svSg-OP4)9Qslc`@)XyS z0cwaX=N^IJ)T6?OQ-}R1AvOSGaLRmg+?sQ^`h3gu{hG*<=fT5006x?7cec z1~@=Qd%5?`JV`aHR}Ctp5ci2u2WDD+C?r`g9;S&zQdGGJGm^KhP>s5??87we?rVh& zo{3|L{;;=AT9-|FLH??GDT}yaL!fa;Bi=z9JZq)BXHMdlY>Q|10$Re**rQ z6NdczB_vY8wN~?!lX}-FPRK?jGq`MEaM@f=W^eWO{uMCokeBq!z>=gCz`lmm13nC|SU}7e0kS-YM)BqMj2Rc8r&z;AExojL zi-~l2Xf?&9x(MlaKMRkc9%gvL=rFY2z-e4*ftM-*s+ddI0!$cC0#MGJz_ z&B-ZHr$c_8+ig@%491FB{~di`Um>7Tt>=>e{y-Ld$YITdtMiQn64~`Jt>+6(;VuSb zKE&1c8%38ha+fmzoVju9`epuu*MS3NwE!gR!ux`8=s7B0dnV>EpnDz&(=D6;J2yQ% z@tOpHm(;X)!#0?iTK;;Gn*qPSIiT2HJ-@ij?+w64J#G$3{R2`yKdUCw;ehKX%nw+b zgNKthrp|frEg;iJNk7Ve1K=Kz1VCG-lb%Cnnf8)~*$PMV8!b|zVc<$gs=c^dGZn0$ ztK>Re+<$-MKLW4`48e!+xUGeMMeSi5`WQ)(g_gdZr&O9GB1JeW&76pC#ThIDP~^)A z>8&Q)(q7uF0pOz`d8P(||;0an*C#Z;~D+82dJvWZ=`7*_CHLg zvSC0=G;G%GqE{NjQ#$rX6uZ0LTC{wv?M%%39Hf3W-*u};<7vrv$Zrt&!r#Hf^Sxvn8r$r@OM-pg0vT7K5P4XlVVIdF(v?Qu42muNXGHDP`Xd%_%Xn)1 zbXOR79Baan)0ns}{Q^3t;eD#%R)QT``RlmyNFbRdfWeeFUU#KK~eXw)c+ z9=5S@N8No&`TW`6KdLQ$eg3aM88tc>-b_jv8(x>L9(Pu`CS7P*yXk#f{^u^kYGkzl z`$zET*%X+TF&bV1S>LZoBruB!$+&jui*{DDyd(rR=FE^a8oJanyyNr`jKMw1@d+L_ z>6z%ezqq>5Xql2itEcuWt^gK)W3c{-_H)LUk<*_}k20$38kSl28KCdH+Ka)&&v{w` z{R(vOwEuO^YWDo=6~RG<%*fddvVTWfo_QjGY%1=6xV?;@B|#?gmBervH=te!_SXQ@ zU7?~d%4jXQ$eJWf(GJY~72KfC{>Mzpt0*U!y?S71J*?{yjA1P-nJ6RSK*ik^T}NCu z?5!@+@t6lpy8}as$Dh|Qi*xY%_tO_`V-z9;dUj7W`51g@<-S+wf9%WwkhIp(Op}uX z3x7qf4rTe?K9s+FtYgWNcKto1HToOT>w#O+~Fu$?|9Cc`_P6Lg%p=(Ph@ z7DXfJ%Bz-w(U~V#Ev9k^ariVh=*d=H2xH%-!#f-;CU3@Y1M*#k;*9D6)A0xsw!$kD zv8nF2sBH+^l0gQt!J`I@rt5fjx+Y1sZ;NEp^nsuTHF>>T`<~zHa27jo+wBlW{rQ+U z!IFtWntR7?d!(%Ipbm#}=Xp51;gvEehgEKfMkT|H*DtgY7LGuD#(=!seSOVoE>LT8 zlg8T`n;n%^OX|6sl@O>f@_=i0o7-E#a%0$2bl6KWglim4)?Blu0k!F;@`*;m7qa-X|8>yn3oNxTe|*<{ zx|3tFnvxL+AcSEi{k_N2mp-1|Ow~6juL6%d0whP@b_R@qaox%2LKOW6zWk7)TVRJO zTEurey|RRB&+)&JrFfIL>$A+Xdc3{z;rcNalyv3xQg@p1!@&2$2sa2gy~56)YEVCo zq1Hf;!|q3D!I2F{D<6_bKs#P+Wrs&ewc$xbH8#_al`$$@N7YQj50;zAUWo29mkxpP zrRiz*3B^x_)&f0Jdn+kpce1H_3j-8O$&)STWEQaw48EJOkjy}-;{|azwJ+%o;Zr)! zs~3uT$;%0y&L0nojG|XhVw?0Z}=&{aA+ zPLRj01mE)=d9+E#as2sr!qUNr$m|M!>@W;KcAVuwgxwW+{oz%8;|{p!>g5_elYUXun}LsX1wP&4B8dG*Y~|UB<>*v3+?!kV;q)4uoOpdsdz+0Sd2C8 znq&D^#-;~xYzYicA|FTTz#^=#;mjpEKaog$N!bD3*^Lor0OW#=O1t8dYX56JjqrFV*0drG)kI@m2PA^s|9|o;3bK$E#kYr zyr=lNXRzKeLK*^Pm-5J2REQaV2qF#xdjKn@?BacFF6Qfk7jdrxu>n~j8&dK9!cNrYw70~ z-6;a>)ZR0{?X~f`m%Cj5M@3r4LB}K2weJEft!iYpdYV35OVyKSdl~HUW4x!8!B?_4 z^2|y&1d@d7dwiqyNU67uhgi^Q$~UywM=fy3uI&zrMc2zC)|d!6v@Kp}Rj0Pco#;%t zd_`o4Q(iPsB=}4r6ke3vl87%Ng!jkhq@U1K*RBu?&dCD|*+YGX*GBKWF+TdM<{G7| z)dN~ztq#_L`kdO6J?!!7BoPX7Gf5!bK%RC$26B5n9cNGm+sHUrXBDRZs zI;_&7(IJd+y6Zmzfo=+#?ym~n*r>}bY>``Mjx*l?P92!-T0|Dup7&HR1|iAbh%hWh zzZ)=G>AhLX-gVqtF@Jf7n;ndgpJ4`meAF~cO>GT7rq1TAJE8r3!x?mRRl#H`w;pKQ zX^Js$oO;R=WHpH4^D&=My!E@q4I#?x$n>M{i1D@he^>x~oOnZ`QnHLL=K-9jJ-r-+ zDw?7Cj@w0ddK;e;^hX^0z+^%TqZ{__8b@OD6o(~?@Dm5ETyr?qyG1p%-{ycr`M_#( zHmYMZ&Ksru1-s-*yOY8|=SG*6qZ>n!1ftjug`q;($^fR95{i#08G6~dy0@F??k8`w zy^O386Aud|^#De`Kx8GfXPxfcn70Ly`pn$^1`U-L!MWbBwJhTPr;N1Ar?(NegCJV) zQOHtWlZnE z2ii?%`^Pv9dG*2=_XZ56uL~jFfW^(C&?4`NY$5V4YT9vJ+LjU^BkUne?$$ z_#nq;#t$bE(Wr&{9g6-_3k=@KBsQqPTUZcY;~w#NvyYi@`$lBsvoP1|g}x~T05i^^j=SimPIE0SdlLSH-|VbYqixJy6;7Ep4L*&r5nI*JJ$SEN`P3Xc z29(3R&@=;ePmwq~nm5X#hHaSn2KgC3%l1C8#|I9?jG!kIQT|Vn<6WhSuR^*%6In)A z_{?p;K-hYFym0^i+R2{Oa$XnP;Qkxx#E5xB`|W$Ophcw_uL_hf1tDE5$OKZRa7!}G z!JmhfuOxkj2Uz&;!-|a-rO2~J{{%q84(Lncen|du4*3(As3SUp6=q#sZ192*{>lV$ z8;DOtPnv2xBX1-!ds0NA(Xi1EUjg*U7|*>^tybtLmM^nC%v`pIN0q;*fEjVXvVXse z38MYwH{Sq{m(*UQh|?li*{J5fmEDXxXER`TOn(|6qHc)|Fn^xQ?5)Aw0&sN>b zN)$2gZ-kvZL^@e{qo2LhrplT>wJ`!w&`g@78duCfIy<0k1>TRi!hH_5vl0jMbeh|3yah z-p9g~4XKMfV9;Z~-)K=DUfa_I60M5fsO7~n*FByd@O3cqYOi~F{pYjDjOQ<;?j?6$ z(fo$eRH98`0wpwPq5?|LMAGUkju8Nk34Ps-FAF3i<_BF(f!`R?b$99D+>YhOla)B0 z%7)H1O-C03DA_wgBO~DJaELf5q@|_g-gwuOtjRs}lBmo9?6-W*!IPi?QNCOw9m9E< z6`(_#-=(KXnm2eF>o**(=ue-zerw~0p%C-gaR{HsW|e4fDKfA*KP}94P$Uu9|M#oO zjT>w|?a8=7vNeP==3E@nD$>at%~r{2t23MbH1Bi7psU0o!7;fi~1ALcJiL(!Hu z8?O$=zHP`6DU3@t|3yIR=37_=blume!NtZ_tXnQX5*9 z0+Z07}( zR~JP3k_iTU3u;n=zI?$cS*f{D@8u`N3O%mT2l=Tbe>);}R0&i?+ln<=WJ-+`{bc)B zJ|8ju5~1a)Ok#9=0+%?OFOR=f0Hil2%xWMa&UF+7py;j7DEgH>f|us4ap*>*MNRy^ zm;xo4!KDS4?UG%PZ{I*$_mRPzgv`p0BkiqiV{i6`Uf$p#GfEVr{W1O1W48e>>q)69 ztFH*o4e%*MtWmp=x*baLX0%GS8BbZkIA*EE8M`8*;~ciS^ZkUjwr<|;mH z3bki$e{u0o>V$F>bbzR0vwX9Bp}ej0ct{Mh?yqm4yj*b~F=qCde@;TI5E0-$#Gz8> zb;ZSp3W3&v&i&+G6Z$-;0AsmljJDA?9t8b8G1(i<^VZr>-Qc0+{%BU!I)mPPD0s(0 z;xNqRg@~ez#ZeVJRler1Ad>Iq}K`^~CCrm2<;OL(gHA zo)9UE23X-YUAYhm?d<1YPRF?tr=+ya@yp8&$e*p=I+mu^b0^GSOC$HMwQL=?vK|lM zpdvxJ=pH{J+TMM~PkM)+`U7l=P88H_Y9{8UK^U%}W!Rx=Pr^@#W`FY|2cf5EabREj z7jk-4b7EP4SpS)0Tuim7(AFfg*=K{Z?RI@Lh$<4lSrzo;v5u2@~4k6sp z`tsxGxd~;afqG`Ft$`_c>8jKBn!LC6G)gQ(jnbRA%4_xiPZ3Q2;y=3{jA>dlZu*=@ zC<}fl^U74q`8%4qY@5I#WmX7%Yd8j1)rly6I9>BSHf1Tw{@0QRDA1Vw3 zG%@NrGoO6c$0n6|2T;%fg1~o92zjS}-Lw3cKF$U;Jr< zxS&1d3=mvA$Jj2q`vB`;a^i4*r&O0s$@s}DQjcL^c8Q)xgRZ)zsq(`SKIr_advLyb zv=#X63eGx{roU|evp1YABG1Qx2ZrAVBNsr6i5dGatH>`E#$UF0ykfVAc~>D8Dzbvm zMF2Qk*kX|stEQ{1ncdPX(bHO}TK3ZW2zjb4LC}8~1O~eZx-}I447g+dOq%jx&p@xF2I(9yF#oj_Vyn=W_F04B07J$7`VV2*rI3H) z+w(5e;E0Men5z{F$IBPNAVVQ3f48}`_^Nq8cG)nzVKgybE!*oh>Axz3n#!6@7 z-*s&Hp%3I7w5{IhT=k8LF@=!SdBCh{+N^!E=^w6jg<54rENtV=*~B)s_nvx<3m;4% z$AExclm_Pcol=d}FY#tQFZf#BdtP>A$7$Dvbv$leVOKa`0|VDUG=O6Z`lW^qYo`6m zAPSXOkqVrcos7{_bl|!!cV$R=c)~vS0Vj(;YI(Np9yd|p4^8M)?U7$gK}A}OmuVK! zt2X&6GeO#QOd&v%>p&j44Hgdimea3rEWZ9^dFLG=goYS5&ANJ21NEh0~)H=_j5}yaZYCzY(P?tB6?!M_Zfby3f{@kn4g;B`ZA4J@sh=#lvKA~`IZ7Q}Yh0Hr&FpW1Gn*TpvN zJW4QQzv?uON#`dOhJG!5y$V=iqmKCyB|DG-wdLxSvU#c)YjPIbgRjeWuGWC=(ZU?% zL%Ql1Mav(~JeQpPQ;}emDz(aZ9>-u6^2gG*9f>7uMsq=?o@+(bXn&YQ zXsER?jk)?S=*kVidA5%BU`sq^V>xAYpI^vM|l zuW>{lNPNT*Zw^r8cJ=lA)y#wAK!_|yiL25>rLzVm1`;FGb>E)q|$W>gee>0cjkMcqma2we} z?@sKde+)tQRN{>^sXt*-`f(o@`{2Xx+M?f|bl_H2VFOv$;%u)Ej@VLZtw1ZAnZb9Y zSxyZyaNYgeMvsdraMwnHcn0;yh@hw4Je(cft5>z6?abN&n%Ycnx(xVbR~GZiF6TH^ zJ9TSHt5v%+N&V{Klk&&&I$_FW9;2UGiPv7&Lavea2bDdL&&zTWMc#gR^>!>Im? z;Nx~nA0eDKBb^EB9MWeKDOKM_1VSj`nY6aOBt}S5KKWAEwXSa^a6kA{A0|4f3Qt!m zem6_SFT_;x`9GG_Uxts{jcp6qh}Vog&cdq%+=>u$aE-X-u)yQe zwV;}pvGN*;Bk0Z^weRRcdx!r{I%FvGF#I(A;qWCKtg&d0aZ{I=eyk&ZkDss05AE$RS-nj0`>R4SY|KOc2$w^@ zvQ2GJzVLU8rKCSgrCGVkWR)e^IQ-3ITHx%}2UCP~yWsz4^E>w?RuGFOwW~prZVK$< zJVc--9`)M*ZUAr$(CYW?(?lhqVE)jW(Vt5?uS_nBmZqObXY1GDo|0Xbma$d1cCy2g z^Br;XGevgcHLox@g;1&z$mIDn59o1iP3WyPL7E?q*W)|Lj_R;mZ+piY5J8(#T^{; zn#VMUznagTddC^v1k~l8KNa656+C3lebbZ~)CwVDv}slCoe&xZ&R9m^jD3g%;socT zL!PCCHn34+Ga6MAqW)}tvNK7QWj0-xt(Ad9FJC|Ry*9#6^bJB*?YBGqH%iI7 z!}Y}@dSlFae7+1B)wElhv+t(T%gbxFKK@g_wnD9%Mb&wlB4dCHbQd4l_J%3z%)89K zZgqZe53oA3o->~6^MZ%ACv9RgnGht+?!rn7JYXl#2)aTGu3o~6&& zPDorn=7JF9e^AM)+q7RLS@gm?Hv8(zIPG&`_%Q-RvFiZ?FGT~GLUKHD-%Q{%B}{iz8J00qndwEf8FxujxxN-%u4mB7$TZ+FXT z(c~y5DDXkN7$kIAi|@!&>GLPLz|C8yjKRUlVQ=;H-)8G%BwQjKi1ui0i^2o;STRwZ zX^*%XH-0TYYu!!ZRn0SA>?GO}xH0sdfYmqtm3CiKl_DLT&HY-YECA|2@2g7q%Yp3% z`6}ai*9l`up^DT(*L{DGU=FTm^3f=~^ZNTCBiSE;W#=^!n=i8DB*W2tBw?mUWJU!0QRyi;7&ev< zH**25|JLZUHzb^M=LA^O*?)TVfMUm{_O|B|!B(`T+K%V6-Apj-@9p?z30Tcxy1s78 zKNkhIRaOQekbJcVX`(?h=d0fP<}ZF};){!@(ESSwFu*?R^-@EFN;pyc zUZ$d}HVlVL8#&UNJLR@!+#HKaZ?M7MRQ^b;P*5$RnpRYMw;Cg2=7iyIyGrn*Kj`oi zyV>EC{G!dlNmkKj*sm>K!JrLTL=q#ZF8H~RSMJVo6yByR ze6;b)-l+158QtV3c$06XoL7$x<`Xk(VI36K=6; z(*(48obUnuEL3u8O8vywfgQ@U`|VAuJSpSUTF5~`&F*)N?CixVCX4&%n{gr61j!7Q z+G@IiaW*~)Uw7!KOJq8Mu_II9Y2AZO6texRMtZ#iT0a|Zbdv~|gumI~MBHYLJ#?{h zx0i7Kj4(Qh#yUp&0St{`*hjnQ2pV_!fGWp}mI@b+hK*g{>f;_qZpdyoIplAsO~>;> zs!@jQ$a-mfpTbvD%G5BMeUfGJfybm0HuEXM{#?6E4D2v&=8CbLYEltQP0PzQh?5z= zlSoMH-qK@$iDYAKy7Demc!~IGQ))KFCc^cIKPNb|hTm3O;`7C)rk)v@waj%46t&?8 zdxdG#di`1l8ips^-ZQxi_RK*iBpp1>I&0#q^GD_&N@nY7dGBBqy|lno)_fGc?8}LJ!OFQie!y)zlBwbG18us{Zy$_S+h( zJW){FrW}5PLQ#Er6yJ{~68=qGaZh(Kvy@~G(bUt6>{+bVI(&p(&}!;8y#4R&tJCd# ztG~|^CDY)cqBE2Mbaus2A6feLX8zpW7&Sz5+yC-4`6KCrq%e2vy+EUt?mqDzxE23` z+TPW(Z491BQsz8X&T{kLt*4g$+`Zn5e7QkL#;Gt{8o(1_MJ#B8IJxHD z>7VDszq+FR|9>neEM&un?xkGA{3BBQTOa%1w`K)0P`Y{<`lf?Tbx}TE7ZLJzMKS1p z1Pw2EGt30&xW5u^6EJ#}J|FDM7LC=qsHVB)Rio+jG2}q5C@*XqCnAmiHPDLBS*LJ1 z`MbI|hqPa}rpMI%EVl5-wT!jd-+ZXF_F(rX^qZoxMqa7hOf7-d~ z$&N4y5FG=<MsbWHtm;|2S2ZC%fIpEq%k3 z-9rAIjw=FmKcc{piI(BPBgwK?uNgV&1f@I6N!Ne(EKu41=xIF?r{;U4EN!sX@Ippd zYKxpbkMm?&%UPRX*Uma;JlC5Iq|$TnDmxfkp|?PN-A10C@{^5U=CoyquG5v&lNK`N z`I(itzMA>4W*)&F8uj_`W{_&KTOrR65hhc9>{m|>SCow@3gX-zop%f03n5Izw0X2` zM61g$^r+66p3?Bscnk+BTa3f)^)=>B9NLmc%cv{34XPgrg8gv?!GVA=Dc5t!21ic^T}UG?#U6zGnMye2Bg2 zAAJ>-?a88Bf~o2oaEobaKjf>Z#=~t}Rp{~k>lYeIHPEkNHEp+`@8xrTKTRt)6$Ngb zjwA#nQ|u+?Lo-VzwDY7FK*c>Dbfk6hL&fQ;jg)!3t-rIY8E4pgIc1c!tCXG%guOMe zT7Ho$XQhre`)jk~F*TLOC&;8~z>h4?)jm+y?yd$V_3JP%*fHX_2zdHrvdCVFv+~h8 zA$y?TKRnZWff5x6V$Mk5P@r z>vdBpqZK7*uWSgJ&ZV^0=te=!}6R%m^wSE2c^G(Tt+UHL89KcVBd%v{*nY zHmYGpbL@@zx5aF59)pseN$u9|aigHP8A@7^-XE}1K&=WXQLTKnw8fOU&V7i2MG)cV zT>@EQT9K}pSa@b&*p5)_K@(=}qw=9*TF(;te^>y|<(Yu#VYd;&-i_-gB2r>q8m+Vi zPA-?%b9nN%_I@9DNr~tbhN_4PzK=xgM&vl?xmQ%R&0hWNsXFqZ&b7N{DmzIxss2`Z zK%@5P3h_#(VQVd-MB*1C7o}}WrO>eM9zWdm9}7c7+JCBUHSKo3>(*+|Ihfc>2^zfs zwrtQMZfN)@TdW;eppo8@^TqwDr^4u~h2MCx6AEUu`n%l6qTpp|D10Peo- zjim&dg(E|=M;qD4DY-QbD#)H*EJVg3ko%%R(a|}7!sKW?f)tbm@^M0lo=`!W;4U%Q zARA0*I%QS@V~;u}Gyw%_hX<BM~(ppNE zG5GKyIxY5pkN)FQfTZ*-u~4slNK6LcUTB$2x;fxVmS=WOc4!-c_5F#Xj2f@B*+IyK z(g4?cT6~w126WO~2!7^!RivIT+M4?RU9?dAxi4pSgS|RCs82YIr@G~KIE)LFrlsF1 zhgk#^4c<0uKO?>=&kC!IcXTQyx&_%j#;23$t9xi`j@+=d$|@J1pd2xubTUI(cxzmn@6xTj)DDxvjqM1)-Jkx}~wTr|7n`uom4A?uN#s!G*`NC?w*H_Ixjm$3Xrzq;cMg923%Qybot9 zy6sFHyyDOzi=O2`hxcJ1QN@ACE1wqXMh)V2KEPgoMwgY5n-L7X%uK%4c%AjvDXHxT z6j6{}{`+&YFRbucxsYja_=ML6-VLD8bjsC{JZ^m+2l+rogCV`#?KiN)O{TgGwKBSfqS;w>% z9mH9E+D}LJB$y)V8@bG|{h0Ii&G`~P3bl{~f+*tq6hwsgxCppP5gfSm)DrIzcF?}l zF+_}ue*BsN6Bu&7RCmO`#ayjLNkxvbaOT@4!yfe6Ujly0QIH1hef8c zd6OGRTtdq+gqzKKAyiywh69;cPzrb;3@qRfbf^{YCYC`xe%O~T)a=Z#j>y;ygKi9@A? zH}mrTjylNfz(UMj?Q_tx`^BWDYtN-?)^D<;IB+`iA~+>sD(lPVm6chH7D!UIIK0P; z)@ugcmap(S!bSa${tHz$!!9QSaY7aUkFvLnYU^*Jg^L!4;uJ4dXz&)7LJJkFMS~OE zy|`;}3N*MED;C@}MT3^&F2NxX+;94S)+6tF*Zpw6uwVr^$vMB7*)y|e_J!-UohFYN zAtse1Alts}e*hWKn6_*=K0z zJV)-iZF+S7LL=8qpLp!&563Hc_KXfNF6NNF9Wcvs1FKE^v5aq7DZlX{jffZXG*|RI z1Z4mcyp9qz85ZE=?GcpjG@}MkD!=IQ%QDvRgQA+;cPxY+Ha(7_Q0{t?LzmbJncs+Qw-}6C6u2y$vn(gas1@#e#lP++k z@@9Rt`%Doink$8|i{KR_hI(rTPG^<&&y94+x|&j~zg2A_+TNV$ zkJ`HAADd=8pJI(7Ep)GzG+)+=q{1I6RrZJEHh@NRc zphoE(TogwwFmbRyQ$(N=a+#txACl0CbgF!Yxw|rBsaH)evG7)ee`O{-F}a-2R8we| zH)y(392kVl|k49xa zg6V}0M+0f3H}A(h=!`tIV^LBG)EAvv<;;S8=qha|4kfWYxsqHp1Kjxc0Uw873KqXN zIbW_RIhx84WHQZD;|}&yQ+_=?<;QmxV;!Gl9=6p-51I~4_;nWsui@xt`jLQB);PcM z>M-)npR4yIP1cl1KM=p*{D zFn#=80pR`asltfbv2x|>nR;oOieDQB?t`RY>Ba8Hg~TOY6;l|y2 zxgHsuBiInrW@JUK{yFz$(|IF}`_<*s4-PsL z^x&A%K5(vIdWt#vgKofGoIhDcV#9LYsK4atO_3Qvai%;Q=;j@Br}JELX#Q@1B3Do? z06(2vtQT};_eM;~c(y3{t%l(BO+NPlwU^?S&Uq;sD-mMlC!5quR(^u9ynXh$!N22EM(LEe*oghO zJ-LEFc$C?=!f2(HQ0s6GRD8o=iGHH&Fh54f%%Y9iEQsE=bm)Us-2&H*wukxEK^}4l z>Ek_zakKV06kcj@V!o38j1z`!k5goppqEM}a3uJBohH#%Mn^F&5RZX$<`T@y^CGCx zm9{19X3gb!kM1&CS36AJGUDh4=4Vh=UQ0)tE;0E`yGiH%@p8Bm#0Nrk}tW;ADq##{T;i3O=DR-Y&KwfLYfdy=LRJX%C zBXV$!%=^n)H@vQ4oH<@~TumYuaq8@^?kxfwV|Oq`kbye{76`>m3a@sc@|QkA&?uE) zBjFb;!myS`lv2S!Tnpu1%KbVe+$gLq)a+-){rg}t5@QYkx)=R?{S560Nj-C@sGRopDw~7orahGuDA0_;*dwTxxJYp*qE>R;fx<@+-Kz+;BbW8y`%qN0j#qX6o zfifbl0!b5n>N5vHS+kff4|MCJE0+p5S-4CcF{#U#4boRV$39n1!jk4zrJ%(Q?UcYQ z?DQohNPB9Tv1ed1o1UV<;sP09v0Ji2W$P|c|Dw}*aKYf#9b4D@w&rlGp$U8BZE7w; z3wOU}i}vSgB7@gZXK(a5r|^k{TK9STOe&h;fm`hvVK<@>r!w@Mb3Hxh%6{lt(*zye z_ucG~i=Rpdp|gLOe`WV5=M?dApqPvRI7Z5jwtaP4pO`|j;Aoc73b2=PIu|iVVp~+^ zp@R|t={gnG6lKSY*uhjo(RMb4~(gdiokb&FFZD1E8Ry2JYd&AX_;7a z_W$4v{m%ci5yWE>63aqFi3=wC!~}UQGqyh(%FRTP+n2~f92h@v(OWjrV77(J z6l&B&Ehu#@sgJglwfE?PTrLz&sPlYf(Tc(GFa%eMK7HS|$n!B<>nj;V2%K!wQwB&+ zvwzD;n^z(FTk7GC<8d|rjrP~IZX{(L8)QZD6}tS3=u1>SJ~lG^BPFKPxf@w2^~q$a zqfM_H$+0)MnhrXIAkgpQfh(72vg73u=#*`nn<4P@zU^Eq4VtpK?-*1LIxD2+hh*=m z);@>Bxp%ig$0^NbLX;o+P@cjnT5j;PAbO71zj0H-kT(~uYKisAC-z*y=KgC~@2iC; z0#h#LX5Y^6%x=K)3o1aV6**j2U)63SVHpSJrG1Xj5xX8`VEdthsQFV2fT0CwN}c?R z&DUHr6Mi~TvtSh}-9vnoT%r)cZdfsBd+Ukgt*U+4{AS6k+`P)$+#vYN9b%3QelDFgj1J!$I?XiCS=u}5FcM)nkKw4;yy6_WHc z*b)J3L0Vth2VB)27ekRtDWXb8$!n!(1^_{yPQ1ta1vx>9^iN)P)C-JT<;&9iJ{v=Z z2sGMY4d#f;+M$IoK8VD#y?B}GCB9%E0OsXS`KCm(g9#%P>H0XkD_iEbm_FOxXrJCr zmQ%Oq*PQj!gb}N{;eC-EiwDBvy(MK?0M8dbtBoKu`3eQ|G5?zuzm?Dd0rKQ^z)^Sd zaRc~^X-HzGVnb-`=<|NO&GfFNks+tm6Cn`Z(f9`-yI+Uq(7^R}7#&b|4tx?i0=RwM%vg0=Yjn2qXXTj9q(t(wA z-nI;gPZztP<2xIYY3h0DTy&18#<(OOtvUrnpGxPOQv z=YLApKvrrYSM0z(KWasbX&W9W|WyGpULlsQSlygp0nOdHm`wCY>beA#mba32Od z98Am&xfQ@}ERMa>ZlEr!{Uny36)wg)ovSae4^GS-Sw=d`JoQX?+wXoPDWnj>GM>E3 zRZDCcloFxhXyL8C;{pJd{rDKzd0Mvh9$@@ma@f3bQ9D(i($|*9fepKDTzOI$L(W8( z{HpMR;h6gkBlgbo_X%et+9bGL|2oQye}zOPmc=awIz0Y>L<0@bXUL<*ms_~ISF&&t zc$q&HrbH}l>hG0O10INT#n8^YC^nR7xn)2>a0Py~+hlj2Rj+D_tjuhGLW&@`lV##> z_{oBqTg;gSU(4M-@V&e)HM5lWKyV-;uD)<-GfEjX-(7eBr%E>F9&@R}2uM`9@>a<; zr0p#x95|x#N>al~o%JTsAvR1*KYEk8-qLsVhIFpl^|eBhANMQ1+Td6vk_DOyh+fJ| z5-=*nL|x^ewCpV<(GK*ygr-Ee9r~R^ZSO8Lb&a!ByMYBuSrz;b+z(L&#T&w6f(~I$%-vtKI`Fn;}c*cLu-Y zsz6OtIl58vKO^R!Iha^$;czJf38Nm90<<_;fsX_sDB&k%GSTSN9o*#cbRRLVMEvnh zPKwt1_7*a*ioBx%7TWc0=#JxhB*v0qi>W!*O~`Y5bI-)5q?btFR~fPnNa68xy{{I! zFp>H))tQKHQwaRPdH^&$f9S~CO&}=^!+OtKuim|IFUA3QFl&AM2P*rMY{~?! z%@Y5Y$&-S;h$d+XhO;3gdy41Xob$Z$0q=qi!jH#gO%~8fl zN+H2d%u>HT#=(n$n%kpDA6InaIB>YH8i+Q+u0hUMmOp}Pqr!w!)ct+9aM9QB z3Hb;#EoRN(xVn`}$q33ikPC$W5eoF+BL7H6 zmTCPHqKN|`@E8nn4~2)0zdh1Jg%AQ>^j53?xKoLJJc%JlhJn*^%@2wf%I{{gldwJ- zz+rvUCVo&^^Q#{+pt1Zm=|)N^d?Iz|`=JVj&go&?yl_zcMX$=!uF3RSz>BzN(xXW4 zF62O^MzFoz9psa)K&uNZF+;*;Kpf0afm+io_f?9v%~rt}Dto`7P=6hW!`$Z{^*ePK z&+~g+_8yiOFA5(LKZO$=WPi>*i$nttId&T0N;T-{FA)KF034&pj*dV4cO@QM7yjv~ zT2~2G)_)8)P^;LD&znen+hHc=qF0I8nOnoLPQQB<&1+;0;OX)^UBppEcv6ZbRQR;0{C*;cHi@p_6UP>L=kPKV(C2z7QVp_Dq5kV-t^m4s9a9t4h z-jST?`j%4w2T9eXWy5{6#nAUdCEeWEa)R9ENk&~4qQ!QMP!ML=Glc9opEH_GYcUk& zi9t>5VXKE!a7%&^JFe7iGyI~*rY4e#{%ry+SqT#oM%7Yu^y0Ep%e%NK;Hkw`#?mbvGF5&es|w277>R2&Q@2fu$1D?Muh1=^s2 z@u#?DzwL_O@c!$_EB$li^Op7_ArgO&ypQE$;mr%lhf!Bx)%0=nGt+#0h#S7_4qwRc z3cn46t6T8&yme+M&q)xRG56vsYTH-2eT`*GOrUjuG;FTOQbg2Y)VXUj#HVM#FeB)8 zJiDYc=nkiDIzJi3;afC%{enB=wTdHeIVP9q$Ja+9R7Rq+tubBC^2JBQ1V%dcw{Q`$4FMVgnEQxe<^{6Gw)UGwPN=1=moZxuM_$5Z1S#(_enp=!r#La_$V6jl!jA?9 z^-94=)s;jd8+9#|sD)^}PdR+qoP3pgvUh?NXoSvA(b)H!ApJ>JnjzrWpj4iFj*neNa zro1jdC_F_u?}>J0FD>jdYq5%V?kG~7c-<4|m{x&N4-9j*B89I@0s#CKa2-TJIpaRl zd!Kb2NC4;`7&WMd4#}C~mTod3|5hRt32&+G{xTM?Zq~P6m5-Ia~XqO7|jxC8iGV#+E63)b|l7WxY(({S&0+qFwm)kcn#C+TeY#mva z_Fi~?0CtTNhSwNfmj~s!XZ_5IndH0jlw5%|y`EilMX*VK;bcFGzG22PK0f%!b@^fT zP?ECeO^yM&A+hUa*o8JFv6lpPHGeK-%mv#%U7&4XjqUOL)1xoXGWrOv^S5IvI^VE$ zoB;9(t&Kh_&k09%qf#?wJk9<;Uq`vbN8v`2luuqre7xcE=>8|+>;`$#5c!Qc;U4~* z3$XO^KO)D2QRu|t01kR@X&RgZTCb`yAj1p-@SXyjG6QTY! zM&MD=GCI7L01bi$B#Eh(_wPpc)4llB-ONdt`Fbs8>jl51ymoMH1<8XEC6gyghh+(L z{&~xMiLdq@MZNT?m$*#)3@ghCph#=+WKf=)2w*`RwXMHI!Y%W>G~?0bF$VVb4LJQ@ z*9B8mQJeLUaC*lxh%=#)enhR6zTy3nATy6G0M_sm>*39~=;lYPbi)mOxUwJzN*_%n?Fi^e0 zDv`YwN3dOb=WS6ISDu0a)=%Sk~Y&8*_JxJXn(@$VS*UKFK)TLVVGFR5oh^)e`D_ zOg7Y?z((J40zS~Z{9?iLgz*MU{&bR}W@x7ik=mJ}OGS!@593s5bs>{H&2)Rxolkf) zz4hftV*PCoW_SUf@5QFeJ&qT}zLyvG6b^evNSS6A2r8Qj$L!l8A`Tn$!_(XVNWvml zgda;Sllv|ki5}R{p4R$T)G>~|RT86&VM|eBSUuFCLEZhMvv`wU_bdzk_*vwRKAr->+~#&`DH4e$;7tiTGfzGxf8cArYwd zrfVCXg*bc59Y+%JcJcmB)~P}Vu`SXf*YX)KK*s}?CPKt}d%7#uG{*_e zC1sw4CE>b3$^|$ICY?+7Ed~Z5rVO`SM?4d&g~7kKR-9ru|9px5Yy0?J z{3`N9pIOSu8kd{#WkJf)lqTb01SKGqOBUF8f=NxKf(dMKV9( zi&Zc6)(MTrb5m569;;dsy zUj)6(CAjFeZSZKzuI%}D@ICd1X;uJNy zTqtOE{(0=hjv0L|H`ZagP44Jzy*6sV6-&wt_{|sk+ZD{OJnsFKDC@8w5ZXcrxlGiH zv%8Kh(|sOd7V69S!Tf5w9q*4JCccod*_Cd@I-<4gb)}x@zJzfgaq_0QRttl-XAoR{ zC6NJAbQeD$;QgHa>`ynX%FmT#6M5?Mvja^!(?wbBw4|PAzt$hY7(=T(q$`PKm!I1K zrHx*3U%9OjED-ISh48xlQ>X~J52&X44jV5)kh zS2}mkk7DS#PB|aBp`eo8m;m|gWxjA_zjC5HO%jbCm+seo_7AN_M(Pye^m@hMHs^#KW+ac61MXJ?DpdoE<7h0XoG8b(k+;ti)aW zNbD|wbG$9@Qh^lsN10=hPUJf?0HrIB!p+U^Ft|zhhg{j$OAv`?zgIu=B(IiEJaKEJ z38$H3ezvKiOvwe6dMSfEaIx)?T0s4Fg?IuZfY;IjMheCc6`bJ9_j%YcH9wjB5tc;} zdPjqHy+M(TH`f-9MClue0!C|0oPi^#SZPot0^oh)#28d~Qp4|w;}(NJ|4+DVMAr-K z<~)KxoxO&AuH$!yOn^9pPYv%+z5q33y+gV=)x{K0H|ViuLU;VJS25l05zmjDvg7P& z)9!Pn*l8YoGPXc?7n*SjvJmg5mb0m=>Zhf3UxVINRS;AbE8%5{eWczhJgZ^Xana*v9qGTZFB3&xt` zcuH9q`WP3++ranhD%IpJC^1tDbo(;)t4`Zx4GNT4Gp{d@xd&g zq=IQuznFRLe6D&g;e^nGGuEb}LP0EuzeZkek(F`;);~C?zU?a31Z!TsM0_e4_RG)f zF`jSiEseBkp$N|_aiPHshN}iQXvMZ`Mx-^&PaH5QQ$*~4Kf1hTyqmfcx30WTYGg2O z@r`0ts!>Sh(eNxtPn+1%eAD~HMf0QDbpz39OPq#gz&)u(&rY6_@u?*y%GsF1 zyq7l7c8oK>Mkf=~+zLFtei0=d=sxYo`E95CYf!V?Y7ra5tuONR#=an%SYe-!S(Cc! zz_OAi_g=J@W1gzO!VGKaPbFgqS0~kzQdXr>;mXQBr}6ZA`lP2>3~Dm@Lm!BS)l<#H zJ~TW3Xz1{z_S3ikC4NJ##W{#3ckpMB1ftZCzHuVB>^*tEM5?WjK{_oI8L*^yVK1yq zRqd9fKDZ9MkzW!((X;KZ4kzAduBh#@lPZu=@F0FJv{Zih@%i!aW{$ijqFAw17adH3 zVs3BCzcUk(BfDnBF7vkE%qZXDtoVtQ%Bl^*D93th?V0wn`-cGLhZv-!ys&~=`b?Pc zm2L2FUWTFE4}Fv5NS+_S1YWtDnbML(GTW*B49}vedg@>-MT?a>*V|0*qQQ6rrOIzv zF2-s82iKCk!oLt&Ul(s%`ro>FF?|)#L59L}vGZI0*f$tfrLgfnmn(c@Fh2e<%E0-3 znzbFJVbgELs$QWHV~Pj%;dnOzZPg@?|ux?yi1+4e@=H z;FM13c}Nvoi&{@jNiZJ4{^n)7Ij5bAr{DTKKJ}swp%m`Xqq+RC zBD0KBSZhEfO_lFP*MFn+Bb3WJ`pS94*M)qisN*N{KQ{ZHs%5}``%nM2=;zhwSLVhP zO>FJ|AD{Q{m;a~a`R_j-EJ4ppHoPuU1PCzvV9@-=$}Df#)0f07o%SsUZv@;oUz%P$ z9brpSWnys`TI;abYcMttU4L3VH)>hpka6EjQB)8%%riLnaZ20{7|qPkQZ92?w0o$u z9p(1Cz!*wOWhu>s+p4W$FT7X_0}mSPG# z3kKlDl~NWFMm1X5inI^X;!!r{M%K?y*;#7zXiQhok0yO!tjQ&e`domlF#4U;AI4UG zT<7W?`*PB+wA;WTEZ^<~ zv%F@l@DiMJ9hxxJJ}?thh6HX0cijJMsP1cgGg_qEX5o?XX{r`j25UI1ka!!P+t(PZ zt7;rH$CX&taZN+fwr+-Y*m1`$u(q}5l)B^*xLEha4aQ-4MMUO27eIaflh{xk%*H>M ze_JgmyWUnMP}>$$&}>ip{71)O#!kyKOG{ZT{+WhF1#5?hGY`9_S7wHTXHPUe;c86a zsy)AeKVYv3R?X{qGtxHJyS@!Y-EhqE!uLV|ol;lEd#Ws3>4_0Qf_sIxQWdFP@f^HC z8rvZ*IPB#I`Zm$e?}W)~lx;?fSK4(~eX9q~_Fla-4}G~j;Qx(nFQq>#A2QIow=vy5 zR~QY6e7o44yfY#xZ0$~$B1bD@PD_M0|J$xcjL1Rwe1k|SsVskLUr2{#(pAb#AtgYF zvUGP+b^2p8vc5RcHdXr8qXGLaJ32L3T&R#w|7rQVyhPj0EhP?+ z)m;+~X-ktc1^xc1ss_p{cA zq^0Vd;a2JVekS&;Z=aGi(d_VvHmlNiix+zY+M>Gq&qSzqOdgZ~)p|IpAImsZzrQW3 z(fRdEqfPRpZB&bnR2rl2z)lFjO;N~V@%!vPG7=e`s0OdQX%PSYiM6imt3$_R^R8)vZl+BX*3~3w1z|*RmVS4j&-6w zke{qiOI_?I^Txb)l{#6y6W+X$lM1Yp*KZEI3z>ybuamhwF1;;HIelgm)Z+}lZM9aW z1&d!)t(u->U(W7-YOH<7qdYp3Od0e&vx!jQ^9Y+E_}+}oGis8{Q~4^ag({66dBJ|Hy&Qbg(%C$LR7d{f_kcAM4 zUIrsz^fi#j)6%F(LYsSPc?e(w%nE?Ca)raM47*W4841s{}ysLU7SZ}pUO*1k`pv#ce}DN zV2abBXKsdulqC9l=|~tYfH&?g`(IZ^-E9x8?VA?LaQKB5;+>NXquXS_0Q%7^LOX74 z_1I+XzaQ)o3fkUk3gh6ZLKjBU`Ei77Hh047U6R-U7p}>&nS6w|?xOe!6GxnU*(*YT zrfyUeaj`O6)o#Dtn_~JN2^#BcBc25A&u~6k@~IKKy)N7@bFDgqp3Sn17nHT=P)VEd%__8JtH!9Op~{g{VynVMb;-!nbN}HlJ|Fqp z+r2mo0}jPF0Sy#aFRc{=!@mDGT7OS`j^Hq7gHFDEp%wOD+X#I335^Kmkf}}tL(4*J zV^zAHgd+T6!?W*|*C2EhD_ByDih-j@9DGFIU9JQaiMA-QvZ&Pxx}SRsJaZY;cc!2O zcRbi*ZJ(D>nVJHb*(TBL#c;RJRHqEA(4sPXBs`C~F$| zUTCYk3Td@H^QF^yu+9-Tr8(fUzPs~>9yyIAGqU_Ak7K~b`g_(EW{E`s;nDqgnoWHa zHL@h3e;=4W?;nYp*2{)+R0=7$xe&1I##%#fJv~RiL_>+$-Yx)aVP*hVd_`U6vWRQ> zl_-EWqxkxzm|G!5SqXy_tuev{Vr1`DfyR5pK#M0J22-}W_M1GgIk4*6L@pz9?w}&NR_!DY_ zel#doU|`aY^`9=`Uo;5UM?Eh@0Ni4~0SC2YyAzoh^YZ#lF28=p8`HJIU#gn98qlbcy8R@?G8IsacR%_EB zRUiE+`-vT@N03}$20di4I-2fM_waYbvIMH(JE!6(nv0v7YJ*nOEJbLuVqlS-mU-Dn zvCmP;6xq3AmJ2$#OZTMjBOAJ7hiAu1TAp@~rmd9DTG`Ti@$&y*pUs$$#;;{0dAwBi z6Ov3kikx0ThJ)=Ex<(DLah=RBtz4eD9;{+*J;1_7Eku19UubG}zQDN4@q0sfd!ohV zQ}>+eXm%gcm!s~f_0q=r`^Gah14$T)BvdWF^M{k<_BP2Du)jpVe#*}~0Ay7%^b@6i z`tmf0OQSaayICOqmKtb0@5G2t#Gqu@24K*ZfQCtcBFb;;9KZA`(<(h2nQC!+MJ8n5 zitftIx!?G(EJ%^#vh^AV=hGYOpSa4aXXX>VrA9AxX4`R(nFL^x3#@$h@x--dm1r>^ z36fc2ASaIOr(VD5HSd$qX&)Tvw#by~#$g1!xk! z%=u*#fmX?8l|r#}kZEHp${d-deTdrQ6w`Hg2O2B&bKHN+-YPD%Ru57$K&h9`KWJy) zGM*1u9|nw(AxugjzTV_DG-P?T*BxUFqkz!^XFBk*@ATT=#(9DSENQbDjtd^$TgQ$m zeZRUzCht*_O6uckEW&6Kcp+@w2^;=C*7l9G7Vk+&pEd|NMIb_AZ?5`^5Zskh4>Vy@ z9BGg1v^b#ft_H1x`VdbdN9y2wkeH|Q?uxycF+xzi(-q3O8PO>+V^zC&t6G_sU1!J& zi)ULz1j#N(;JE(FvAmyju3S$lEV}Lljc(j^bDFXmc)o1#txTOqQ;Ofxg2HC!1!vp+ zZ<@u`kHMYD#aYOCjtOJ9>!&x_lppJ*Q41A1kurxz^HwaFo?ml)zhHf$EpkW!b!E>w z?x(Fca`sA;2Xa^s=9=e_|907Tyo^jW3s7VCIAG$m*{XDr$2t36Z9=sk%~&UB{w8cf zwLqhopjWcg%r3=Ayq5UKGV_8(hWzd&|8@0vdD3(@YTw^$vLv#sS%xC-i;>Wa>|MLD9Z>&~Z zM)%5q76bH?kifPIo;b(l+HNX#_)&^C)SZ;J;xDaY#YDnTW)Mbud;~pt$Y)6GSL(J3K*eac#nGrGhdT zJ+oin$3^)81X7M%~sLw;$b*LJ90K#$V_`v*T0oWw?Y0{XE8JY3ylx`s9g7^d!EInOJnG5!TvESF0L%P z+X$v8`>V}Q{%q+gh-w;ZY=kT*y$Gb3_$i|qONi~~@$JCy9p(mo`W|Tc_~oUq!^f;F zxJxf4)Z#@xiPv{J@QWiEpIISk$U4SuHz%j#TELT}OFn6{2;obt53d8@l?3h>^ingt znLGV6InQ}fN69`|sK)o4+?|G?j+`-Yg@8(=@L9A7wLv3u8Wcxo zeH1bg(oCp<0ER#>Ld;!5d&Qv229fIIWPf$EG$WZ&Gig@nZ$x4azz&Fh2j@Fj=laC0 zj-~7OF~l<}&w*AAP64K>dzg^H_eI7@=YinDu^&*AO!Qet;Zal*E9-H}NjeYi6sb_8 z-YXG6#~!#B)D(l-((2t4eDy=3+Zk=c%SsO7A0!+vI1$$u4KPW|Iqr%uAc&O~=M6>M z7*Emn6&*oOtTz?-W^w+z3UHuty1f zE>ac6SO>Xa`&?HOp@=m`y}YR@-1ca{_r_Qqu;=%bKAO6gI}!bx3jiYpaHK2|GfODp z{eh19^}6BwQQP!Uk;rQDknrY7%Xx6_o3C(P_%W@RL6QS-`-fYD3G}Nxkov!v5*oOu zAQjY~ev|2ig;{L0bi3(zVlLDwybB>4^X=H-vR&E_$iSSy{h9q{KC}d9EY$KVCGomc zF$|z*J|r?M#r|k2Cy>MP38rejA!3OcP;++hBs|AqnZ*3K8f$(rex=yeQGZ)nVat4DIAGU4|a|s2{IlG%3LE^!p z<{ox{B`UvlKi?U)wW(C-E;B6uhIHiwdS`A`{kU7M^LGYjm12j(-KE=({wC`uKE=L| z7{Tv=OLj7N!5#Zg9}2U~!a6PsFwRv!bqy4aZH82LW6@F!#@nlF_X>>eX~uU)DScNa z@w2KY_7<pM6yVALI+o8ukkL)xT%+csl7Q56~tqOq~+$%d3tqnVHUAlL})_c>kh#j z(!;)#R)Md5F=XADUG!$m!=E~Xl~l-Zg6B(^AJuf|Dk=n#FyaQoO^1=c*A_xDI>wyY z|7fABjC{a$zs;=m49V*9ulAii&i-b$t|s3^QUPh@ON*yamYHW0f6DMb<#P#%zae8! z4+kPaXGg-WEaEm#GY6@{sCn;EfUxHPP?a%R${@q&ze=sQxb<}ZW~0j3!^_Dm11`~c z;)D@a;&StQX9%e2qqg@U+O%lXUR?zCMDccJEjEGaDqvttu=K1dv2V+DP&H zqf{cAp)VuG4o)h{gQH0~UmDA5P)l*QqN+dP7V3PCN#gr=ERQvPHv6Y?aC*b<<2p`J zGZ|RvKC2SwXGk0vr*1}d@540<7Nt*G`r=bfeXMNWiro-I;2?;2TV*yowf!1(TwTq zs2XJ?8uK~reN@bFp!@Qb@N%h_%z764nB~42HwN=_Z@-gGo1^LMCf}g;7S#InnhW$C zH5YE5S`ni9gAre-nWH#~4Q3JoFMasBEJS?K}&r)N|w9`L||q zwZwXOLWQz&vTe2iRHgT>E&Da~?dgJPBgy)svXh(UT>qw^E~FaHWXGGFB}hV28~4`J zq*v`m?Ch->=oSRWEHBE-R6uNU6~PI$7i?ua zE=r_D1 z-sm0y+_79^o_cr9R5e({t6_{pyVNGkRI$ui?H%19#`nK?;9s-(pE_Y!%wu4ORNHE6 ziHC`g>VGh58q=H*(M&61kZPEo*y=plXhcVf9B9xs3xunQNq z#a)7zJE;!wxL0a)>j|LgH~$(nP}jT)SwMrmYxnKfW=eL|J2g`{I(IYmPu#l9M46|_ zxBaAIdQr-zJ2KEqGp8b>&%@*SdwePH?W8aCdL;VRa=Jie{go)E>!$Aw$w8b4+&5Sp z<83WY>Tq^A@d6a4bFNc%mgqQ!ewtK$LaH&2`SZd^Dc4Y~YWHg|Xy=w>2F*sdpCbL{ zKo@_rlQf%=#wWUtS=fb8$mX`8`?WJ(| zmAx?Wx31@aLC(%ON6b}oMfJ)n&{938t1J>lJ=Kz}XLC1?$Df^SOa37iWz?Ld-u0mO z{OiuOzQB}dQ{+n4+QoR*Czj4{W9w<$s8K=}VeX@$Eh30AGqCuU$}AAgut<#Cddf&< ztj#iCR%#u_x3@%9GZcjmE3rdAR{8S@Vw|fo`I+y*bugev(c@nMe-yO{2eJ2Qi+26r zwaV8Kf6Jv{pNcH_h9JPym55doW3KKZJpUcpYK`av97W4Z&0VgrhULuuDdEUqSSRC{ z3>W(%u`+FF&ll&6)RpplMq@tg46JrVeBKeFrJN(OixU`LW^@TDU*9WjC8VUJ0&A83 z2sxy0V_uUdvR&MHG)bS<1pV3`=(wXpaS061GieVjBgmo67^Ra5!01ilwKO$yBe#?^WZD|wBU}8NNw3~uaZbm7{J{=H&o>v z)@vazPog_kyb(R2PBJC>><`D``9{!c_{ks%9c%cGB@_wGjxDQvsGI7VxLgiYn}r<5 zsZ$?iJZ_yIrLEsr47M`tS^l!lWfeH;y@>lSSIR*sl|D~^uUx77?Fn^zYtY+k9=746!!t``6|r5C(yah-`h ze@?#Kx=BR;#9U42<|5@v=`T6_`BkD?d^v%yJfs-{Y30|MuI(GT8-7Q)FT&Xm&1fA; zJ{Sy3?J!-$Mvd`AKu~q<<c1t033FfZT}IL4 zI<>ie%z3_by*8`4%ghA5v9w~MK@_?6IZVl(?NCv))BT-Z6jv}tje}diI!b9kD;uu= za&Az-c4#jh4twT!>Y9hc+am)>W-ar-A3L=%%N*$B+eMjO2Z9V&#eqFKzR^z z?wu1f2UA<35iBRpzLckuir0cQ{5Qy|9mqO^;!VH7x+pf|`l#aQj=$QwGsy*h4`^VLZu1HH>4ut3s8BG!jqWvnSHDmHvfqTY&Inus(pvdd2oLcmBunBK{SLK!M49T}H;pa250}Tqu4C z(jPmww%M_shK?^LMPn6?bA*}tqgi45Q==#P*SefqM&9-^XTLjPRen6DwVXrLf)sE$ zI{%TKzPID{eEkatKbb1c9h+0nW^TrGuQU<|t%#iOZ_tj8ncsh6hGAwQP;V7R&jKj9 zVMyvE^9CKS7K%-LfN69mQ!-W2`&w6{5jfc7hH?~8$3yrbXUs@iyupRoAQD^k^EzJ~ zk=Ao)j~$Pyg=W;+r{0)x;6vCya^xa0G_gAGA zZ3D7k$Rfm-^QBefjFuT=%{Hi04F$&oF@a8YK<{7rJKh`|IR8S?T8`=eL?8@i$675b zBe}&-W;~CwP^?P)_NQ@he&&>a2K$NNeAGR&>#cc}VqMkeFXch5xSW_|wr1W)T{bq; zx_8|+dg2arxOBih0=eH_E1pxo6%yIYb<{y^9D8HIlCM@xL=^6o3)CfK;|yL%rp#4|18u|A58VVHRtD>foEWmgW+IGwRK^- z7=C2|4Cs*v@9gb4c=nD9Ecs)+cn0(9jUFzeCu}0}=0gH^t)EqeT07_(OH1H*0mWW_ zGBCE108@7aFLt*8vxXVuXn(l-;WQd~q{pu{3yCN;E&I6B8N9UUOI$O7IILnM2GQ?A zKky z!Wl$@`;r2?eli|JChN@>chlBm*@qXvU%x4OUJ!yu$h1iYsBR&#P;RO-_<8bee z^iPgdi*Q&SU$o)6Fp*P{m!{n3$ehgvax?Z&3GN58H}(zUX_Ge%(oWZE*n3<0|0AG_ z^&tsq)@Jz*Tt({xE6*=_+G@}~gLq-JzhiS-t@>2SI(`!}KW|d-UuH!F;KfRoIhsuo zvLSc#sbT_OM;&?NH$%?Ciw=!?wP+Z;(ZoB#4G8%j982{Vr;2S0?0)2X|3$dzpO99pA$!4`-z(} z_W0{fd0z`>GX-zoSr@R)2M1RZgb~~|j&g#CArGNk4=q$?p zCa5UxDnq|lxTw{yh3iQavKq}Y=x=(C`Y$qyx4)#1dz=iZ>Nc}Yw{ABtk>%A?qRMx+ zsLhfzAGUb*qIW(qW-Gt~Ez-Q(GTG>mtZFb-hv%9lEj*adVmNjCaQDx6o)4Ck2`J(q zBA+wP+5G0+pN{yrp(NX<%Yq6txX?W7l7gVjzl+vX%F3~~@~hH5*+ab{eMTq?N-yQ( zt$Y5(weVI#Rj@ljuUzZ9sr4P8`)tvOi0o$}j&6~vRq@?oh|j?tyFrhEp41H};-*7Y zGCrEElbl)yoZ<&WpM#-5lRl#85>pOBHGD+IfwALFdA%p)YIvyVkq)2YvymQ>lEOwC zsH!D=ozIBKY54bs5J7RhBl+duKM++5Zf}Kg0o$)7J{9_sA48&FCP7Hb#zXus?+`$a zS1iQy$k%rnA$^s2ChN~bOJkQ>Gx?vP_D+jj^zXC3(z}LSegH%N;RaJ|->C5a-h5FI zC)g9M83{ejtiKeNhRj~A%F4j$Z6*ng&?pHAvK)TCWegtFGraV<8ImOdi6WW)5hs?^ z?!63-4T$ANaL;`zT=MS2^EXwPaBCg1h~x!q_cSqMHpAS^R~ z1NjvdhpdZ-6b8^^$mk68?@4CKJavR%0S{f?5b6R#28^ea98@_24P3|X3IEagj ze@|*@`D`4xI}O}WJJ;Fx^)DRJ28IEd@j{z;1Q8;HIcTOVkGF+MtL<2xqzWG|N#C+8 zzkXPxXcWx*HEs(0Qm3lgVwxf*V-_#H=`_1_U5L&bQzVh{-6)8t+^WNFHC$6eZ~1iT zkHYk~bmTTQ7;p?@iU+J(8TP%x090u1C#LrU)2-N71nmxFnoYufBoF^K* zArD@=K8F;<^=_un_EOtR&|VcaC<$y#NU-z^H{M)*M&=VD*MM;GOlFCao@2~NE>?0W zFUdZz3C|LqwIzlz)S2S>7d+CX(uCt-V9JECAv(2=^N#WF!e_R}W$bm`i%3@w_!`#g zKYzC096n{dn0!X%0WOUBeuvIUY7SfU_tFpVzg*$eDo@{?x3L;SD(hG0i$mA0kBvOx zN6H-QQ1Soc*BF6S%No4;NZ4Bk!LK8X@=!h6^%7(d#k_c^It(DwKAWid|&>NDE$}s{fe5IH@^DQ19HlAnnLD zGxVAXG;2dIOa`hIGDZR|o4!hyd;9G9yh#e_YpuRM@RX-?@LJ6BqwbAa1{(Kd1|$}DE##UfmN zg?cY)AkVjtYUNGExs>^#UOW5DB3ZM-kIH8+We()DWwz=tUq7DhdqN;r)yFX|nJp}i zcSzE`F4{hrtphL5;Sv3-f9X?G#`c%3F*fA{#_6kYnxEDwbHJ;($$=kPnL~CE(1Wan zb0RMFKU@w(?wZD-M*-Z8p)3?}w|fj%+%(env&hG$_?66-Dur=HmD#~WPR@;>rn9i>ce|C{P3U?4vd;`k2Xh)1mgkY_80S>zl!k9_NYI&x{VAn|z7F239j)j%ikZQYT$ z;eDnG(Oq`q(RcUuM_ohLUr(W#_$YF1(~uLkbU=dK6flHO;yaCL)e^Z}v-ExG>PXE! z2AE9Ja)cHG!nNaD+Y`2lwS$vFmU zwF6zI`<%-6Gk`?wi*2qje{p`h`Q_(p_I^H~$Gdgc@(=T8_YnP~0OMla#9IGVMA>Y} z=3osw!O9s+4@b^hVH;K$UxUjv`FwR4>riw%%2)l3yOxqpbrOUHM^NC}m|r9^G^$I9 zt&(y-vM+po*-7zPI1OKY^CeXoa1&+v5X0IevS$M#OIjF+DSL6P^NKUPRXpE8S7SEz zkqg=RYFXS~cHtrCIUt$xqU8CJrda$~%Y!d1)nD1)kwr0p0+^BCN&#EewmH$%G&$}3 z*W(Rb?Uwd8sFw#($}M+D{>~O5yD%GTxDV*jb2xJ6k@2VbgtL84+dxl&R{73%d5cR5hBd;;{%nhX}5l zht2_Z$@(9+cdl@!J+y7BR7-+gI$P5=A<$Lzo9RIs6*^K;GI%|j>_nhPR(+i~&akoY z0bv0BswcbRVNOO?y1sm268<6B0jE%4bO=H`ZHd4iW)H@|yTFA}o$=H=jX zs6I+|%qPZl1#YbL>n)6 zJ;r=27O0-`DxnV7mMK*p%*G_L8}pa1oGR8qO&=wq0HKX>s4|`NIlt(;h~XG~s)6f6EEw>y->remd>=QUXCWwSrWEz^!uv60q&kWDhUuHkIcr(Ol&vJx4%gA)|0Lr#>Fep1(m)ElMUGyVl z2S4HD5HT13-aJg72c11MpI(HUo(5eOmfFY^EI*m3cqk>1<&r}^F{0gtH%TR^;$|;o zJxro;pUvcLr7^kuByR_YOD86K6Bsg}V8v=7Ed_9IXw=oGHfQotT-Ayv(|41%cYMs% zs9J!x)*#ZdGpAkr z&>I`YI25*fubITCv9r7X8gM%SEfi%Py=`gHd~U(p6%h|30e?uYKM)1WWYQNEwNPgy z{b$i4(jV4+EZzO@ zR^AePsJ^*teb4!Yub?@7rdoN)M+KKEgAYv!j+y&f_})4~FaY6xrDK$_muO295riP( zF?)>RG;>eVa>qvm>ZeLK zX$y#%)tMzb)kFVHADyMv)#KjyvR&-3egNyq@mA31=Ksdft5)j*655cO=e+DD;qG~m zsx#WQgf1{8TgVCVV*{O*#6QhR3+!aCGN!lmp7JGLZEpNQot+N=`QZ59wIBN|KBkqr zHk5G^_Xe%C6dZoqmq&_+DtyNv_V=SVy;RIBp_Qlij7axs>6=c|^`t>Y*IOaHJ1KV6 z8p^!a-JH*ZC>cQm&paW;>G>352U=Fr6nKK^2Ztr>CmujoaULqNKua-;6*Liu69cr3 zY!%s8=AZ@?c@(!a*!phK>udm^mr)~|W0!&y#XT*7231K>K3|J`CE$KmcpNfR{&B4TE=`+1Xet z>vd(rcfD;Ey}K&%2}wD;ba6n-=pac{K+B!$`6f)Pkr(pq@w?Dn1SLdJL2*pju5~P! zu-tht7ayeS>YP;72PzNVh5F%a(-E}mTXu;4 zz=)uhjqJP^E$Q0Mmllj{ihsA{`1q@|F8hc9>|yg z2NN@Xh$t2fshaKI9&sNTD_h&?RW+StS0gW`D0z*f{~2QM7#zdt#cH3eB;BLXH=;{IjGp{?g|5=e zUU*pl{?YP1;O#X9Js$k7+B;vs!KMR0DHTPlk1ENv*0Tt8ugYpcwzWyAnHiFeX)zI_ z*xvXNk-i!L#tz=4o2#R`4S>jckS@XkIHc1_9nU!z_gzMZACh-Wp+0eDGqbFeDF5u` z*Vk~IuV{<+F5EqK_=8o9^ywdsYefNz@b~Y|TKO=!+=&CLx&R*SUO4wW$hRM^Qb33w zu_1MX4r%I9lJW4Oe_nBoCYwDXMB;T(hQ*vz8f`@AR5Pf@W`zp1fth*$N({d7+ zPu@>FSLEswv}*4E9tGcIF5Zp{1d7+9|J$+j|w{oAB}8>D3{ zyV%W!0=VYsw=Y71ER2=R_Hyd`kzcH~^Uvrs=)VoXJBF!g9CDyP3SixB0d-(k1b_?B9pZKXvG1^uhTr}yb87-Zm5 zG%;=q+cu&ND^-AdNw=un7mmLM2=N#6-zW45VH5e)I<;VlJoV|U#zDCeuXr?lfV)u% z)Ewx;xK_!%wUAa6r6K}-Fowi9O#-d>PZD|vXkH7sd)0M)$#vErKi&2AUojQk{x*86 z=eL3S#Zcc_ocUz@kS}WMxQM_l^*vVhva8m)qF`z0S$&XFaKw|Mt6yWu}_hvzuAln zkxZtsx;kg*Rvq?CNt9X;EOZsgzQ_Z+H+Zr1_~qcIzjJiT@IJSvuilmWj@1xUgk-YJ z^cQ!z<4-BVW>cD79HK#(D>4iGMP*cWV~+dVNy5o1wI;}74H4*XMCHMbopHsMK1Qpe zN}l@%ttR_P_;evu3!1Mps>WU}Pol?3Sar&`y&?=IcgB--<~DYT<7qvO>Th@R5Zkf$ zszFGx4#X`|IxbX+*?Tw0)PghKKk{Sxm03Y&;A|`{&;P$n-F^jE=J$ogWi=BP`REVd z6zLlfi~dmDI@XMrOf(+s6o)hCc2bmM*T|?aI#+htOyr$G6qrd@rJb6E+Kgr1&DToG zbdG!7xQeY;Ir%-y6CoCzs&(50AAZ7$hrbH9Rq83fJ8yn& zD)hOpyBQkiyQD>1`DQ9w0+XA((eS-{fmGz&s`mL$X1|fTD03(*QkvEXY`}R_-;n(1 z#$Gh^CP+S5tY)+5$@fzj{P|T%?S>YWYiwfwZzf42BQ);Uxt+~*st>+!TD?mo8s|jw zv78&-LH8)U#-z9;KV^sewqY0AC*jWh)R1I2U!lQSB_??eiAZODRA}yG?u`+91up+( zP53z|RTRLOtiVOpM9aXekd zxhH`Cgn+%+^AZNx50BTfb|r71FKEDtYn_Eixw7*q2G)Q1gs-UXzSm8lm3Xs}$jcg1 z`HoT&CLTF3CzsUoV6}Xt>~WBisHXDX_#x2VIn6Ild?{7jE@aJMH6tv=){y9Y)!=`w zpN?YPg=@XR?7AlCU!_C-?ror{RHGsBV+YO!7wKg~rqy#wFzgcEXws({(XE@H_x->`xhWAI} z1*Ye!-;98c-ngl7<2DgK$~tBwV;IZTVW+U7jMobnT#e>DZclb!O?1t97AeyENMm9A zmSoj>xw~s=y1Tz4@v3r4S8%dYH`u9A|Kwi)8eD9UPViF};ZDDhyaL z0==2;i90dKz5-WbYfI8q>w*Sk=U$yGIy?)5c;9kWoCAklG%M9LYA^g(1^X zp)&aeg%AIPbbv9A)5P&hC_8!midD=tXd_Tl}Tq3nlh;9t0&h+RmJ;HgjvJQyF+8;C@GTc#BF?)y{l=gY3rs})I zJ41 zudDlV7QKDxjC(vtpV-K-l9xAgBKsVdi^M-Cu}vA6U5llO!$FDgrt$J$(OZTIftTfL zimv`MV}pKGz3aOyh?)=IU9YU~e*LKc=`>g1sR7W^cA!f4P_>9*@u5yQRTn;wFP-SBi+7QVm~$GbUsF8ohL36wQ-!dh!5 zb$kwOsHB;d{Z?-8Mczh`BG@?6r4v}a8Kj`1v2qzh`tY3$)`7k+uVN}j@7l;fPjtPS zw$8mz>pF#3W~Lc2r?dE{&wU=Cq}V3{zBcDg6`I;BlRG3$3*}k)JDj(src~2uF<7vR8l!S8@vBfxZh-k~a)KCr* z;LS~m&ov5j;|N}U16|3UdV7ZwdIu$|C(zIQHYDf*x*Be&uExUFO&z%Q`*o7*?rtQP zmv4hAOUNkf<}R8IQ}pI5JgHYt{=j3vDH#CL6ux(M2uD#2Jgsp2B zLCEVv@PfNu4{H;uxEH8SFc0nsgxX%7GMZnM_5;n(0X1+}eagX-SD!Dwe>=?5MfePU z5PuM-V0ciSX#8GQw`vo|f9p}#>6#5#uttJ>f+`S#b)NMMqJ`50loRkKVRs;^wMTl!AARFkbP(DPG9c#ZH6sokI`DSqq zB3#RgmR_>=;BDSxhi;F_g=v@H8}s|nwY^mdA;vdom|o>XCsEGkW~)()-=UF3hl{Vy zIxe5+@uevuicAjvk(gKbZ+9=N3gWwqE?xQq4UBO&A1%S4|{uinX2k{g=p7uNwgicswSV$};r3tXe3af5>_q zRTw|a5CmPkA`$gn!ku;c1O4ZjWQJMFp=v69IR){9Z-n&T6bRUkF`GvV+DsE>hXzf) zioeUw2#K^x!onTy-`NLmGFEnU*9}wlYE!q8foeSIu%*5s06iA z8wpIe_Q2A;x9|J(&SJIEIurVpf1|wFPe3!LIdqq|2ly@>mKzH~!eT&EEZ}01PKF#$ zBF9sLd+rB9Z`n0?BrBh9REd>{BOPC%HB_ztzEXV8z!YqaH4?$wqMPMe%vR<%=c?dL zxOObpe-Fdz+?!8i?j7K`!=#=bBBT#6R9eESSH6O?uZFq~kZqN%(IL^7Qf=q=4yWaS zwFIL!GEGaI{F_Bu&T77fO{7*rD}6FR?iIC8iK}W~VvoY-Mt&waet5K1bVlh6!{?7O z+<-SPNt({~+QN3#vu+Ojvov%V!xw}1WUR~~ccii5-@AU#)^?xj#!dWB&<3$xLB9(A z8ZCh*WBvwl&x>pw(#`vq(K|^R-7tAF=Bn^rebu(BBzAT-0P6m5t!82P84)6U(+bdQ9Ou%_cX{cp! zsHDWTDw%-#xnnHynt>jr*VlP?uvX_PK?u^6a#0Y+^VzjEa3YWodi&M+@Zz24S*+v8 zvhQ9=*u_MMYFaXi?Z448>}~%g<~4cGVHlxfq%P>iQ@IQNe3fZGyg!NWb^>PdviLTj81*>G_KV*s zg7a;g=+-kx+njms%?1sU+4-M|nzC-7^!+gw2K~9F%7-{VT>WLHSfBiZ!6@~Wj`3NyYvsB z1{JJrcA)GKx)GANdD6iA^Ij#&W+-c@T^fk|aYM2gg(OxG6>{Em!Tisb- z(^-Zs7I(g=^=@|4RHn+TDd|_L9B)BDx>m*BNN2>T*WwZ8;hu;&|U=R ze&%Jh?pp68dLzdiO6B@$n_jfk941}aKyPe;I8gchxro`A|BBdhZM#y>y&AV`F@!y+ z5RJtLP_xv~>2Aiqd@ehCchQ928sN@fxxDs=3Y@w0mQMOM5XlE}%%F*}7%9;H^YlU{74XV03e>H9nJ&4$m_}P?eJr*@9l4dT7Gs_p2sBlNx|osw#NdgLoeRT9M_Tl=L)>7!cqs^m+{dt z-G0ZLG#S9AtOY6XsI^q1;HG=plzJn z5HR`t6Q*Mducdp~xjCDxT#)T+2u+I`1D^t@U*72ay9X2X!OM{!Tv;_rBZA|WwG7+= z@XvBB+tg5E1N%o!V+=@W$wWh8h6rDQEDhPK0ywdBh!I*8r&nC&5&CHCb%*~x*iFb* z0N7BOg6TW=aW7)`1PjC(D6KWLRT$E1>iVF{wz^U`Ja~KAB2grjoepbID<%ZR@5W+N0L-Q*8B0|aN!y3{+p5$n``lX#-B z==wqXYvKMpi5lLWm7m9?3o-yY&Q2)N*7~J7Sx1YS(;{AXT&7EWk5a+lY{pj!&6lF>xl51@JX->(ofQ&U_In9nzFJd}z7Lo+$h}f;HvhO!b*q&Ajkxto%RL780 zkhuTh)_w#TcZzwS5Tq=HKX?%1xtgU-Rwwk{$1ylcJH3|Ow6E?0Pi8xy^SAS;sna$8 zL6e_fAU4g!povVkR&Z}5J4f2j{5Gfh^6t9U8$&!jK6P!nGWrH{!N)QGsH@$HpQ_QgzNQ50lW|_B+4)mCm(>w(z zuA_Y150W4K%2ou78pR8@Sj?IBGFN{2W4Z3NZ(!3oLz~={ABk}EJ+1lb%=lLn7 zbFNjPn2(E*EkDkh&aiaY+3V)QSZjaS28_2Y>6y5+qgUY=4c4lR@fP$ts!o7{CweRk zR-5saQ>qF_?@&!r&3BBs*5C`+l=hdN%O7q_ja?OdKQzP2?UB6wwzYFaG8(92`bBHf zb-X%%weuHUI@HzwEi-`UpWhz)68rDOxgr63iN`YJRhN#6bOliUd0>BQGaWs-MFM|{ z|DdlWyVLowMg9fK=V4GTD~%;3(RnQ*VMpI2Wu_w(xvC9Vcz=vAs{Kb6Rs8#k>PG}mdB{jvjmX{X_D%r!wPC#KEn%X8nJOzixWVL|iN zboefEY-0ZPGi#W>^%@w6eC%q5{8`&UtZ_Pz_dTN8qW1Rdb|bIK3A@}?Vi2VSqPirl zrYxU5LE6@)0vns0YY{0-xJH}*HvKeWw}u4}l*_9wH+l2eY}28cPxVj5VyYP_OQSaH z;T^9!D8Hsv6tmGTbB9{?UyuKAJ_#eP+;}rArTf96Bk}9>?mqRfc(|%)Tt4cL#DWU! zSi8dpL{QJ2V_qXvLHCUDpb60my$&>}$K8-#XNdSFkAE-Yw(z^<^N)_$h zkH{%1NYqRI9j#FX8R#uKQf}Qqy~#VD3bJhnca`+NpXS!*?x?i3lLki^LO7ePs^k4r z+OZ6Vvcv(1ViA7B^ld(e$*qiYlMdLpn~rGr&_hKr#n?N4vkrlXIeE9f`a=757NRgy z5WVUz`KEkP{-<>mXoi9T3+g7I4;^$b+-9}qbTONE^FO*h_2!}SvT|O zbguuH;#R8H^z2Hgf?b;PVFRq(Z2Mmu^w3O9nhP(2sgl?mR7wLZ<2IN8AL?c51EN{9 z>#TKa9L>Kv_&91A9p<5bV*-*J>L`&;LGWTs%uKRUxp&>=TMHiKCx@veXHFD&gwCh?Zfxo$m*Qeag7hgKDE-E3vUjlIxC?2ui4@p zeQr-%VWzzETBoqer<|~)AL9v9_&MU+o@!p(=S7-V1M!5h*af#Z2KE3p{PML7ErvH59ag8Z+CFLqZ z!P&*tRb~-$)D$_uG%Ys%Q6pkkW)oQD8`AfMSmTM9C+yhyqPvcEzd*c2BW?tIHNUlP zs&u30v!tP$OvyWD7*|kYiH0yWKlH%(P28uoCx?ve;H~<&XmHxZ?9j5yccAZ0CiGEA zduhrsEE^dWVY#R_1MO&B=`>ZoLqX^^i_)F}1YJD-D6bi3y)-7Lrcj|JrFJlex`~A zmfW`F$)-W3a`u+r5!U}Ns>+koC#7u*VlS+u_6fe* zRtfC^V?EgU*|#UmkRx|3f z%fH~xP?6jhQ0LHn5B$;nr!K0^+s<_z5P|)^T=0Uv#}*To1ehjB1yUv5l1BnR>2wsa2AewpU5%y z?#9b~4`~^4yQ1i-*3t%e_fQ1me=Fbr(L4XeJ^UB`08u|R|5_TR-NV-Zw>{He@) zmWS>h-7(67F1?g@QHcg?-Nv$f#|DDKn6s+ZKDllT(Nhc5etm}hG(@1Oo8;Y^|7HOM z<)D5e)rk{3oHk(5!X|tLZ(ILe2U) z{#1W%G!CNn^IkG*BrR<=t^lSOh$^4|E7ebG!~@CcVz~pjQzQ?+3y_R#)eka@Nm{NU=L_9(^}|wTbK~;e$<8LPKzICNj}$j*kxxwq{D2 z)yH({U-7l4)16aUJ0)zgUAz$B0kHFXnNJh6A<5TTZSi?Mi)$QAta(Y}M9-m+sN`y5 zO)M{)_yM@tg$Ag$sfj?tCSdQ1J}hfZIJy0`amo|4z)LGh|Mb29Qljl`NPW^BIEHuj zZ?8|^Z?b?_)|9 zq_v%722D=hAdOpGutG|_p^MSM-CXiO?4zYhBSN42Q>njZ>38@53m;GGPPITYwLwkg zRYqJ$y|w&rzt68aSvR)LsPc^y%{(fHB)WSH=)wX)NrJ5bt|`7IVI6n=CvjBYcosfm zxOf^(&_O%lYoxf)S;oyVk+_^#9N?a-nWsy?ma9uoi)ME@b?9BzhnP#`xSwm`5nJ{{ zYF)Ql_!({p8(R1V7OnZMPD|b-g7!+>+pYuSr0$0%fRmM3DYB>3mvBNBlrXlpz7NtX?(6( z>(K6!w6Dnu9D3cA>K`A>^iVIoim9JTJM5D?wI`VT}z>o|ecc;mH;&HYKe@u*T1 z)T%|g)!Av~)D;D+w49A^8oH6Y_ioVp1{c3e@z(QQRFcWFKgFI>H5_8qR#V|cQ+0GC zeCs%ihH)U<)>!73A%}0xx9;XqM|nd{COba0%PV9s=e{XpYl74=*aL|O+coQhq$Pbc zce|aD`|eq&(eyuzpY`gE*`p=OM|P7un$z73K2+1IdA7JU6W)*3wp*%hZmZdn(-(Mo zWFHSZBEceRx>PHZvGwkA>G*z#em{8-GP{oI^L3W(cCUW@A^;CwIztYL8P_I#yqi@4 z&!f9zrT}H`p;IX{Tk8l%uV|S%>L^fypXYQ#WzEv@D~AKrJ_x7X^@SwZQY&wMi}_X) ziB!wVer^kYB;5SsG^J+44N`xVu;Xt19#i&Qg2J(*+(VpN3&ZHu$sSn4lGJ>c8pOxj zcicL>zl|2EL3^Z6Xdb3j-0E>S6If)seq4N_yiVcr6E66&rIvgEVLjnlY@&#`a68EZ z`||QK>*MkFguO=bHun8a0^17DnWN8L$;=)KWR(|ii?H_bzhD@|(K8W80h?FneXDW_9?UMSt~g`Vr+M7C;c^*%RPktQGm3wGr-O7O zoU;9^`+pm1=7M**K2}vm3`DveJWcz0hq=)A<8QQ#9(fy_||Et-4b8%+(E5c|~(u%rdx?b3AlzAWK_)-@7SX|Xaq;h>09=y%$y+&-{ z@y8Gcu#W-qAq?M*b*`BFGTTB8m~>}&e1dr`tktu-dR=a7JT>O8`BO;Xt=$2+o5c>o zzDv+-lJ!4Bz`O#cDSV)RLKV=1AXjI9pcoEBM+JcR>(8!kFhNFMzbGL@QLfHkknISF!p$+#eBFU@-w53deu2>S*}9g|$zLbe6;vc=BJ zWg9b0TCW~7vB@1PRK=)0{z`Bz*?c4kX^)H}ODMoO{eNR@Rp;6eo#@MC;GjK3ORJNc zcK_#a%OXL_a;x<{RC~#@%xYFT-b)pvpy|Ri(98OuS%Q{GIeT$@^c-L z@alHvZISwNt|dG;5KF64A*~B*2KjV$AM!Bn@;TIfbc?m|sK|@8T&EUmqq@0vwVk{o z-k1_>$d^6Lpn~r9u<${b+6@a*9`mn`LzIS0EyNni|1DucI8m`#!0D8Bs`BG(s?GWgHQM_tD;gck&Mhc z=pAzlUKne0^vWc8JgY{}jU`@pN&B(}{k}^QzMy_N_ekioXRF-n00^9K(BXgyfY3%! zKBO8@I3Mp zlCI{;RU-fWjsU6q?t6udbGyaSGM;~qHKimdOJ)Gs>rZ$3mR6c{2SO}FWy4f*ZQ+%N zO%ZxFfn~+N)1y3L>P>nwW)SmNN5L&*5U&$WU<3X0>sp-xq&tGb{DH6AAWTo^&COq~ z(bYcqkol9;Mb&#*f?M2&rW;j++>vLXO_(_S?LJ7_{qDi7+chwFpP zHA3hDdJ%S2x3d;OXFGL6J8DT59&D0~w1h+};jweypdZc!DN9`qNzf=IitH^)=m9wm z@ekAI?gDI)2WG8u2pOG{Oo9qp_cEkLA^Q^e^&@{WcH3r2Q4yQ53Bt+SJluJw=4>+~ z4%!FVam?A@p;Op#dicZL(SYX47DA!#7Uo9Ex99e_#yuZK3!tvRP%qiX3Zc6vOV)7% zXih?pcJ#Qf8t~HaA zRX-sc7eSAu;iIjZHg5blxL}57GI~AoU2t!$Z;wrik;c{b=KxORhvasNh_|y2!+e-Q zKB=|#AXpKiMS5?=;@ee?zNc{fJ`&?dV5-hA_=8Amg&<&2k6M2@!2XPKHTrcB5jx-t zGO!x$U8`v#%Hz$BcmdS#D30;564^I0=H9p-pN+dFjmHoC5fSneSb4gb@b*~|3c@=f z(xRReEn=a_Ll?Eq`ih1v;H+bPj{SopyDs=nms2{eM={h+o3b*CR!k559p`V3&83%7&kZ6-I_h7rgMP>h_S&_HL^ z^{xcz!+m(X`F41uHltc*{WEiZnX&&cE8}W`Mh~j1B3VnQEJAcJdlW)Xr0!XuOH42$Vk|Y6534QnaLOXSFepJ#Kixk|9OY!}#K3?nmfCNDzII=VVUQPFl?^qHb4W3|M^3^tzC8GN*s#I@|1+#qELLQH?8ip1$^M^>9*fSR_MDgD|p*oR7iAv3w}WaQNG?Zh)7I_2v(VoX6NgogK{3Cj^i^CH%|s9^uA zA6sNyQ!ViDoF&`Bn3*G=&6`jK6i`(yU_7@(S@_@$yXPHffCj4z_Yv#iMGzV9=@nPO z3QVi}Jel!p_U$D;=SJ58dYjBL^F!LkE!t;9(7b(T(yQWsWm7*Sxi|Ku!+@vH;r)A* zPk%=PYmArLmIWQJYL;rm|McgscOQOZa&4)>@WK@^e(kNOBjH1d9dk$lmaQ@B? z9wVu@?Yy@io7oC{V1Ja{-Mr(K=y4%klYkKH^Jnz6dR2Ry9lOGP5v)Wto$;``yy-!H zw`-RAl7#^7;qd}wC%}*@n$eL?8Rsz%BP9}&d1)spAhWe z*p;FE8Hd=$iI3oBuwDU?qyA6(>#R6}8$bT@0xtf#D2zc*Qw25yxDo{P`VeFm$4An6 zBT4(i)2m>RGGrHJn6sjIDXfaoShY751tI9}?1=V3#qdQZWuHrM61LSjjE3RVs@C_n z3Mpyl{~_$H!=mci_F+Q08w3H7W&{KQ=~j?biJ=)9>FzF38W}`NK}34!?q-ngMi@GW z9P-;f&-?!F`*$4QcYOb_VPH0U_FijU>pIW#Ixl(blo>Uq?ENHDAM%&Q%`fDMU;Cq9 zbRtDae{nEt-fwX5fo`k0|_y zwLbFO5s~8JmcY)!IADs2oq1(ohugmlS_eqpxgx)v9J7nq3gX|~*dw$4y z>5k{^W!6Db{@xQe5^at}3zhL#XZT4;m2}TtO_fnd(u~XtdwdCJI^O)=`xqS(eGy6( zY7mgZ5zL=weKKP+NVPP0zsH(Y&-(_$PWL7%^HU_be~#%REGP+G9NGoKd#1S)e^|;G z%Ttd|Xb4S1f?k&hZW1I-)}jYig)t=WXW4)R_Gv-ZYj!KS28B=TrkdPsc_kr7+kkUKRCz;7Pn;q)e3td= zu}ur+eaOi`A$yaRAr*<22`whm{Z~w;Zz&&JFFA(99)hx6Gtnq`Nm*xpf2(a(ZPvqH zdv!bs^B?WSk6FjLJYD`k^|5w7}^&>S$5D$6{sitR|4Pqe8vpFQfEiI`=#sdX8!)hxlLCHS9V3cdtWoGq=lLWXPE>%XtxcraV`u)%LYvj^P`7ymkoeBeKLERd!)=$zK!-|e z!9ywkTS&u<^`7#D9mHo}UDMRP{k)U?OZ5w*P;2GH9bXFnio9d{=q4s;t5jYQCF*yZ z=l-841mTY${%Y|Ug+sF-NDT>a1BsUHWla9$PVo_W^x;TJbNVm}E}I3BDflS!nY6;5 zWO$T4vWVW{tZp7|_^fC{o7}Qew#o$CmpkOd)8y%T_+-PJm|vj^>SuKDNP0+xaXF)% z|DZIf>3JG05lc*e8byoLAE;c3VJ8)0D0-y)ihW7@iusODIXg?34%1Kmw%55YJhYW! zEqA7s;=dUwS692!p;=-oubx@mslw*i8&ecwOJyjh=l-S>_pmilH$d5_v0yb*BdHLA zN>yp-6ffH#2fg~cDeY@H@q?0hyW5@pywj!&1P{4lsy4E!hwk)JW5d(#ktZUo9cNEi zSpBGVif#P5KpNmGU-RBS{Xk*o8SKHg!TAM~nIE*6NML(6T&IgIe|>T^>Q7QUZ+J2$ zer$%$u0hEPZt+Yek@^yAS5413xaQxpS7_lB}%4KvV)abB?&K#ZkL^I z$293HI4^3027f%r=I~XTMEws%8q3JLZ`uir5JA!G)-O@JBkv4(wW8rNs4*j!ri#KH z(LfNW)si1)*ziMDV+it0nq}~=lcU|0hqss>>A5&*7W5710ekh$Bu1ET@Z54X6Qfv8 z>Ar1r>%?=U%N_rpKqG_yTsfqY8hVYcAMjoX8~TY>YP;6Jw53CQ?6=MEN*Ev0w$UTK zgR=BVkwR-y!w)*7n8_H0%}}PU@Nm%8S-u0?(Qn`9)Dk~odB^K|#%!-&g&=Nmwpa3| z#XF@`*HP>8uL=!LZ$4qHu5y?GL$@)Ty}g6)BQEp_NO}}(fssWBZH;1F3A(jr{=zD$U9YcO~X!vK9A7NW*19eChgBY zdvL{QsO1fTc%1m+QWp9)Gx8bTs&T}x&n62_4g;}YWF0$0g*rF77vK3>GF93=E`xE2 z#yhq1nXoOdl`#jtKSrVx_p%ws|L(!E6H-rX-M)x7Z;5WK^?v3kSkPKN$a=Y#eRp&l zoK~w|!oU^k)Oik8`?$I+R~kbhx1QJ%^8*u__@&!%1lj6)Xmv(h-|ULPc%4dd`>^78 z;}O-4e{S(}D__{#M*0&vC6&QqImL)6ieF<2dReaNlAB`O6Xsa;0!_-T#linW#M28p zG@hjaBmZlAou;iSjr!H0f0aUKwi5roA5*bt_{BB7H|?iv6Uk{F)Ytgkf%g3A6KCAb zOY29~Z;KXL0-fBj;d(dQ6rk)Te`wmQa(>$dBW9S`?21-T*Il>~O9iE0L#-Blpd9a6n zeU!46S~ZcLdgWVSF5{~;EMwcT(_7MgG;KU679HX9#Y70C`ns=CdV20xxwimV$_4zQ z$4ouUc~w@N?4bP+?cE}l>6gT-kabf= z&%CRZ3w?OQtk(lLz50>Qp5V6o>Al8?@P`m*sLj{eB3KiBv4pE4#};*N#Qkkrl&7+G z761y-pS+9z@8gc8w$ugpRJP^$v^2hGnV>KKpN~z`JNC|)`dX2F>OWbttq|;Z>bmEHUhS1@4^t4@0aC<0X>&R)jYdd8Vl7fHuu7L|-O% ze7<-)itJeURo-VRT9mEkJjpwle;snqm_UAicX=v0g2&PI+GT+z-SF+7Q8bT9eVZT) z6a|HNXXe@{Kv1YC^7pq`C)*TP0cohG)UYHdszq`~Ukz2Z2#C~}`a7Fz``SLWZw`8P zNAN8ejbf&tpIvPFny%F}wB$X28xTWl74EI^B$w+-cnn2ZRd<$czm&;`U{~2Qlt1fa z>DODff@PfPS&^OKve#H8%iYN(BB~E@|63qhb|1YYB`uk3iu(Pz*Dx#wp zJfyL~s&UL^qRn>Lcl8pU(vY}!8W`>;Wp+qpF>k$KW> zmBW~`L)#1pnfk{{bV{Ozsyn}lj ziUUM}#q4@3*!&K>Dx-1#lfAeLUC(IobdIn@S{6C7& zU;pNd3>G8sdU_WT)R#0W*A$r9yaS~qS{2oC+BRay{glwrxT6SnZ=09CPi{aLldlN!XV_z8Fn6Ie)3R-D|K?+Uh zu`^~J5(Y1QDerUFzaL=6TOjf?GpHT|k)Wj)o4uI@iCzCef6Q<9mYjB^GJ{A6N;~?= z$pt`j`2X}5YO`t>jng^O(&2F{PI_A=gMr3cJzWvn{T}p!)YA2}eqk4=PgeU0o&O2Ro@Wk&Si-cps#$~v6=TMboyFsR_Jg4}!3|q+` zZbg!JjejY_eyR`@#IW{J<@&;B7XvFRe9UZ8pV{Cu9#O8`y)HVsPv!R-W)aM)Ci+-9i-uAYnx2P9m&Tb5qpZ0CMv}#_|bV5<*~0< z+N2qLoQs9qNn>48kwgBpHg(nYfT}1yNRJ&H2NmjFZ?pL&sjho(-D@3f)4M7dRT65d zQ5?e}K6rP4YcFP+#O_twEUER?)C@6}>iOrS*lG-@z}}~31rS(3KWm=-Y#-A2cjqLT z-4GnLi{l*pNvkOEaOLDu-tg>fai}o6n2dJ*Wcv(*l__?Y_9Nr^;PeeujEpqNlcBR0 zUh&du%$PxXtudtj6s6qe5$&$nf*TkV;~xh*3`RVf(iiCvKKd0wSs!HTfF8yMTw4MD56P61ZNd1{TI_ zeKvLQqVXihL6Zo1X#+2%aH(MXE+1lIUJV#0fyl(k)2Fl}@62c?qkA6CN2a`cRK_9R zIM-Y6qQyGc@T{B|z_scwoaP_GZiM|IafC(Et{FbDMcTMGzga+q2)(-Eu1V;LA8k`A|eP)#Lx(zLNtphe}<)aD-s*$p~Ju z6{7*h5gmQu8mYy!lMAwwkxYm2*HzqXky5KyVFok3(Zjj;c4Wr@H}29x1APE_)jwVV z?Y5n`|EmQ676pf2!0Ind*(w^v4qm#0pm4IiLc&?8);H_w%cRR8Z{cu4D2T3Bfx54&00^;W`{yqg^)x7{HP zt^9CsH4s`N1#ZgqXzH-*M8-|DxR?I3YXNr1+CUYAns#w)EpSbD5Ff)Pa>jI^Xw|4l z;+GzTY-8D9j}YFX_@oaTANYujh9%yYE&-ve^FJeksI=x=o^Lvrpu;sh8A1Ju@^f7Hd~Tr10qMvXmgI1&oj03< zpM;Yb$G;=$*FxZ){^XwOnFk6g?qN;!M&YJDZYkn^=YVs;(!(796DQK1uTlRGH-!J8 z?a^P$geHeWB{gv|;Emgg2LF}-I{)PP4^IXAf0ucnb)8}b5#0wHsc$`ELw_Ifp)~X? z_5ap(-2Jb%;{!jtwfg1N2Lt?SS0dfd;v90lJL%rK+hLcj|Iv1+l2YzSM;ftHI=+sH zx42h#zp9AmM5#X}4)mk>)a2ez-kHZCmU_qM>-Ze{W$96MYcy=Zk^qm3)5bq^IHRdz zE5@+9fc?@wuCyR}m5Y&1Bw?Rk&tA_-$Xo9BfXwznqh9zex+bGTAD`gm?h-9iZC)yy z2(Iqh(%tQayvVfI;AH{Z&(->jy~7tK=r!6j_rkhMMq-IH5WTNYyh{45pIP!f^wHkG zb^5>c7(>TF*7VTE-gjiSRdhzV)vL@n*G+A=h-89h9) zUU<2l+cb|o>vfEDJeJai>aCZ()~382pQW#bv+;?8+1G6^0zKNhu7CnT%?+`a4c?y9Y_5cJURCED6OrZo-n=;cZ1ZwFJ{(#q!u;}KGPuAb9BSj7kqlV z@KCDJ{!2x2j!dl{`&U14o>PA%*~GDjOzaQ7WE%UJw(S{a`;(q$!s*2-7T45{KNwpE z8;&-9cffz-Hx_bYlz4l#6>#P-9(2=V0~l`n{6*|*$n&xVr}6i#?9q^J|6a4anZg@T zH2>X|!=B4SLsyfbbZcm^n!95PF=TLg*^ zjH#rgy0JqAzIsj9#}VdhCYTCsUY(+2`m5)5Z^CGgVx+*gi?Ap#k+~D^HPOA7i{_7l zA0uYv(AmA~4tJN$Mjpul)6C)Bs#%{r<96)^wVYqX;1u(5Vq!!9b`<9cyR)O-ca`bo z$KIY;zE79Tobpy&A~vj^#zmWZkhC--shZ-__MBoDubup(bG^Qk))`GUGA9+`^54G@ zDb`I@p1+36WTdZn7_Ofj<8*LSobkq1bnw_c0`vZo+`d|xS|9MgcxlkWhS5Nm7h zR<8Kt^Cg4P{^N$EUmXJvQnYKC9`d&{|d*Zf6H^c z`qw7!|73UnQjGzNr?VL4ikNg|iN{#G$m(7M`6BV;Y9G4VOy1DX_YU1P39vtp_vBM` zz$TQWA`RAhq+en^qq++(W~00v5Kv6Ovuiue=`7J6TuST0+?MYyV$+#4EAnf>Qv2Y= z=`ze}7DgB}@`VQJocXfM+@Z7yMk=x0RSLN*h3hrWBHZkFgnhL$qxnz6sd z-?vv>w%#rqiIjj-duIpmC#bvoKt=PtvxmbT4~7TT{_u<~?;APM6W8ZfC|-fTEmZ4e z8f0u$`>_=zHEAyT9$m?q#|ZaFvc1sEDwmp@i+;z2b&v9#U7IJ*8^uBAXbe~-DF+l~ zhGKzb{o)fG$+y30iZ6>as)^u#Rj{&@scA^!G7kfId?kd=|J{MH<|Y><)#yD&uTkbV zp1zdmiZ^~dk|tN=jovtf5up$1CKpn`dSRgd6;`v zqS!l-fD}42Q^FZygs{eBY%ho=*Q1T~+-rCb&F_1ev*Mfnm8>@nW2L69k~X>q`7R98 z`30NPN%KXB4I=J#{a$GJ32x>z=;52*NW@sdtlhExSIbV<%MZSGhhHjAWlH>zQ}`vn z+zUrv>fO9rXC{04VreAgVY#PkJ-=PgVG5TC{5^c6Wz`Oe7N^D^FvyHb@;EmL<^MPFlgQ| z5_23*X~*90_#NVyH=hemxYhn6d3REGb2EWBaQvRiAW&~_s8!!{fL!`~-yZD5D-Hmf z8OK?aw0r!~8EfNZtxQ5EJ*l-ZlnO5L{pV6#Df;|=S}iHZ37!yW&aTqXZ=$(#=|x8! zr@>}63UAUN(c|imK^y+mk0mk954og1+=9|>_puHL82v@M!{Ju0j;jkZ@>%8j$&G-8 zRnAy#qOR}w2H&o`c+pA4$$9ZwaPrj`F1?x|vL8h2A2F``CCohC^Kz0$xg2#OK40*T z_oXn_>i<0Y>{2@7TsHmf%c7V3HnV@6uuW%ZfG?F)IJH^OUB&lZBYJ2SFOp~;7Sp;W z!^W1JVav(jWYaqNCn=+-;iS~iJv+2A{669UmA-x?@O zg2Ztom`*`a;bS?Nt|bu~L|hYnZbT0=x2VcA*=K5HmGKTow56f4Me)Y;hFlLgRn_yj zM8OphE-o?CZm}x7sA?=9Z0*t>%@@psp`dcc6pKzIqA8r49%{Yc`dx~KhWd+2hdIL( zu6i?{$g*q8ApMUAG~NzkqI?be83Wy)2F5;Wzpk}}2`V@pfz^ypRvx5bT;6&2G7eRR!gD=qeaU? zQ7%DW;PdV@+Zgr5E2i~GW)n?Evi*xchhOuGv*3q=!$Zy~-8$S1(!F+OFZ*~b+Fwg% zn=r#a9Xv=uEJ?~nb%bJKmrRM$C~kG+<7OPmt+ecISA-nPhGJn`_Pf3{yBv9Lm)1}u z&-If=(WPJRyw!HJJjBKIQ%o%lc0WdS1r=kxOO=jR$_>x38jJwOde|uokkWnhjMulD zE-qNo{$x5lDIQO}N~>r0D=VZIGFKl$JU*5&-2B{4qL@tZzW%9wY3Oa#>@nl(b4lj5 z(Dn=S@~}lsntNaN|B3-4WB7I4B&CYk%{d0b*W zk%Ob03%FBav|PSYesAfq4+vPOor9>C`}eI*f<1cIBx^a z8lF`-nY6M@Z$mPKBjO%{d09a5B}DLCQfLt#P&T|!)g`=Bf(viXCxiB~fKr7ppx2Z* zC!KYUgOyFW9j<#Dw-TgQlzb zLA8%TG^9`h$G(rx;A_KDVB;8=;k$rzAlvqdkk^}i`a>4Xh#xZbB3^$v36>!b<~@{w zEtCdV{ju442~@UZA%#4EsH!LVe@kz~8Zcr*5$z!j_$r*bOdzkiy@#WKkf%Km*rBtx zbG-a(-}NnD>9723e)9ISsn4zu4xl_6uWA2k!2ef_7CnDx@jv1;5#VQ^-34*LAuFy_ zi|3y-H38$%-^`|D!S!$2A@cJRkZHxd&iA4RUdtExdpfA84}1=$Y2jlx^Izc__C*^7 z13;=?zb6r+|M&J|P9HeaSyix3d#BM87D!OyBb|dH^X7&1|JbxOJqWr~_vb=^t>g`t*b+pU}yxD*qKRP4N=Uf%Rj>fQT%QoYiIT%s?H zKbhVEek{Gu6`|RKmH#Pp>XD?;nAUj!*GL_6XZZJ(h(%&pKLXvOT8u|{8hUt=h28~5 z5Y$+wt=4A?w(lTiQ~9ZieSeV@i`$3JQ!|L=LH_~=P0t=}*@q)y={~78e$KxRlUw;d zY(EG9U@8HyoBnGd=kcxvQF5NAEPG3vA@Litkb6j(dnD7~RJ+fUb^h&^*OwQjlhzyn z|82n5ZrvDx7&e*1`$<@qellfo(Kf_D&~#$W_=9@p2k*GqZ7Vt;gRu798qE`Pg1HZd znlbIo?1li%yz~0Ajx>oss@S>G0q%6iHtc_|teV^(FrMqr`tkd^7$P@UOYqwypUWgyUh_BQoloOo$3z*ggg- zVbCAOuv%N{#!;~k&Ax)&uu8@Q1-H1**W(7LeZ)oSA%9hDpE^3&m)`7#A^0Q;Lw4CY zzmI|B^dfL0(TGDaMGLHQmBZ=twdEW`;!RP?RqXWC!S{x{s;Q-ferP@!7P4{A(QT4T zGhN1JqtsJRM5y^Q*CGKj1j^Cle6%G0dZuL=r*gBJk6E&cgJgK&XK>i8l=n^UxrbxP zLgp{ue@4y=%)dk_>YJ_?%eNyXHE*6d35lpTfdW;&Uj*)%*V7Ft^#VhO0Ey&FKnsd> z7(REU;PYTv$;35FO6(UHOTcL`CoOm9lEx#@*Y2^iVJ5%6^k0h0Fk5HV6$XnI*`sJj zS{v7PXas3B-(*U^B^J!LV;0DWs{i!p=pbkx7|A(8KqWBv?sAL}Tv4g@cCRB#_Nc=$ zlX>o2@bDB(+b)lrLFv5+sop^pBDbtG*fj&q4AE2cxlQLyAOFft7RR9Ti*djyQLQdW z6A3rQTsnX8VvlfPz0k6c$`2ZBvqb9HmMJweFw)Xs<{n?qFh@|9 z+-+a^U-}v-d!#24!Dnqdkw-+YX$577M{P_r!R#F(MTX9cDEyh^jSxMP7jg9C)@~L) z4&b5i0!iv+gJfMIf=wshaJ#E0Im*zkoYx|-!xmJ&Rk5U}EMd$pHLfI!kmmML+qo)% z1TvuEucGY;P?R7$UTl%&q1Wn$t8J%jg&E@-2n?PrnbQ-%XNNA9e@0$AYPU~iGS;0u za}xqt9|6h`QFk@cHZuwcDx3Fm_*(n?VK4OjeJA-3nw9?fPE&8`r#6!k3`4FRI}X%! z=NOoS*ZsK5cW)jW4b-)Z)g33vY^4^<1=*3^&00s1(4=%EO6*;)5gpxfzdK_C;2Xez zK7>(98k_MU4N-cWR)^ZX_{`p2E7v07MNqQN`0uZ1@LBbHKMu6Wj3;3l)Gti?@qtB~ z{f7L>f3Y_TY*q1@D#=ddHTwX>h7UdT3~g5N(!QHY`XuPAO~~BR`S%ODt%CH!fU1y~}7TN)>vwq4I+mb)tV18FhVR`#BI5grXv%e>q_{Wr-4=wmDA3nZ* zBcnieN<~KX<4I_^agvN2`52si*4WCr#gD`OAw4;Ho6OLyUWK67!JvfO;ph7dpP>c^ z1_kVA{4RBb@bmGJL^hBA7^g zFRVX{TcN!h2Dt7I_;pooKERs(@Q~;i#&>%OXVXBwXE(^nTp>TU)V=KoJ3C{zr+X=d zue!ae3B~cniXN|k@2w+JLN7A}bM8;R3~R`tMS}u8qtP~Hm5XmM@3uE#5~afIS#wd#f^f3Kg~dQm88ER`qS8Fs+aM~-++E3 zPR?xUe>AEZSUP*$C4KSL;3m~IB5awh7O~=9+4yLCB zSZoY2L2Lw$2gQ+UjYY<& z0zRLj1pLcpS3w-BbTqHC)Q_@so=L%?f+oTH$_#s=JE0N7+{|rJ=xY&PC&sMW6wQ&t zdIzMET}*Xq_!lIFb!9ojqTO9DhvFA<6HfUb6ccm_=i!I?iM{<~qA8=rkC|(wg%woy zq`#IFe0MCy@y*)jWM{2T=zoRoH257ze6X<} zXsmoQGJ@xhJ6N>UD*7zYyGn9_GA|-c+7hUYK8%kJ;l$|Ly!B*^LwxBzZg6@@gW*B9 zb>m6yL$-m#v_OG5F%_ZzbX34jfrl(%`2JSnGVzL9Ao3z9)#zYM6U<09(9xl%Z?mkA zv3zF{4MD9^Fi5;;#vmW|eoK^mpbh+=vO&R5QlqwAOC3gEpMY9(TWOjEpFVgU zyUx}Y1L9Vdn4X8We}7Nox+ z>7g!rI3f!o8c=XD8}40hQhL)!x^%@>IeHtkNs#${E#tki3m+zwqb9Yjf}~mT5NW;i zy#3gM7=p4~FnA0IYvN!x0@$j8zvc`fs7*mi($}V!r&ykS%={8!;eZR{4kul(>q`a8P>uJE0{)}XuOGL5nRyslGac>hzjlnztgwoD>fqm&s?aj_z@gc^ zi40n63SKI!q?F1iW$A|+^6!UnH^zRK%sVkw}zM?$DM_q~p6(QlB{2+V6EP^^rIXEgyNbY?@5jnJ#zn8G} z@Rv6@)}gy&n8#m1CUAO!oAYq#aswA`@`VzYWTAipA`-E5fV_Gl>r7G(ad`zjG>QEOpK%!>9KPkK?ZLu>_)vj{c|8&&=sb_FMuop<;?Je_!Dq@% zvLY>9)!y6R2POF1y1+xtwHu}};Tnmk3DnU+8ap86u$n@Lz z4Se`=pcb!wf#!?5O<5WSHWQAl{?Y-SL!ix*jGFA(&sIa$xu!oVd|0TN zmG&u#h#&^%b~B8{MavF;t{8fjh%@mQmtVon6WR}f_LEQHK|i@x+PD~(?(iMJUvHV) zh!p;JglL95#IFK_jg7FrjwD|tx2k`mk0p&K(ehP2QkIU*&+co4prS5%IzGe&cA2e( za-iF~i$ohL(nF#2dV$i%Y(Wr=XvU@8@OpTWltvy2uSxTFU}lv`{s{MKDg3&e1VQEX zuw=f1e9!QwSB2C!j-=|GB2ws~@A&VYANx#^t$-Uf!C4v-Lz|>U(DFr0ML%kNRZqq# zHmc~+orx>Uvycw#PUOxmKP}b^-;ZG$EfpQnpFb*rYKh==9E2(3Tc;HB{yY#LPShB4 z**BkgnE#PKC*eU}goyOh;8^h@wEGDF8{9rdX93-(sopQY8uc*Ne<%2e-}9waED9H1 zWa{Gq87Sc$6|-5*7X3p*uC{$Yk+kJ%4=!}V2_SPnqQ!Be{@N}lbx*>Q7;DoxcGUPP z2GrZ<8jc`h;`{yG$}Ivx`9eA%+ptQ)CDpAS!(ZLMTO+Y6Ez1-&AoBU!Nuh!E`^-Oa zpnRE(P!}&c_v8mzk9a7We{Yr*(mMmQx3Sh?8IN(vC>quzdg``-{m=BZsl#|m4Q)jK z%2Dw5DgN&Hn;887B$PiK@$^MSlZbN1>GI~J+39d@SNej{!5&YT zNIo|Y1ohmkxBL<(2B??%LH?wbYp}Fv0tZfG|2tBW&l8)i{LNJ)n$!F0w-)YgNq8mQ zhM1G{`RAb8n$h;Q8Y%wbX1+e$7eS}#f`4cp&%YgbNC;oPiKi2`FTGwZ1B|y2K2NHm zQ`(lJ3K`#~n_Hj+DKJ*PH~RBD>09iz8A@*FM^YaSY~!>#JoU|#I^95hA~r8*$I|l= zis$PkFN$u>sAGRYKRrYWk7ZJu#HzpjwhMBRv#NVDRXD-B_wH&}9Qw-= zf2bg7pq{*kjC9=<)wjuhzE^h91Bt&OY+xnHM{?|5SZbb{7W}P?DCZet z*^PT*(D0ghBKvW4C6@Pjt7kmSzug_H>lOdeY`l73Uy+acW}k}I!?c4)#Ph40lkCFM z;fcZs{hAw9@*v*Z`h#l$5l}WVj_5V-`T^sdyj)ug;X)RIJLz%Q6_kcd8UWtG|Ffk3 z=TMhLX;Thsx^9g69?pt5)dI%H8t%GZq(a4k($gp|o_F0=Sxsz|4&V>OMh5(#{JZra z-g9ya=D?#^qA3TrkH(1X->oCsN-jc&Tk)}eMXY|Su}Jm}KylUkDy`(a z|BxC@%#Af4N&NsaT1fS5c*Gaeq}Gw0kHQf?EJ%$NF+bQIv!mr%Y73iClsIQtsj#su zUa1mzjl;wF5njWY@srUr$cbsl@Ic`F!{cSF3L{Hq20StCKWZtpf&Z%o5M#1W_`(_| zYfI4Jl<)9LO6Ns6Iezbh{ zlaWmJ+1)j515+Y-Vq6Lzb)n1wiDOvS{yG)cg{Fge$m@VkCyMkl{gM-RQWL3??g z+)*!)M6v;%)O8op>TS=I{U?af>!61t7>OO^O?~Q9E>V&b)Gx@*)SHKFb2RX`fGTW& zrkKlQtXDxNi7z~AFEffu_;Avz)a8R4O*p_;@UhCaUl^noftaY2@X_(oB;Awk&FMcN zr(hjZa?|GoF)g+0s&3hGywPr@Xmx$~M!m%FNBB<-a28>2#qSYz@Kb%$Iu&^ee_yeo zGezjTVdT={kKa-i83*&$Wl{2n>e{A7S9c8%)R*?9qn_OMwnXcV2_UD8&eYDI;wJmm z+Q7*qd|0C7y2FbLFJl0e72S`o*QA246FxWAO`RlzYA?8`9Su^dgvrU2F-)Eyjx5e1hxv)IqtZd7kxdFAVc)< zS<8V&zPA%<=^Z{<;5ee#Gi0U?_U$p(v%uxUP>m_wcGrfcv=SNZ9sIbi* zF779AyWJ&nh>v^^%cSjc46m7SaQeoh($5YuO|_R5J4FFl{C@AK7e+^EHsU@~OTxFo zKcdNu))jTGNrg@`OpdAgcWYmDTr$eCDCB#5R8~=+ngD@8?(FnROais-1AqkO8PY&&`NHJ6BB z(Xl!yq`>Q1_E15{+m0>F1^PA@kcy6UinLC} zaOXR)fN*|gV&;~*xtL$K#x}udZ+(QOW5w*jQvnA=4u4ojtSt(*G!6R>nHXkYuQvGG@;8DlE!Mjs)J|x@Q%GT+gF*K~h%U?6x zqBkA1aantRz(E$isCe)GTEM2Qj|(NO-#!aTLr&e&a*W@$xt45+Q`~uv;!=mlrna=; z84UB`QI~~~#Z&!E@FH;7TE>NsMq)jI^GUiocGdr;g4VKoa%(K}Md@@^W-L7&`G8!r zl>l8%p(ChlpPKHOa>dYbV&VCSHm9)e8OqsfH`G8N$bEqi#BA1Yknzd>T`!+>OS65; zp!TvrB?_`?ynCQhdb0kB^h#NYn&kd=i3{W8YG5ylCn-M3Ex*p_dE(~pOz>q2xN*dR zc2t*zo$Bf1(LIt@KRl%I@<(T>|KKYBlSki&Vmu{=nh?bnkO;(r^801&Xu=VsD^m(q zQBA@e5t>)?3@rU)>y0_5OQk^-EE(OipZpeF3e4RuIu+OIPr3;-syFvaFtIWhx8LW@ zvh62i;EFqN+bRt;?yD@o<7wSvyh->MpT9;OoE}vibW1(Y`k7ND&1#|2yf=$qmSFt; zQ_=l2z5c$(a4v~TeN6QWT}!P~_;Yceo-3`I-%eJZ3eY0pC!JJhTXi6QH;%?f_NKItGH)Y#m(SI#!Tk+vB(GM+IVE+&p#h~Zb8e4lz+_1voQVZ$w$OW^qHTj-$_QA7rxrF-$-AMhY^0qY8rAu1e=0rIs{Dy9wx%vTkEk|D1gDf0T zP1)7wTFd-pg+daZ?(18>l-kM&^uL*?69$B5=XHDIf%z-RJd7S2II zG2pw&k?bgc%lD+mf+fDrKZ9>dGzeA>*PvI_7cZC~KDiclb8@(FGH8(Cx37E}DGYzV z7ujETz2#dRGesR4lRrak=%!~l^V20e8Q)9NUi>TJFRj7=LReK!^_={FuE)HAvIE)k z%hMxO794nXstA0kDyg&tx*-84b$atcO>*yUNh+g$!E%pGz5)U>vJ8gZn7nu*RHR+= z9K2NA)f@XyltuzMRejbW z19*B6Y#*%xqnZ5EX)n+lIAz8=wiGwEm?zAA2xQ{0+JezSChHcx-sTk+gy5MxSo!Lt zuwiEpS5<`qAYODTLlBC^Y6d=f*s)$S#L{71D#nhwpKFhIl`e9BG0&=2Fxi+5*&tp0 zKhM6;zHtm$vHQ64St^tnq+iXlL8tGuvOD!#A$uNq5~C=)D(uFeE0&UJ_YmZfsJc(= ztXCzV z#WG>0^{w%`Y0pR*tBXCMp=xtb(aMe1E1bMgR_?ALy-5k{9a)3(ld&&#>Uj^dXl^_Q zcl6Jlc8wA(i3$E4ss4T1|HBRdFOGx)E74LYiPVAE|No!ML|_cUQU^-a3q6+-i#R38 zbh1afn-1eh^}r^4t>m+LJ71q7&3#ZU(OElH(A1O@hm(M&2Oxx|Z8tlC7OQPzJZO{>Ij^p|U&9F^wDuUEZDl=JUIC*cE2?!aKtCx@V(@fcwE0cvQ&x5 zEi&!GvY^@Q5wW)O=bkF@$~H!tcV-(}F+r4zEw|{Rn@!Kl1+4Xy!~Oi`A5H`@ovWWz zSKfRc^uUyygAvjiMy(F$4k1e*odTZvcP?R0H8#k^fNvN&Th*t$zsKfS*1oC z&W;yG62V7O2ax^qMRtyz9WOxruI8?dS68Wifp}%}{d$=0Ax*W0H1F0qAQ@^)8-m-i zI@n*hhtWys&68;_6ni&%-hU45J;TEo9O8-$Vi@{n8LAg31^&K$w>E~x?lPE`hHbe@ zD9ch(1@W;_)yX6JRQ|4Xay`i&U+95nU-D%Q)U9-TpeeU2605YHNTpybC{-_yVqbm0 z9yV_ub!SZ7FKdERXZb%Z}&NG zoH@U-qfS|kNhTxjGnG`jdRz`6Q%`nNFxm8(HRD%ukD7{-+$xAqaGS-8QW1W}T6Xg- z?hUWreI9aK;q!*gsbJEd!THa2oMli(XuvX`)s zVO(aUnaGtz`^IMdteTF=K+~G4axn#(-Kn(JY+)tU0IvGL65#g-C3knf7k5P<)#`2d0qX?CEUyZRJPMr>@i`n6e>^Lk1E!eBm z_k8X>OHL0zD5}L_%A0rZZCiT+rWQ7SZxWr-JEb;H5j7^}MJxuDJI^J$P2YrY!Eq@n z&5Q*5hiT;*HA-6t<4-+}>EtUm8L-efKk%aj0>;lu`?a_Af@ z^Lt(nNsPU+f~NL9$bM&S88NG2C-{J3-ugGY(b$COY-WV2BhO|pDvt)+SvAmSCu`Zj z2$?bJwl##Zpf~<`t<mw=j5fN3vzmlLH_a}`}%`< zI5ex%tGV!xr8#S;795o_D@jZ%Osz@rJK@`g3>2?U{tB(%H~o<@sJZ_Y)tf4}i7MstdSmZZ2;>W@3);`sO0yOKz+1gKurUyhUix@BsUzg`s4afZ{i)9Otx7k&CQ-OJ2Z%7*>=>`CBz3) z-J960qT|aLC-{KEXr05d>@g_*G0boh4eXd?jm0A*St<=acx75&hD!)9fx*{<(WmjD z>3E<`M=h`;pGs2tn56HbF4JRON~oPByVTDYAvHh&&7Tv^0GOfmst0#teWg5`Mb@^Z zZ3L_d16s)&-N9XH^bQ=TV}96QkhY5r&8A`*>JLC1)WK2wsX|0rvDJ z5sbuy9mri?0G+De{QE~hiw}SaeQ5m#=z*&HO4pw1-`Uo#Hjr(_in{(y2TZm^bjKpG z0F4v2xg?w!ATZVK!Tc2rXaMMv#dD`dPyIJ-pttJ`1yXNO}aKaI4k%&$w0-WgZ5EBtgkqvvjdes7Qp#KA_=_3MwH~4=zd+VsU zwr+bcxI=IV2?P&NcyJ98+^ryJaCdhP!GcTB;K3!hOOV3dy+Uv(EO;O8eed1-_2@VH z*ZofjV=xNN+2^c1*PL_BeX*ncB(6VQha14V(_?uARB>$bHR9^Jt9r^Z>nRJE&$1UTDTjJCId~7TaZ$n5sZ|SP;W#(64c+(2pIx;N#Z_l} z?ThxJ8ZZ6`8XD4JG-ql?bBp5JesCe_3>$SOVKAWvsjBH`FI(K1Z^e=MAujXn4~ zwao)Baq)gw`8CJ2jm0|F1204;#&53gVO4iS7%K(%7@UPnudgw2oL7N(3n<}FB9*`O za6mj+w_+UMH1rI>L73_<&Q*&dAaDwpN@MwR_65Oj<@mX4;Tb))O1FY-{__Kfm{Hm@ z?-+sgv*`NoTLDi75TPocyDfbOH3M425b2!!aU}n;hR*et8HdY!gm#b0yKn4=n4HJf zmT1EJWRdFmgFQ*(wV4DTduR;n(H-tGFjft$k(oS?bWUrCLvE@=)SkbQ|CI)U7d+3Z zF03cf_UkjejukQMUhgt`{<17&Sf2A>IZbQVSlGvdH>#Nl9h-tN5F3pj6+^A3)jg)W z+PEO8A3+F`2KNKyVJc5!ocR%;=_HCZWUb)%-~P^9VCR@9pPR_v+r?d^I`bO&AOW zm?U9+T?1PlbFlCQ9O?43Hheoja*Z<*uhTM;wVy-xz*0Wjo*Svf^tLrNj8BTeQ-7f* zIQa2?=$*$KgsTX0Jq` zK}puH42xZvG;S^0&+Fj32l%tRf9!b?Qb4+EVU?@7u4xUgx6NBOW^uQ7LkWB-arCzfBIPx!MfcF?hrKHh)n6c&<@-0u z$pIxby3Z1kCgy+|g&r>W+N5>TktyK|v93vmaLYU*MphX~Df%~CMRpu09bDG!bO=x` zC6c{8HCzl^GKDQTbCjz#k6GKL18x0(bdUdFlLjSw!e|0^B+E zL+qUe=Zt$9@f39*#hL7VdMz8_0p?ZY+TSTBYugOtxq%b;w{C5xdn9m67a9@AVN9+n zDw}2yJh62*mIj%Ecp?Da;0BZln9SD@dO2mFtoK8dYFJ6i1<8Jkf!ppM}nm+A%dJAHge#$w$9rY0_;aq;-ZlU(6b=4dDkA;Lytz) z?bY}2sAObF+YF}9qvne7=}yPXlRIBVSdA>a!NbSUX&d74)0SVZ_J)JOYpD%GeWwvw z(7B&sq1`aGq9Mc41L}`s9mnk!jXSFrZ@nat~&>)eYZP?sLao>Q-E@?+YtAhaN zImm#$2csJv?BNrLJBo{nhu@7ST0ytIjD+D|HM{T_n*m+_VQLlvEp*6R{dM0z0{r)B z!wshf*-zqY0_qXQs*0HObA-y_`gfZ3&s1|D%Bog{ zml(DBD%0~ZbgyW1N&b0Hlmo4cMI(ct>T_7mKB9Suyy-u?M)MTsm4v-nSt`2(-bsGr zZf;0|L-Nw!USnurcq;G5zbtiU!=QRzOzR6x?GAfY2&>t-mAd(JqO^ji=@od%v7XWx zWbNNS2iaKyhwK^0&F)WVqWi6aEC%JmC+-QKOP9y5vVYnlGP?fpFX&jFvcsmb-_3dRT+yl!)YY};!=7iU7O!s-yTYDO#Yje(IrCy%1}pJ(aXZ+ z3W7X!%Z)*y9RvEzDvMykp$O)ma>g?ba^|E1jO~hLAd4Q=0;KoJT9ztg$vCv_+xXcq zqP(9ezRIR6_*3tZ?R_^5&>%&^#|RK&^$~l(C(>Tc+ngP=jidaDwaf}oDdxDl=%Yat zJZ@6aJtvn-E3eysG?3V?GE8WNK{f`=zm5vJM8G^;o1 z?D=QgpNRKe>-GNLW4J0`2(+yx;d!!_8(9cc_Ak71IX_On(&bsUJ|; z?kb8dld+4I?0=by?!#i#Encp+90w)%q{eo{a(^qm9#P^nv2>R=wuiio6$m}Dz1?BE z*4a}7px}OPuj2qx-twrh)_i5(w(Dk|KJ7If&QD(1!2YJ8j z;dP0Q?MK0it^t^p5WbP;N>!_|J74Rc3W^NM)$QZw_D=4*Jn~359ouSXkYoROjCKPZ z=*}|Ulc`~o=Ywt4o`(HI>|Kg4wlr0MviuV<4(rq1DgXfDn-^8O z8?_{zSE35?Z7}Ck0LkJN03_3+eE`i-@ zC0+uu>g%g#5hnNaX~Azn9{J~_+HhLGM`6$|?hUzI+{r`hQ z5o7nMWjM|Mg+p(646hBmF^nd@sS)DzHH39;#Wo=1O`ydJwl+-GwgMT$hxd|yRSSL< z1)nRViR=s_tH+BeU5Zodq7-4C8K4wDZy~BPdU}kuFo2E&0Kp2a$~;=&hx0tAsNAHh~MSG?651nnD>cfIrn4!~F;(bhLUr~1oU+nP&U z$G^v=1#bW2OZ(@VYs@#H!g!t}uOVFT#(w9k987%gc$JQ8;h$l1b-+bkSWyodoW*PD; zOXYz~JL<56(pP9CV*{J-B(w4?s8n^9t9)P{@fI#$2z0kKue$n6@fLYbl{Ys3VmNLaY zRzc#sb{Q=j&R_h0BqTGSx|X{y0>kT!Me4OB_L1b7VXA{j;un|vLyfQCRJD#1ohWEA zG}}rVb)nBgil?J(BlnkL7te5$wHP+hlBb%)Ke>C(3Cps7Z%v)2dwByv#?LybhyqoX zTgnAPu}CBD@l8+8Es_B1SpOy;{D>Y4oQ3*LBOfw*|Fh8OT8c?gd5b=|@(KII;5M%S zpt+~(fhmdXQ}6k~Oi0gn@e!T)Fz6ESE%L8F6Pin`95)paF1!0<`qcb+d$6jvewr8r z9N%TccR#s%eLM49K@hTwvUg5<$R6);(`L{7ajgO{>3B{T_UVy$YsW7q`lhaqI{+mI>v9VOh5v^N;Ug1^X9U zXfg}F=l$GFVNt7YS`{xfYw(Q5BDjK&%i6IJ`fY9t)D7)ZmQpoTU|Cxr?1HghBT>Hd zsfX4ILj%wAWLM=X#(fjdORk0~#V2p#V%?r6&k25df_T)R%Hv+mu{!{b80RqwLa2L~ zMBgHf6{&jQUE8AcAklYB&`|CSESbEfr0;*_%?o~KqXG0ccrq-+)MJ*)@K_HEXFMnn zO^xN(P1KOs?9IT6;BL1YstovRTBes&Y?YO*FdIpjN^)6>9kIgp!WkW!4dpD03t1RW zayPsoXPV`D!J#)T7{180)mjXP2%LOQnTq!Uc{UDWBvi=mXA>Qc` zl9lM?n8#)(YYQxoP0JIP%#r9T1-?3E`>XmEQTDq(H>ul3wH$UV{2TL@t|j8}{!ztm zQL_bkc_PXhmiSCJ?9`+sq}tVw_w8!c(zsg&46-suU+tSFpx@WFQ`F4~u^J`kBoQVN zi2Id@oy_n;owAFjucgeB1N|2!uxwjA7g?05GU)y!4w8afdY^IQoytQR`&-xRy}29= zi?D=!TMoVz>QI5~e}nUlHCRj~0z4J~x~mO%kGDNgu`dts68uI{MZOH2?n#y;28_5} zXRA|#t`4*ne-zApZN72$y$AI9MYcl0itJ??7lSsTKW}EvVgmc6o(I&Ps_tOCdtPt1 zn8lko+vGf6O%Rm0INpKArZdFR-CG8plZSEs{L+8>Wq(0D#rX&~|56Aq^w8#}`9sk- z)JvZ0fTmUUu13_{#C;Fcs%XmN?p7Q!%-IGi-)1=!7H`fs{#2)&d&(m{vXDshlE=TGN#4rV#_7d%oRBW z{{r3#vSc3VPJYHGqGJajp@-NL$t%jXjfN#avIlgG~!{G&JYCs*U9e>?GKFq;V@e*ZDt?5Huz0&R@3g zYY?)M^)%C9qy`*4??dr>HSGH1s07i!>( zh&Qc70k8Jzl~sG#0!I!UveW3a8Q8-jY+ph1Xx%0@k^V!p<@x@^B08Hqm4uFQd%-SP z)f)yuZZ(wh%~JBWfKz0wRN-X*O5+l3riC2fIx%~ZLBUn6`ry@Pgq6~SPvG(|ClzjT z?bS8=s3wD=XO{xHv#552{&6-%`e}-R?A5tzFad&DdineJ{ILz&N}R-O?YS=`uilhz zDZ!xPe@O+kV!eD#m4f=laoNzB(E;5rwSJmFb4{mTpz{Jm@m7?IZcX%LkDgM>1$x9b&+8%Z?{$Hm)f ztG#_e)(@D-5l6szDJVi0bRQX9yEoz$FbA1Lij5QHX8lWiZdBWjobY_ObFR3H(cdRO zr3)sD|Nqcw%(*VJGSc}bStv6g1FF?5rM}Wb>314Wh@+0 zArj^3*>)1()g1gKu8L{Ei^G*ntQG!mp4zqOFP@s?FG+nO2Qiznrm9`vFGcahk`C~} z>`9+2=;&*XHjL0`l@Ou{9|F|0dnQn@PUZbj^5{a2AU|Lrp1*`?IhLMUT?6=QFHbc= z2-#G@8_<}lcOU=D@9S@(E#1umg;)xEhf7Ev-z=^^1Y|htr-RdK%V@e+{5}NV9QUkR zw!0-~$2Zxn3oGrv;`aK$hmR{9aGF%{Xsf8(+M?L7uxtU3$s>VY|4JBBtKBL2cx5Jq zLV)?Pv5V(}Un|=lq6{|I|97>y&dXcefDuCfg`<&u@vSN8Pa~ORvVn>gksgoMBRQfb~fgc?b^EeH~S0{p(q=7d33aV zmcaXKSU$MMA?$UW+g~Oc+oN1|?X`Gg?wAMLgT$pM!=^`;T3PxV?vw??h6U{VHc)(U zJGSNqj7QeTHa);#HhgaWktHGK@O9N*au~UY&e+;!Td)f6jrNa+5~Q7l1zRwOtB+D?REwRV=L?EB%Cm%iBa>^WF5zBfWL2wQbQSVH4R8)TvkaV? zx=ywHb4F)2%{6ztkOpo0lyFG&X9+g5XE?)ZA(hPkX95~AJ$viVZq59d{-A$7l7G*R z{u`41SD#pC2q-lT>%p-tG5_yBuAKYKd9JOcLiW3xKH~`2`?}_Vuu$_5s+J*KX)XO^ zg4WmuIgzMyey-{O407L+;BP9m{ollBBkE%A5WT}3tIs+Xj#@Gvuv;WWRJ++kraG1` z5)URB3p%7>w8tOhI6ub@ex`Av-P&_ktU(r)zV-6XmaJPXZXeWd?Y1m#SJbAz#V*M% zZSZnWtDkGr?FPLob>x>Nz}DBd+R4Pm&O+zZUUR?s4)T61 zMZ3zM$}d4-Esbp=>GA*$&0sjjhE=TU&#^x)FD()@g8P_)(mZyK%ETx~pAS1Z;#C$$ zVNSt)KzUSN-TdgnC<9n7vb+3FS~XWSPU0>^?h1$Vupp^L7ewKRZfu`SZNb@=Fjsi9ygLZ#yFcw*|x7mS+zK15=6-!bCH)uBkW<$PxpCIyiu<>@|Tc{cJ zW7K=54SyY?*RSpdDrOALZ;{Ycj|Gi0;+^rxk`Kj%hRoZ=| zV-3#-Ur6k4fr1zH9bEEtBoS#17y5n%Eq$#j&J#D?JsIHzfkP6}Dd$KEe4JA{UcY?4 zFHZ~EUXKiKe|XGF+nMu1uG+KnFH-|9qx#DJG5HQq{vxZR7 zOxs;b9GFwPPCsm{d})i83)Z)RKjAg10p8=W)b3i_s`OXJXG>R|%c+m0Z82zDF$wM7 zmSo8`(TA_c#N3;0A`sn33x*l&Q>;F#Sjky?&t7C|c}z>wsWL%9F*Q+`^-?z8Kf4EL z&wVB;=Jng>N0(f0cYe<9YGZ@sF=&zbxfbplbC@j9Ui*b+3V<2+8Dh0)Ub7r{d8MpC zTD^8Yh#4XkGyB$jldt9Q%I=sAbQWz;XA-W8@wK~qerW;IGDFN?@FYK- zofLc&2$#l|lpS&5PFBZiZ!`VwSq3Z(}F zy1MS{=4E|5Z)s{hCc{i=_OmDjGU}6fSK{@nbK=G?|Lnl*UM-&BS~jnj>Nc-VeBY>| zEZ)y8eEk087+1=2NvMeA{TEmJvT|4TcH5$#8+iRMcY{A@J&WPVgHppCPl{qfFwU?q8iZo%{i1bLph27xHJhW_}YSAJQv0N7Wr zJX_@C`41faGovvEmz(@9Pl1(wk)j{IMM9kw7#xlK&Siq7(;_TGUzz5MeiSlA)^0A= zR$w;C9YUm|tWw?=r9-3&+~^@O`G*9FOrC0KPQ>O(hkR{x4_H_H$604r2qv+b5&gCD zmK>x6GI)^$*g42b*+S+4t4o_gsmu-4Fvr0vo^O*_{c=uV zKcV?&VamBUQkqvA-}07>0i5a;HDymk^J_qrr93)Y@oV0hO13J&0LoX>jG*Pxrfo5H zxg$~%`lfeVq7AeIs*_7^5WUg}A7Z#wv-t2grxFqzq~0>n>KdhHK{JvmEhC%fPC%^t zuSYnf@9tbB(Yr(%6GhbCFvn^XM~SfFNIM+&95!GC25}zis`%rhf}Bsr$;wfhcP_kV z6QNbS)Fdg+?VnlOm5xsAXqmYQf8WZ$`$Qu7PLOJZm6}Um_0*btULqf?`>r=ESj6nV z=%^)K=uhQOd@^dhtU^(izO9SkifYwg8ur6gLow z$#5GqIk%#-Mcy;z*l($Uj+voRoHQTWDzb)k*{s=Im;R+i^4Xxbwsla$q-)H}G@ryM z!c*;M|AEkpJ3C4PYF*EXa}pzlzqwJ4#edZ+pzq;~U_>)F=I?PxGsrsEf=) z-H}l^a{4{rTAQ%mwyI*fkw_LfdH!^b8x!KepOXC!`yQtm!={ip+yTtt?OD~D+UX?e8~}yB!z5Upd)o;fLj4s7q!f2x`cmFNscKo$uxb1`xI!c$={ws+jMr9?-vJfKD!~GvvH@>54yn@1Wsy)6P?v}xJ8o-p^8#q{oGMnBR;lV&%Rf67hO&W zfcKSEJi)Ljx)WxI4xxn&t9CSMqC%Jqo2GxhiK2|LMu#Zjf=6|wsswqj1U-m3@cL? z=~GkXxa|Qk+7&nMSJBAzd!v_4M3Uy#VedXCr&KU)I)BnY| zvI!Vh>@&>&B8LC#lRT%4uJsTSUmKCmR|SJBd2;`DVOWm=zwC+O;n~3S_ho$=@waW* zea-zIj;WmyzBH-vVolVvH?#e9+_Ssmofiytb~!@5djELo1NXI`oHx8)PoL4!GBN`U zjdO#dNiu#Ay#uehfZOe|L1IyqKyC|Mz)G zCnC%kU$Fg5=B%n}?}HFa+_Tsf2LbZNn|s$P1U1=0J}Db%$AH!)PFo)dtkm^Af~mHn~V-Al1B@faKG)kqWSK_6~Xdv z06(G@NQ4HV@M1&0ImdoRVNaTvB(Tx{Xxfw7LcQ)%11EgLTd+zU`j@2##)JSN6Chg4 zoiR^FwQ{o&Y=Dv(e1j9^zi^U&Gp8 z|J*k1h~;UtQ|A$%vgxyvH>q9@Q(?Rp{p_=9JhZ}Yicb@Qe)2Y z;XuS2aAPDOysh>1=DT~4;v4p%eQDP$gW$v`evaE|=+G4u>gliaIk*T z(B?8-1xTI zN9#6zJ0O-z=T zvI?>ZzsSmVY;?i|swYR)vXq)*Or4$wYi^>JbgM%-8uxK+SE9fSn_sF<#!rmxWu2cr z2d2op&h0}?fX7k+tay7IMa=&U0`HmX9wado^j@JRQw2+gyn)@=ea@Tt8zIntlK&cF z+%ijZoHB9RcCO8UJ^Nk=2RMam)6ThjP zNlsuN`+#*Gq=Q4r;LYxax~~r6cHPoP8VA5%-UQf*z;_sUF<>G(t+2jv`0SvaXVhg! zY&f}HOVybDXqSk(wz33P-wx5Pt=;Is(b4F3LLV}3BZOll#1O$#)}u%*ROaUeBO`?> zvVHY9rG*o>Q`7h3!wC4o22>&lH}qaBIxUDMpdkihhz)` zkQ{!2*I^RkZ^s0RZrE=5p>a`Cxe)!2kW|uaeHMW;6;o=BTX2RTwL{JlV899F z@nSApyg-C7eDb?alE)pIw15d5Pe(YUzt5gRwS2)KoJ{jYUY4WB2EJ#7eBo&Ad|Z|F z{PyUA7~in{;RZ+`QZ1J2I?ZZ(f9h`a9ZTP5cTxrF9t{iCZ)-K2vkNBKP=xeHev|YN zij@d|yl*JM6QvNg32QLZK;#+UtT)PCU&b2p|ML!qNlTAE=xg_5l0koPS}Q1(t(uDO zw=&*}BK7jF+qgt=mLNn#hXkv-8hzp>L?>q)hV6Mh9zg@|+CkvZ1H1E~7d*2GL%mIu ze4Y5;UI5FtcbG7-fNqcUs6@px^%v-n{#cxV)2%zn4yU~j|CV)t9S~59-472i?Aumx z6*Cya=hpZ&JtdH_FvE70egLqdQ}}aLtLz&9cLYOU;rpx~YDXx%h&1qB_$nbkxW3VU z6{!g-O}+~3rXp)S;dq~%K<*_e1YrRAd+0Nm5RMnueXen+onz%XUMQM55ge z)50jDb7Rf|QlNmvzhCrQrP#w)=S&|2_}(7s2ooIR(HNGo<2gHjLOf< z&(R(HI+WPLTWT}5%XMnsD1hDV4dtCN{Ac%D0l9lhUG;zlZm|@pvZ|gieIN z6eseD`7@bl$DJ%uhOmNaqwX7meO)G z>A~#};oKi-Zq4P;dquHyem_k9_IRP7l()CCbkh~?S!JD)>-1r#4Ik;1z;}sxrHiYl zg*>Kb<*;zMhCxG5rXFRh2s2j z2khRR*g!(te=VjsN_eMQY=hk-AZ(?@SX%YP$C-xl7#yN@+{dBFwU>FEASk zRpwS+)+}E7D2F;SeHLe57l$OkNA;$;i~Fr4Z#eZmsAxL?1-J|L%pVD)H;E5}*`D-H zJx=qUO;%=aJE1LB0r0mQ#@Y?)IbxnjVKRYWz3|X=Ec}g+oJvYl;XE;MSUol#IAxsS zSNr-Mn8o42$L*Q9DGiKDe5gI=+_k}r=Oh`s6c?!ixMjvga73Wu6Y8S4$+sVGo&~nq z^G-?bi(UzuCjnuvdo<8x|Cc?XL$?_5y^E4Gc(D`68b>lOdNAo|Cb zVUdMi2Mi9>+wr}4jBmq@m~8z6kJoD&Q?JEJ0_S4x z6RrHk@3Wg2#tXXRNlAo;FNk?M%uGQx=ygJp$&cs8AK0Z(qa7;sh9GB4sq7@(H*OG09X5gH(-AW0W9IX;3Ft4p{-gvKM`^3 z8sSIdx=lFt4+A^B38kIXnNMEvF4$rC!O77a;m+_zTjEJKA~VS_{PL}pOo6%Q#Qud3FdtiF6zV|1fd!gpp#>%qkhQ+0#(y7s8O(r#)O}1N_K<*q3(NMyL%_v#Dkkp| zHVoid=ID$>v`dxz`l0~~!#5Cs#Dso_)7@cSU#ISU93~g!?3Qr$7e7U)T8e3+ua%HL z-oMe2Z{AZpk!i@j$x-va*qhi_IOuNV{ihSxHTuitve*Xui1K>{k}Yw5x{dF_6d~~? z9`g)cMH6Vx!N+1?{Q`VI+3bQbaS{Rh z=)6L`5*_u8rg~=>)i)0fQ3mebZVg-}c*f7g**Q6z8ehIWm-IqoZlkBa*aqSsHH}f^?%{TM@azF48N`Fd-{H^lzd3-{234;nCv+W#ZHnGhqE&UR&`Eli3-^q5%r4kyajJ#PN4| z521`jJlE*CKpkdDa7-5T_uosf+PXB!J=d&ibUj(H!S)55zWgYf{;ZZENPF4ZHFgAPN+fna+~Io$@@~XQ{b2Y9e4gM-tC`= z^qZ~z{f)TmuAoPk#b1e&% zx~X$tXcSfX{L0kuG%FTDLmG6s%l6X*1ssQ=N7EF=oeB%%fJO|tlk6h8LdWF0Lt+r*} zH%0fVLdnAT*hWSgUdr=X$#&s>zJvF;aEC6Kky+@Wx#F(yKE%}bORWLb|1A}QAT(rJXrW# z17@BV$s)XZ2$T;O^pDM{hd~N7PRq5$(jiGR`U#D-q$!xW05X*`YASx^`&&G6W3pA17 z57EV;(XPSD4nxU_xyt6ky<6t>lrMz7EbsA%kFT<85IQ}pZl3MZa@cWiU;_Tdx%OsI zzksM62g|h5lrz8j^Q0P_`E=CaK(krQXvk7Ppn=GP>F=Lp$2^J(TGdOu2GIO1NWq$S zjO(%ES0J(Yab%; zG2TxOC+E|>$L)q?=r-g|%Lxq)`Tp?val$EOP?qV1^$e7v)^30{%XHuj{f_8pQue$jOJXXGj zo^qp-)kl}dP8}ZN@5A*xyRCTmvnqh`-;!x_SQfL#Rj^X)(n9*;6L8a zY0{!k*k?gOp2fGb0>s}%#K7bt6PX$u@d2L$`ya^sg3viV>K*amE(G=}76#y#grj?W z3GXv@uJy7Huroy;vo1|0k+4(0+-;KUJPz03K!RQGZ6CA;qrR8Xh?VD)9-BqjlG?`K zbGO*ktxyS=urs1K+nJ4DGgou*pyq$P>lUw-e$>*_74qO-Ij(TLzLg-$TK2dV{@Sr3 zF!1|mKYoA{;$z(6(S)8*H~ZGqQPT!~fAmYsjPMir1Mu$qDT)}Ek42p@B55l10^AAb z9b}%yrG_Orqn*((TOFN6igKlQu)VqFFUReRIG_9K;}e*xe)-2;lv{RG`|bg$e6HDa z?MJv98WY#9kv&~q)EFF#-qQ2r{{RD*F90bUaq_nNt_j+Q@Ku?86o@y`Z=iGotJQymMa*o%Y@X+=fT$}&IJ^SoAcZ|{e@yFL= zlZ4793>NcJReS6P^BsTA{7|Qbla}C*?2&rf|MScC4bjXezF*2;Cz85a{uoJhoC@Q$ zomi~tC!geHxWlE&}G_Ct~2O_3x3K`a{lJtHlyG-H-Fc) z-PQF0SSV7lhLt*+dz6H}SC?C4jzN_o%=o{u4ZeNK5{Wznm`x|b2Lkn z>yjz3<1-kJZ}KVdEgsY<*19t8BZhhi>XkJk-?q?a^fns($8oszKyHSLhGWG z^f(=Gghc40`F_L)JoG_@^0nVbRAx84>$*isawLw-CuB$0fL>xf2=$%)S+u@>wwji0 zM`8+}Wr|Iq_rm{2qwRKHAt=0$bhI(ER9*KJv#F;vvTj}-%&)q6tTvqTg5^8Ma&RyT z`3Fk1yZv_g(#4T7mqm1dBAk<~Aw2|cSeP{UUvxhZ6!r9MePCbMMgi-adI)7fF;78S zGnb&)*ICd|1&?Iw>4U+6FC87`O(9ztK?gDG9g|^wfL)>WgISNNm<@PaD+nu+{gZ2- ztV@G@p^%rl09LHc0L9`O*LwY=pGAnaV zN$GMo7#ObP3CM45EnFu1xd?|pS}*h+U^q>6PGj|?we;V$^RDqc$QaJt``^eWDK33( z@*LaQ_HUT%$cxg#25B`X-V(B0Tkx~sc{U&IyAIv%u8AiXj&20La{PV$+k4N-_qM!f zU=itEUYKmmPq$QKqt`3?RDt(Ns&osG@^n3h9|dl5j{YhlpcLh$!VVPBoJEWdLJ(_p zjg!nWeFl2U^R~z=s77g#3K>xr)(ET2_*>H+RbXw(Z0n4w@yU`!t$MnLYKQJVQcr{x zFxKdr8590Ayft{C?HAYSq(vVD4fI@yYELyH++fr)4N${NJUpzj%1~W}_Cx=)ltoF{ zv1KWt%imf>X?^Hud62oK20hY`aFa9rQ<-w$6`0neVsD-$as+BmGl!TTxTIvFK|r(T zM)?!@>9*w58?!pLixVoeNH{o{LS8=>#-PrkYf3DxGMooRlil!1IAD99N05f4e+rJwH@Sn6bitx;+Zl(K{-9f{OC|YrA7F{8&A8)-bw8bE9rU zdyev!;y^7JvpR<}zmSE(Eh1EOg&lW4c4_o>r`&PTwLWpqnCkcCd?;zpAby;d+5thlY#`p0M^Jtv!x~SqX<^Ws}JYVY*tAs zdUOh79T7;4rnj?SNO=^0RG3H8J`Q14H4Sy=$JyCVP-YJaQx4TSodr@XAUYN`hFS_t z>$lIzf)#=RJ5p@Hhi5e2q+$EAF5l~oA~KyFURau2H&)K+v;O$@vETU=kf$p;D6iE; z>)suOrA~FSO<`%rzjWv+rszN${FLT=;+jV15ICjYTVVT=CG%mpNl6=nQ`IZ}l>a#X zjUJ2Te92mKq9^%U;@3+;w$8eR$$UQRq-_FTh-Dj6=8(p(=^8Pqvc_!9%4PZ#cCC`3 zwkxv$YYBPj0KF~Nsma5_AUv`ZdaYung01>T9z&&W<|dH@V~Vv5;r-I7ktGk=QSFTD zpQ(PBJvGPyZC0+A7SV-*kzBGg3_3Diql@o?`UZLhVpbC?c4il8UR&h5bKbUj77o?q z>$-xL`e(!E`!HXrn|QXnsOmCO1q!kR9|V>Bj!^tLa&3t z4az01ErSbeT0ap#&mId`$J$uE)iyBhALbZlZ<3Fn$J2wyM_`0u67oTz zCnB*1ek-S}EohZ*6}%?|!(T!_*(zDHRvSflZ}#eMlIlXj`XDR{Fei_G;>@vgI=`(5 zp$T$vOw$K?iI~AX+jc2U;evIc{WMSI& z3n#4I7X2|;srjR0y5rE%m!?)6&IkQ6xo)~6zo~|IV=&6A^c!h7?pJ@5ndY-y(tIhC z%nijlJ_kjc2zL9_Yi$HDK+pZ!>B7&7yUg$^a`{>N^wToh7PVh~+0RqcSMD$QIluvX ze8V(_IrQ0)9A_AYy9ed)k&zyd5h-~!n#fBKXo@~K#b=KNmTI6~PS-l-V%D^mRV6)Z zE@^9}Wxx~}+cnD`OA??a4Kq-fJyqiw`va9P6y}iqMa#*MIFwcr^KI$byaA{FeiQrN zL|F-co7dNni!2wPrgLv4tWBa!kx{2~eNF2J2xCV`Kc7LgFckMEc>|lTTw=B0yv;Ee z;!uG-&7mQY)UXH#`tq_;8<@4pKG3S8PX1vk_h>QVG_Zu4Hp+Ir-c($1y#Dxw7F$G= zwUl0Ytc=_hsdh_M*1)@?p}X8i#G9)S8DiEG5b<}pH#5ISyTX%_gzvFlm?sy?-KD=G#$8;yLP@6e#u>6C$eJSA-ZqiYUez+;Ied%G+ z-WukZPWCRV7JOY%9zY(uzc7E_sOg=Yc9nAMG6ce9fNR$)(B5&nAhfA@$4pW5qnO~b z_*qeVmFP!KX%g=>QGGjUPkHSRZ?-U((QuTtXJy7>YL-#@5o2F9pHHarzKmvXrR4IY_I#98>u!8{EP+`SM34tEJNW zinV=>q>AnNvRVjlz0HpqKD$?qW%Q&(HBLT2Uh5zd9Tg-+CWgx)kg+Xa)waCK#BtBT zl|*fQxaP*0KbW#x0;Hi9w_=w!0>&XCbR2~xgYsA>n^)PogZu4)bs;QlSO)D zeLw#rBt3|*$`!2+&rQYmaV0+YCt=Ew7M~vTLo~DFCGTiJ-Ty_|TgFw{u4}(i(o)g_ z(gK4%jxvkG(esyUbe7gR0rwt2J0Tv%kpM7!3% z#pV&G{RA(WuX=PXprj#!73L{f*wEzUQi|>0KI8j*FR5J{3b0@F;DgsC>cYDYoS-QT zFawqjSN%|8v3EyY+eth#3u9nmuu1>)3$W&j!O9)lLL_ zBxTa#Qdr9gIczN2j|tOO8+xxNfgwHvvsbaFq;lo}O4gXtUB50(v{LOnE6B@GqwuCpa#iq&_ya;@Fu5or=5EQ;S9mIm@0u@wR}Vj$rvG;&c9-!a zTgW`-Ir9h90x&SRxsoT~=pn2`=LsQd*h$>7)N6lAkDR;jGyxqWA_`uI|Ind&{QMM6 z^`8O5TEj$qkdg8`lGVSOLh2+HI>u>6z)%S=S>gixt9_U5OP~$9y7_}OWO+nIXW8!L z=)%Z3*?5{$>2Hd*{O!{-;Qx|Bd_v0Nmrnt51z3)!FMyOI>F?)6w)Kn0jbxz1E3PdN z`PPCWOlrfdG~NL!T8dWzud5M0cPQ51sk@qAPvSewpPqh+-!GJB;1>!$Rv6ax9{PNL zfOY$oxKYhjMRdsK3?xfB)0Av+ajjm<8mV(N!DR~1XMY;3HK@Nso}sVF5+#(El(6%r zE<_*d@$G753SkEE!1teH`PJg!L-Fo7$>vLSSL>ib5@0%Is5g zm|A=jWgnQ>tm={gdVQ25(t#<6e1ilZ&f*|PvmkE1TCkGD9Q-r-Jt2h5rfW^#~jV|rRYKH8Q%Mo{=P3TD?LM|d2eJn^U4y41KU5feq5C=IOd)UB|oh4)lf zuKNKccZY9N<8D7|YGEQ9<`bqk^R3!A`tAQK-1Rj5vu1y$d7s{tla~2Iub@5aHfm6R zUN{-(vW7v%eS|Fvs>X0`Y?f#D_IsVn1xXHm&fbdz$Su?AVP_qM*{=hRr((wDy{$Kk z{zKMXtvkt!M0v-3yXN~g(8-MACc9&@bhWfrctco0`N)}N29;ClOqY`_?&z;SCqe%I z|AS(QPq+Cgc@M~MkB2sjok$(SN5OdT`k>s?z`Ze9Z+ii3FWW)FP=ddUF9^q74J4~P zh7Sb3>*WW*{yM_EWtj&Zc{U(Q>Op4}yazo=DNq9$0cD(t#Uf=`P3pC#slqzJYr zafnXx_OQ}<={QKPBBXPnDE`K!1G#z-eev@U@(ZMZ^+G;eEtMHGH}|!p@v-i-%<+%A z!(6|0vt)GJSv<_p)m^3E`1ED-@GLt z*j$TMUvUrv2yZxnkZv5N+QM!nSNxAXmJi8&g7B5VO;j-1(nkTiMJI5T642XR>`vD{ zW>=>QSyonod=*x6nSywu%J2l0uq-_nvd#3qmJTrrBzF@&=T>xiV;t}3+#L8P$egT# z%*|YLs9(P1X#p(wO5QVCMIGjTtWNzBk3h-m=bu>v`8y;)!QwdppP4*rtv5Cg_@wOEFdGlcV9g};yz@2khq?_TF zsnk%P1$fA73c(lcx2|3bt-?0n@E0G+NMw@UDqr#)hRWe_$)RavD99N*w3q5*@!q>| zg9~2Sg?&Wa-xE-H@o_~$2ZU*J>b{W<7mFb+A{p~;Z5n5u=($FQqBqAiY5K0w`{wo> zX(0ivhJ7QNK!K$z6&HGt>1Alg@hp>N=W) zyrZRL*2<*70ypVz2U2|qdMY5*h@r=##mRVX%;yyN;nVQ-Iwd=bM>E8+?TuS%^zq7O z(s1n4X@5aHxhtUG{FP4a(lQJTko4wkm&EYyoq!M^M8Hmk0_E&p_IA5Ilk~_X43P;J zQ-LxWZo|OjzmL@-yk`LH(AYu0p#MOr&Qa9|Axbqs_r*W14rw_tb`%MBiw!gU{*VLt zzF%$!maz~J+47(EwqiP&Tt&yB2pH0mMc=`R;q)REu!eRs5F$hqNQ8zDCD3`}wPhOH ziD<5e>AaPgr1ZAQ!)H{weio|P&;Bb|P9OE5Phrc`DlO$WSsq5jI_gv+}A9V>|da;@JBFfRwRMHBn8SFl!_*j%vmp9!gl0B1ew zAsD}9T^QqpMf68&RrcIg(x=iXwultov5*vxTUp zJ$Nc)cr3%@m!Zux(%;7{=aiTZLjKNN*~$FA1{*Y>Au$q&W;1NBoG_8^c6NEvHp9|{y5_nuOqw#}NX$w|zaL;|;!MI_>W*7l-b<^*nE?Wg5nSr%g5*+nu z;ixIMyF*ggZ_nPa9x^U%M?VecF7^{nKmVz*U7`+K%kM&Sccfz}hspVHzbN0zswVy8 zIBeGy+3K#Udl2&r2#P=>`MbGa+#&=gG~W9&L003ss}H)Dj1G5*!^2H;=TRGvicoS) z*oXGY4EN;#_pGBcPnMrL*SBgXD~&^^e%!JPBv93wB+qgf!OMfxgNUip_`C2!3|r7L z(6jJMP6e8Noe!VaZUVG$5bP%#hhyI7n7%W6JkQbd60JXcEcbo}Xx{ISSq5pJ`zNV} z-wLcPCH8DqxZS8aZs8Z>q>pI1aUd)8A40FRB00J1y+{%-eKxV1gWBk|rs_3PO%jk| zO#l`9DW2a^WkT31#oFY`&fXDfe5~iXSI>Q=7VcxXT|WX^p;#XO!2z?0)9UIg(r*h` zu^b<;00?~Y|G27Hw>K>(MlP+}Ye-Ip*S$L*LmIgeh!du;b(~o@fwpOg91v2#LtM|t z+mY#RDz??{J}<}(?;0@eE-s~czu))<_w;BSd5aj`lQdc-<}qMM*bFh)~8uSyAA#tBUN8ZNf5%k4`9 ztOFaJx4NYZ+X zAaG`%e#FOWCu&}^!0`^|nu07*G;^%SCb5xLRRct*Z13Zd8EUkYGCXUWlp_Cl>>2nv zj=AKd5kxBH9oy<|$E4$nw#TOc71kI}EBLs7cn&RKS=J*i-doWc{2|h>S!7yj-!OY9 z|0X!rtFfZwptEQqV)fT1`B!P=kn9{Z^n-Xz*mo2zci*{ken{rZe_8(!2-nXi$)HeO ze!fqPE^Ve_;l_z?r;6zIJ~XQBQ3D>LGjzC4LC`Gp^$l(iHOMlQYMeGF&m)fr^IFEOYB2z3m2m0{bRYq8uFz*4s|&8Z zq4wCE8+W@_YG|8dO7jcft%)WeJp=d=0q^XC2h!D1V{5pUwh#Q~qsnfdP)nufXQ8)F#Yz$ZEGia-nI-UZ>YhWwH5!JAc=sQWI~C&F^Zh6TPej zxHjScTD?CgKOU~n7cJ2~2CzQf`PrTynWe9|I^5--{`^T0!1vOBE}nX({(U5=zaLiaS?D zf;|~p+y_9mt2lseIbt(^u_N72H1zRAoa7A+043GSwh=|atTd?!!3M?Ebz;Q^jhyNx zJ1TV`HtoHP{q(u<$_pW0lW@(*2agzPc<>&!ns+A@=7Z?YpT zbas5#DiZ&4#Xzf5zQro@2)wm^cF>a~h0wbdUvX%S#BD~MJHj+7a<5H{m??-jgqV-< zwHi4^zp_{&f^y71p$nLNNufYK$K;(b_Mjtxk|kf^({Z+C!{D0&aEpE3&c=VhU|=`C z1|7z8HNwUQ71xZxvP;G$e?i90FY7Ay;KBfyC_u7`OBPTDdm^T|!A0c7aF(-7QespS zv9`wo#R`oQcZVWxi!qT2)>iv(NdX%Wc0kJP z_aCGEuA>*Z7mnWRmr*??JC}_cQR>rI_7iH3x@>g_rp>BjFu&^F-(XrabZH%7YaIzG`f^nII-5Exo(#Mj3!CI2N*_Qx$If~9RUzkj<{5I~ z=hH!Whx{w6$x4QE-dXtdE9#WxCJGlmmiJKU-L(indtd*%{@EssBF3g^Y*$;Zmka6l z`?&>5L9F!A%#4h{OHTT6CBybU3n8-o4FChwU~On7Zkqc<_KKQ*ygkV!!BYw|zUdui z0?_r|_)HcGNPoB{6;A&%yxp=S4$SWmu_nf~*l-7nJRU#^2V6ybt5xb+IH?GNuutbUKdhoF0&EL zZ!CWu_$DvLd9#l8+-dv%r*FDFvNVH4RB&AnS_1MmPD#|gi{qGgbWIjWCHVzhr%bDB z(v9!Z*%3YhszS@{P&e{p_Q$4jtE#LtJWzq?d=|JNacy3Sw&y9ffeQO5! zxo_B#uC3`gro=WnParMuT;INFKD~H@$3cbHAf_veM3YPZamtA(cS7D5z?%mD3|{>q z%-NHcueXH_|P6k3h1>aIQ1&@R=e|DQw(+@}D76A|3{WwUzG#x1y za^_mLNFKQTNIn)LCTaJPHq>`Q4V}vFasqE~H~nuSmh7aT`NH;jsg_0KYm_`dps&n6 zV7Q%_aJ1^(Cl8%y6I}=6Ae~Z&9Q!SW;;lrP`$2Y<&bdhmraqVaL;0a> zsZ4EzI71<@e2Bj3-S7Dp7GQ@RL*x+&M(;nL$jB0X*0SU!Le7BS);WR6A&t8V5|Bxs zH->HWzLR-b>Fj8mqHQV+X&SmgV$wXbwUodjSXoT+n5zr@H@xqLHfmx8zMbK7_`$g$b-Hdjd=!wQXgQ72{%38_~5(Nz+hrgMT5f zTI)<9mh8c+Bgwrzn6Ply>FKi&avUcl{9}Ek+|kbUx^p-`0!N{gPTj9?$)s=XuS*`J z=_B$k2`qRHQ>(j-r)K0e!vcSt>){%rP+x8rXWvnq_-;N}hZ($Dsh~8>qIl*O>g%{k z-+vD8$SQ=>7;hBC!e%`3iX{76B<;i>lI1e_ST166UHhck9q$LBL*iVkLfPq>yKM1z zuX>_GftWgY2@kmUQDdvm)X$Q9w8YXEGX)sjnSZOb3_?RX&!tFihIPwpb?$G4Te{U4 zT5N8#m4(tbKbNX59Hnv$DW*cN5va9o-``8U*u?M|VEbY*>`Zgfx3)Ji`0I;0N#Th% zx8_^X*oemuDhY;iO2Ma2+Oc6)g#!jxk>TM{9`Za%G}dpRAul6yY!?YiLMX1xGsfN+D(082-%I zVt;lq1@s&(f?e25f65duQt32O6KOHrH%*?qj9jmRa<&aBH<}AhB%P8@C;kOT0VMAC zI%c!(ePvnzZ6TFkG9P-MbY7XGgz;1Ao8SBN>dd>C+li3=>~4{aF+u`XB0{(YX(HE8 z-E*UQX2$o~H{JVx6YiEJjo&A`T^e9iz$qnnLB%X^OW>ihM-CXX>oQtQpWjO8ot41u z0`MW*A(5d|n_I`)N@Cr>xu^NVL$i{3TaBQSyNi0XHq(4ezg%|JenVW|(i$p!!Zw=; z595Tp9N~pZtW}s#A0+VRTFfE-2*vU9Z;P}sy{>q67F}LN#U8MhUF2_Vt_8Lf^^@Gl z{_vEIw>yRg+Dt$pxA5SV8(3v~Z0U!!p>bVDn0OSf1$m`WpgCMz{zd*mgQtv~e}8kd zK=om}&ZnJ=vHJ_;iiiKKh4G%?Nk6iicwZ)%2Xi=*((@x>#+Q%K#wcxHX&7?yb^JuF zaFjfb+4Sf7Gf$~`*-;n#_)rfF`@Wgcnza*Vr}Er>UBddeVEP*_1YnK&%mI^<8Q><5 z7pQLFNNSctJZ$hR?d^K1(c$6(7wCoGIz1omE|1F7-yHUrxNS#j3J$>xWmcXS*#uDU*s|UAKEbW zrS9#UB$^_`2)rV@=#KTsYxuH%8!>3lpD%LX>2;vj6<*FKkEK&lZqrravOo4< zDrULWjZ-Pc!}K?9ZCX4Pd=tyTb9pa->Nw^J%UfahRxPqgmiia57;`b-IougPIZlKA zqnIrML|czRzC~lwZZ*Ow=Hn4t*Jc8dKP z{cNddw7|CZ28n&Z#ad zBT*WkvnKtjQMM_9e8{mjS0nj>Y2SD{k`$A`&^t}mI27Kq_Ddc0a8&uEMe)icuC8wD zkhe;RU95mdZ~ftmjj(ndRUvW-@2kZ+4SN94X~8N2U3czTWp!5cVWM-jE9)Fa()zWf zT$?<;s?1}nK_(ygczY9hp-=Jd)I~9ij*ER4^wh{enM(r{s~pfV6945p4zyu@_&rfh zY1;b=_hqd%iBk6;svr#S#YfUF6)Dw{kywq!Uwqp=gr6n%t2NTaPQ#YJEG&CzOw;@2 z)K;(iWxnkifpn9O4E36o*QPf#twxMRV%hCr@eQFUzm-1AjHhd?FOQ_ncmaNr=@M-m z7t&b8&95Szkx1yAh2$L;GphX@!-h#$)cu^fSDHBi5*bFR7Pf<$T?PcR?Ll5he*z$- zFHiB0hRMx*2duXD5P=tZEHJ#QPR0lH&at*YG5P(!i}coA6)x-iwZXL#iU*AxFzV#G zLeP5zo(ZuQ9N5v*HN3S#8Z<=J_svkQm=?YF_;`kHro|r?8bWf`k~$MCgSWexK&H>8 z^OcOkCO`L;gEQVorpIJr6&tl;>i#17U@0+WYif>(fLTOiVc5(ugiwX*R=WeP3M)h_ z4aDQl?KyE17d!(e#3?lGX1%7`Su(<5W!Q~MlAIKK!C!q>LQ@(j@IFMAHV z;en>EABM%Rqa)+TrrLbl!C#g)@@AwfG{GQV&nAJQl(G(%>bb%iKCMk3B+Y2T8q1NjJcG_#ZT1(HPkYDlppiFMRkwMB%>N$Egp+(vNrA~@s%1`b>s&_ zFj{?YeRJxuUAkUGJ>Zul{qAi8X(r(DhTG6%>KwcK)yVmkORQ^Aa+f){MovR0Z=)Dc zWifPN>isBDp@TsV`Q7h4ixZ92@_q2pcm=4PQR1F8>uC6{d$x;r3Jd+6XO;7!)AXW4 ziiHH<7RU#+5WkY|8Tg1_A@weyi66sx+0ns~+TWTV_g2gq`-mb3mwIKYOlIaY4dE42 z??UAO;{59rTLEpONPGsTcwWJj4jYNC$3$$sJ{}j{pJnMf{~o#e4^sL+H}aFa-b3rt zv4)rBC;s19YsElIwG}$MxqijSufEF;ulq1s<&*;NSQSF|^&9DR{xhULiLlznp!&4} zqAgrktv>eUd=ih+F2sFx2bcA)ybK2fs-88jQfEq-#jh zFd&<)LcT6!CQkBPbhxhlfDZpf!>uB)t5R-X)K6LY#%v@8^1-dmB`px~+PYsDkw0YG zi}E_LwSWFtXD5}_>}^!Mbb9;)=2sIG>)_``yY=flLeVYE1K#BlYo?*pOSNr>8Fr%k zvZc10E)L_pJe)%2TK=UTSs6>Z*A6O?znB(s0hI6e{?4TkFC@#atERboe zI0q6EKOkO^RiGqCH46{wYeA0ga@`62DJG^COSnXEp7m<_+dJ}I>1Zc`jrP*pj6pDJ z1}X-wS)w00Ly6q8T@D01Y!+!4)gtDzP`Rben6i0b0KI%s_MPraOx7+&2A9UsK89i1 zh4}-;ccUL4`|ie}MkCyU7a-InRui7eD6Uxt;GSBrAU_sJl;H#7nCit2_Cdb!oT}c1 zO01Eg#hu;!$UC%zn^Me!_#j6@qy-gB;{;imu2?bBQuTiKym8(2ybAkLtgYspP(HSx zFn#vVYZumu0(iBXH@B>6=IxP@MN$NK21oRp;L|(_X#uUcGX-_O{5v;J9tquOeP)zH z&I|j`)f=CgomE?9*W3t7^we^fuC6J041$gKW^`+L^=uKw?l**kRNw4w`ShW1lJ6(&#V63pl|f#4(jMqHSj>T_a0)@U(p1 zsBFdCg;>}KZImC2pu>g zoMoxV)G0j5axO7BkTiHjRyLGeKDGq!&sSzF9EbLOC!=&9F=!MeY3xSDQE!VkR4O~^ z6NSfp<%PcO+@9k?o&ra^td;RSN93tk$%L^aqTGxpsvM7K#M>0p($X0MVY^?ljX~7n zU#_{(b!A@?N_kjt1ovLkl8NjY-HjJ)R@RMD&fq+*@{(^KKI5Dy?uZEAqmIK|I%QqU zE4!Y4^i!Dortv7K)Hub~G`cXsrb>48|OXhzo6Sv+l zyWDvgxo)jTOD0@}!IQ0`tF}H`cK<>=%kvqe#|bX!_P+7~2pX{-w@6hVe+F5iq)1nz z);CdOdca=BJ5*Ihi$6~=Q;GJJ??`fdJ z)1+~oQl~|wzJ!S~<_QKR(kUNxA|akGj7;3;n+N$Xsqsc7DF}JXmV+Q0Xbf?mNUwDs z2^A6fbELTJ{lV`Bt}fe(aK@Iq%Q$S-wg&)4qUGm+v#}CUH^$c>8+URP&%{d59 zV@c+l`MJHJOgdDhIEelc(l)k}onL=`rLF(1eK537s(^HnmQ-r!Hj%5yzn-mtAx^RK z>&J=-2@h(;B~RB-!5!~{VR?4>yMD~g8nI~;w>PVgMhu$=8(2HT%q$;*yfbStI}evB z@!R@9aeE&;U=PVjzTuSA!d973c2>EVgAq=r6SfI7bLEIrD6M(EngE`Y9_+N_POS)JG_MJA2(;q)>C3b{X>libFi8DCvv!hSqP-EvH z>nk{Ul0YS8CF(R40Rj_j6Q_s^6y))z_B>yL;7{YrDOp4UT5WRHJ_mpD=!IcWLsLc) zdtIahE}|}(2b?%rCvAll@1m=;eAr}s*W;jK=YmfX=QkT4RKW*;f)dbO(KsZ6gJ^hk zwKjAC<_f4&l=GGDPp}3*w=Uh^ln`*&bbk36C00^B9ABx=0VAyI)ow$J*pGY!NTYBv zx00bH94HPGY|*4I5W0C8ac4&FyZ+%Iwq_rt%?404BY%=R5{-4$90bgUfo5KF4?rX% zKWQ5|f}hGjKTX@#zXHjRrfnk;>wZ|%<8ORs;4!81dz>fw>exKmdMZ)n*nTXe=N6ezQiN-hZ@_0HcXp*R(=*pvRl|$QSgM zu^5077>k>x|0AeTcm7i@eg{5C;{k9P{wJNIfo7{eb*NW-khxz^Gk0&N)Bq{)QE0$3 z`H?92?Oag{Fjcg~O8boE+kVNdSs|OGIp!yNqm_#^53ADQ=eL8(Re6PVJRh$5ysA8# zS|*G39WJ^y!jPeJ5(6$TaO^LHTaW)iL+(0%r%-T@T8>ZsEyo>LVBHfvR|J7-{y*$Y z{Bk*9HOySraJ^IxK0Tq8BLR7u=`zjp_Eay1%5JKzG==##EGC!1?qrtey;J5)G53P! zAN(?+VSjWI{M9AQ&oH@Zec@#f10~JR#5W@kNYgAFIFa(wM_ZdJ(u$Tg^e$i;|W z9b#``!vLxA$*Icu8Em~UrWuM8*t;hygF6TH}m6J`g-)Rs2IM-Aq^n7SNZ z@hUYze&jm!IOwN*^eGqrqaa<|yNo?b2jF%IQ|mWPoeqp)(C4iuB2#`X6%YK{Rkm`5 z))PCNTtm+#tJl?2TJPWrC;is3T%1~w$J$#vkLBc63f@Ae$ZZC&8wh?hFh|`XG<0o0 zF-Pkb&aIZ(>Jz-lSw)_N^b|6GNrZ9w1p#q}%ft2W4#sIx!X-x*5^sd%&}mIg6BtkG7tNQAA5SUEq8d%B^DO(K%N$^#BQEtcM?P{`CSv}pq!DZAqz`BJ9Am^ z!*aY}{M$AX1d;%QwbqWIUPT9HyS>8&Y*Zb77Sh>dQH3!wK;`Uu2RF^X-v74!>!XOi zz_ntPHX1oFWgQx)+5{*Vyt@vuR6ZXW$>Ikuj_9>L{L>WTemeO)h6g)->+hOC1vOKI z&+X!TYX6{#2a=9j&*w}h_zrr1HpM+vDrXr9{ssHVg+BgJmM;5LyI!Gp9bvR1)?(Y z$o4prUu?CJgO`{VVC2i-&vm{pAKx<_R}#-HNIvWL6Qy?ZOo!eGJ}Iu!F@C{IEOn#7&4tp$s}7y` zB32=&>7>g_4B=xd5lN;{c-$Tk6eA5EHq$Gb|&UK*`Y}E^p_P8;&|~@7wJFj0SC$X0M!^d2~VLA*qCP+?uRX?@{jgh||&hPt{-LvIw3#Wvsl8TzTNP-M}a$t=7z7p@1 z#>5Nr$4fS>h6{4{-j}LuDOIT|)6jnoSxZd8?|yl*i_W#I<#QpYAFwv47EIr{zJ`TE zNm}3?fR#|F<&%!iB_ED@Wmw(nn>YMnbe#7Q--9(X;M-0n+fT9wJF{%htma_fa`sp@ zs`~^bRm+D*xZ2&k-etFGa`|0cu~*!D-SV>z1k1yQxID$(;wL(Wo8e{HeA?|Bp1!hM>sb# z(KI=OOej37bC#}D9Gea(SZ+#rzKHyZ<*Fqzt~A4{;D;7PFKD}LKcUYi_i540;c6Sc zuI$+uw>TUPo{rJa>WoY4f11hU23!PtHI*D!>yk2)pKmPImLzI3{<@wCTVq8MCAp#? z;;-dUD#1>3cvF$GwIb~WI!7ojPW=#Ad_nJXzpMm3<7fKP>*q@*NUvwb*Oc`EuXWvI z#z&Cf#A6|JafMkD7Al{R;!*Kq61-()1r8{uTclf>)Y5N)K6p-&5(877VLnpCj){Zw zfZldhkkmlCpKcR2F`~|3pGdz{6PqddlA$HLApiVVfzniAo5xPw`W%)WiIlP^{ z?7o7lGC({;>Aed7PY~tF^E*b?Kw!z~yIx6+4sbHWzd4ykd(bPV<`rA(Q&}9R6)4NE2$3!MsRS#) zl(LpPo*qZU zFG)p@73$PxS4C9LxWGQL1@=*!&GC-Fe@PaCo=UZg%mQ4qi>7)dNjLI2QEx1U%KYBj zjeXu&khP-@wSFcW_1S=+QVKcbECfxVVa(549qT63!@;$Unc(rkA&Ll97XPj?)kTu}w)EWtp z9c3NDeACNJb$8J!K(|-Njpaeeqc2!hk@4DXkY&x!C{=@okThr0itoJpMfZT`wOaA@ zf;ND)U#R{(BvDk))5bFRnQKl#E%*>tfSVN0g76n|q9>ylha)yS62uq=K9&NZm%F>s z<%MX6F-$*GRoFow)J~90x2+-v zk=)_21R;DmM<$}2Kxjc4s;#as{PU=#hS$6lc|-nBFvvb$uTNn8R1TtPwCKfHk4uQR z-*u`1QWg8lMGki0a{2i8auGC=d*ZJ9O%9s zh!*A!q|HGyiISP|3lItc>hFp>PdkMng&K(F$B-qzwKWbrNY#yM+t)r}<+7nwm$P`F z;$r*nQl%Yh&;+P%6k}u*EiaMbN*`hNHCb z5=yUb*Z1?96$w|c=l&~Rc4oZnvr`;1;rHmWQ5qL7J|U0HEFfAXk53VHbi|yWv$Bc8 zSS~L5f!o2_3|=R?81LLPfM>V~SD^nT=ot;qtdxv%&GH{=t9Cc zVw+8T3KIZ}xbuN#ytKv09-HIVuhWaT6gDZdW%D1%m>ZKjuPBGYOX(uLu#dP z8?HXWz2e$@jpomWE(&Vbys7DG2L=aXWS-*OpiLkl1GtS-tc-hCbClTP$BAbGSoJ7F zLONt2@!1h$Y$vzZM9ve5G|QPO6XW0fTtb4-)q-E((8(8D?&!#5S+MS%D*oh zHt}^fHzk>Q`eo9sHpgkm(xVblao_w@AMS3o zT94ZEkbWs^F#t{-T|jC5zL^OA;A+v7%as_Ap3AK|`^5C-H|6lf(V z1{UD*VO(f2miND#TRb4#smCA0Hh81LP*I{kUq?>ANFK0ib7zb}+I_r*Q91*~8K5v* z&l4J_hNy!~{C~H|aDMkq<5ThWmrPB0As@O-bXkk^_KVn*Dl-ajV)$^^dln`vpJ~MNP{Q-0x);mzID6u??7P6YoKOIXEuXR6BY%lcC3ho;?>fF`(|RY(J_{5H=FCC!*s25U zL>{Kl%`l$8H?P4z2c}X|+qoDIf1Xu@u3@Liqh1_uVmx1=#HOe^oGn~5TEH#?=fJrX zHc}?T$XR&oNg4(JH<-9kFSg=kT=#sabBdi%XUs+*(l;(3?GeHlKCSpXQRxaf<#(>< z=m2iI!5}F?x0GY{%2DlYSqW)vo0BO|VZ@jeaQ|8lSaV~XH`T$P5UD{ty@14gKgl4ealG z@yEkR>tTc|@ebicoT0TCApfMC3TQ(OT&%=Ykw@DP=z1>1Y#bnT=6~iK$@{t{g7@{0 zUcNj(>ApuZbyy9tGMVocQKF7xVlJuxg=ZIfKybh~T{$d-rE5X`aJUZ#>4YtI9aL;f ze}v%NpzrJKP+gg!#CF5J`O;)8SlMW+@iQDRc92NgW=Hx#zP~NuJ%!<>{K_W(vGL?n~@Qpvyp~I1ezUIr|7$5RfXUTv4g!AMDK{0w zZhl14rpRZw;#4{L}YblB@Ms}zb$-sGJxUWiDfE1NndttV!I zB@fNF1AvPfo(i$dfeL!8EfdFX`N!G1OG-ew>OU6I?jUOg^3x$^RatlOv&&4kyH+u{Oc88KdzlwGMl&%dqG~_d`G;Kq8y% zk@B)N!J<)7czkw@lV+pWEg5Bb;9SPD7Vg}5yno|97SL(3 z5;8~Tx0++CVQedm#=@_v3JuvNg!!fVqnC?j@5LlUP_|)vTiBb2UkrOT(-Jhyf%}Ft z=R$x@ejY1!j9b@xMxM3uo3&8S%dq4O~m{A@|ZqdlzJ`=?6WzfdDhLL36| zrXwZBqf0}-Oj;#Ev?WZYhqf+StxCV@?PX{$+@*-ArA`2o{LiR1&s#bF2dSf(e>G-+Y~1J+lw--=D98(0CC?O8E=ycv<%u>6 z$XR5-Juw=uFrb9 zeK)I`?egXt;6{-`o;EU;QD-6!TcU6@&Htf5Wbv-{2lr?av<%XlV%Pfybml!3Vq#oa z#}}tCLp}P;@7_qic3B`){5ZxYbmM2d!W7-2LSVN>cB$to&UV_7qA8Tg77}k!K(cel zN1;Sc@iObu=B0w{;h|(?)OVc+qlDM9m28F-=tgVE&fSXn8$c2+!4UXAV%}W6h6=_dvPycOkPHnfRKalfHF!b z%`=nWu0nBfla1v&Ro=Xy;PDEI?Rj|THKxFirF|~_{)z(ZyX9+ujFN|xST%=zP&ydqD1*NiG(I=h}k1ezHCgPIU^e{Z)Dwf(}&s2jXKAz zBEd2IJ=(21Ys;|4o5p3K#+lBx-L}_*>}L3XsOM#gkH7DX_ZcbcXEBbdAlO(AMZif= z3E`jY2Mr>Eod{6p4g?=%pmc>PrA%k?m1~N#=PJAQ%0WZ@^HAl3 z|GM;5y}`!&)JJ?a|AlBy=)P-+afSxwsT>a^N;BjTzRks{AagtSAbaLkqZmv;s0|nx z;_~{PM`a2E*Ko}VV38Q%> z@ZLRzE&Bjiu&FC-j{!`8IvWLnEC=d3`U&uMHZ96h{>8r!1u5=WZDUUR z4@r*UCzTl$+^_pyGOY$rN-C$M z*6H{%tPH}uh-^1X5jdHT~&UFkIBPZ>@;jkJvpr+sKHp@O~Q{Q?5Zd~W^ z8|RC3=!)v#Ixr(tM#m<{Tf&ZxA+~kJb?jB)8D_j_iZ*X)?RKa2UgD^s!)JvE;O*=d zyq;0=u=xCgy`ExBi8QQ4LftH(&0bcg_XiJ;HjsL zg0ZXh)YA^+y^_e`nOZZX6Mp%Ep{0~_)$eM`RD*ScaPa7+B6qytHP)uWfP!^Gb;N#i z%A@X4SL@|VSw*2)cEqEoivp69#!V0MgL)_R9ftjPMLH*@mJ}-6|GlRj-b~g?Z8W~9 z&sWTw_I0Ic%z&$y-RZbq-+4a%TTi$-g<~toy8nM_M#~uAWdwY_&u3_22E@+T*KUMw z@%-_LIy)aUCl&dA%x_4%sMzez*)@=2WG()wzbBp*LzOi<#X*(Cf0LboM}|jW`0_Qj92{>v`k%5>aEXZ-S@-xQFv%o zS!*RlRFfsccNG#nW{a+x(X>`>AoXW!Cr^P=f? z&+?)mIMy-VK*NHDh6}QRJ23oNn7<4@lOAT#A+rD7{PHQ)IPKk)TnwulTj``TR&u4j1q}*mz zalI#OnQu*ayYPYyTCGyONJYzF!n=fTW|3YpkDKM2Ex46-OiJ6}2+oMl+T=qk6VAn%syN5}vTk}o6{18wVp50;X8!k&_K$7d|L{RB z0JvO=g^x>(|9#>7SAgs9mFaZ@IN23W^_q_I!AI541?Vkcx7cT{mj#*Ke#29A6s0#J z3brn8Ia+$C%xq_I0hu}VUA}JF$qWgp78$CkNQkd0V5P$U#`(OcOlO2UezjGJlva3K zQWFs6OKdl=;ZJoXn14lwM;Sf6x3kf`p<&*B(o^FkQ2R^;x7@tet2MY~Ykl?C>gmBT zs>Nx#RKCp;Ul6kZo9J-f!ngN?v1>2ep*R=^i;kloZ6&nsVqL2mrolTFVN3+ACf246 zw;wJEERSX!z@p!C__eyPHj=0Ls+DDDWvaQT9iiJBFQ?`TAI$FbHz1%R>BuJJ?+Ti` zM!NEZ%nipR0U*kC@E2vx9JbV=C9@ajHU_*mO$pb&^ZIV1)U0VUv#2oXpA&M3mu5o1 z{BBqK{tpX~DdwAzwT!jO^WxBo;oTsH)a0Q#-+GE6oA1S!M`NYNP+i##-p;RA+UZi( znVDyRu0?dIq3tJ)>FMTz2E}-E4Fc{dq_VeuC%ZWMACH6CO zd%T-q2a%IVvwOE37~+wdOiXqe0K!3GIRZi;)+*6D=K4l#sS$t1d%Ee8_f0le3N`i8 z$G1rb1D{>_;3+9*1!p#wi@n5kWHUW6O|YmadsXyK`gjU?a3{e|JPW9Yt;O`Rlt_~77S4Aw-irklpAd>?IU}A0B$%sUP-jDqd+iSiN~Iq_uul!1l!Pgx}p$ z`L>;w_X1AEnZq`)FeFL2DN%duMOg&|8AfTbJ#|GHIqQITh|tBx0cJ0I+6EqJ*4d?3HxpEKGy_WNc7ac+7A!OpE;NDKKd5SVPnk(?=F~G zUK|(3D*i-}?#bkc+LX?~}2y5VYq#NxYnc!)NUF>m|Fi>rbPiRjxGbQY` zq0a0vEBM%JUvsCD6IC>c&wV50-O}=9(q=*;eL&hZb{D@L7oY2@;rw%R>x zyFOx_Ih|r4`rxB`WIl#|>l=J+n%nStDVe^koY>G$H-9;XM-u%C6_NGOMEdl-j7-CF z2{Lo*&o&qw8RK)gc+CCIo0q~4A5+CXtX%5viE3~u>l{}TJ`Z-Ze=+PPEUE$6sxZ_+ z(0sw97zOHy6msn5kQ|l-Y3`rB@n%5CRnomt;+DIKj7>8uipzrXbHf3?ye8*ffk`ER z7FSa;Xkv@p&$XX?$o%BQugKJGp=fbGtQ z$8jV8KU_7E%dR6U&3xlzcU142O_}X8INZl=)<~=L#dDKLx3QmP3sp>2oL0Dx*Nqv4 z=v1%6)6@##cVFdnA=gSQ=;PrRa&DK59zFy&3`ts{Avm1FNf zyjyyT0jmE(^ZiHvu-Uh!(2|IomGXL+tbO+k%o|F1`V^HCR65pfvm2Qpxa$mzP@p>qd0^EFyDaf^5 zMqpfG?s2WvL;No)|If;nkA)JrM6ja?9&5KsV-mhzF>u*$!#N-&cGh+*n({HDh{qhO%)FD6 z-SOSexOqN_lv}}7d#X?E)+#);^)ns?>~~zT(`nv^FIF4A+|ywCb6N)OlimwI#sz(- zmme$q-B4>#uL7Nim@Fi8?Iwh81g?KTh7r}`f)i&4S5lD;F01p-eSrQ#vO)8Ghsgk3 zuv+V0J=Y_!13IigvHA(jgrpP8Yn>-#o&1w?xBviOUu}C1QKG}r#^(8qEF{%6lo2L?*T-OtwZoD_f1x!sOn6odL*X*5JB_op)!dj$9kKrmJr z*xf?zhKCWypw<%<_^)HIfUmC*!F9S8N~i|>vBW|!ic&-#-P9E7e<^j+*LhAsk`%;K zt)?$c_gQ}6>euJ#KET1j^s5Uryx4soE$z=8;}~+FbGtlpoBSn7aYr#ZIHf?I&qtw% z|H8!7J>V6}>{3rV`SfoeDg7E;H5HkE9$A}}3KAX6rf7bh{2ihQd~5SN40s+n2qhVC zAO98$QFu0ZZz{Cf^F9KUD$VU2CwI8dK@}aWTrmyw%M*4lGMyZ7UU>@Qv}ilE=Wy22 z5};haNZDDL@1}kJ^tPGGygf2{c|9xerP5ss)zE??g`O8K_6HO!iyHclVXtI99ldvD znO>~&M}*NC%+CdgUN3DoEnP{o+(1|D--(FtiTv3ap2`5?I47Q`f3M1idj=i35n>RS zucAdE`GLe}Yjrz@160W~7B#b9q94xdxqWYYiNym?=*;U_unJ$=bhMEWIplxNJc>FX zjOK$agXuwg8?ON2V3rz&_wOQ`bTY1a!#JX;XQBnmlp#WVce^!s3G7#B>GH#mf{)5d zx{?0JQ-LDWi5;>F!ATY(!VR2yP zTv*~m4;CWCr0{tktasNW6uXFx4Hh|jV}y=1+6H&RsNMJLC?TDjEi@XPXEU56SPXw* zVc3vq9&VWi7*WK=Z{TZD@Rxb= zwdYb9n7B_{6be0i+Sa3_{J6Su4CREHj{hf+_^j7TemgIlC4f!9+r?P&R&t3y_ zxcY8hV?_-uz{XwfnV_zQU!nfx>N`;bg^Z^cv0@1}&qmk(L3XTjfcvt^N#QBL`ung? zNx>c-wj6eWBvqda>C5~$ZSUexoT<3m%C50ZrY^^EwzC{4cmmO2?fPpgGEFGLnz3k% z5efz`+7Q}HY&>v`<hCxk5i(EM_v^P$84x1g$c$MHIBYW&7M_%hLbTP9r6&_xRt# zAKJtyLb#)}2weBEytwGNt;;L78l>0p=vK{gPq;`@1J_`vq&y(eD!!vLWl_!Gk5&A! zmb6!~?+?(fc>Dt-9kRSE)cq66;b7{n#Q7;L42B%% z>2khzff3vb4z)Co$w-lRrMzc*-E68uQU$RH6Q(oiwjmHr)ET!=>gQgHDAy58)K3EB zteV?;r7_%4h|4o>-BCq7X#qC_r;vl3mqVGdSU3uO8qitS=RDKh4zFnR9#hS^#=c*9 zGiF0I-S^Vn8}h!()*UQWJf7h2?b2Q1`t8!e9X+QO7GveZJ4WgQDk-1S*WxG?#A-d} zBBNysttsPo)FNp(5v}#=&e6)}S@f7q4CM(~?m4F91|#jD3ojeS`N>hq$jm&GmYGy_ zRiNcq>H5pVa(?K#DS5V?6Zx?#f!U-CPNnc`=Gk5u_Zogmy3Zuh-$ixV zKYMF!xH!IvWzc;USmB;iZ$Nuos>90urJwXAj+el)9VbnG$rD)&DF&#SO6sdAvv0@O zA31Hd?GoY$V#fJh*Th-?{A0Y@(fY$iM+9AVC@SVlk!H3np0k;$&1W0!J-@0?d|Gva z4{HIGP~L*^3}I${@CcB^Oiezg1u+e*qGr^!n|f6nTwX0aMgP6>ly&4m&ZEE(o;ZR$ zV&5s@KL0u~)<~ZYf`e8`EM9x|)CAKIBpb4NJ5=P!5{`s5<_rV?X=4VxnH*jG!89wI zdQBKQep#l-33b=Pv%IQSPra8MNm==Uv5DiFf(sUK3Qhjf_>O@KW)f-DdpDoz0fA7Q z<5J3){xi#$712=f%~`8JZ%Pui-YEyl6{q+wXd_37-0e_4SeNTFuZGj+PkuIO!-LlE zPr=q&mGO#&UuDLs51ZMCo~shZN%!kJib_OL)ECfhH;>45c6Z^sZj{?@&C&VJyI_2Q z*f9RqLg9>l_Pd;L@$!W5!TIYX;Q}7NFK)lP2e1@cd>9_Rj~CYnOyF)l8y2A@q!Deq zp*s(1tL-AW#`zV|{A;xlBhcwA5LwBkg!0uGD#}--PyAj#B;(K?5T1>RiA==`R#~S! zPfEMK+}<4!`t171(M-0zT00Q#c1f(>$b+XW7SKOZi#t-#gjyAqj3pQPdlDGKZE47E zg{)K$QwY1RA&lua%x>V;Gehab-hR=Yms*sD8RnYJNBDbJtP!b=k3Y#-@99U>Jz{iRK2DkFtF1 zVaq}b%cm=E+YN=UkR+sgf_J2x(ofD}F&*Te+P%08BF1w@L#YdM@cXIr!7=wZ_Oml% zDY~$>r)sf$3PqLn$8w^R1I&*`DO;wFEk8m8Pq+%S-GH16Jom_9i^g}p^5ArW-l#dPiL2I$}IKWKIg zbY7>kV-_W(+x^>{56yniHEKLEiMzaQ=zQ$X0Ev8ZB-Y~VUO{+o2LNyy05TEwwWub<+p zL|YRh&cO9y3u*(m?(1)Oop-L`Nd7#L|Jrx(-4ta-W9j06$G2utq=&G^RP4NE`(8NH_aSuay}{%?)48lu~RaZcIaPnab|JiJ7u zUutTE-%wqP5#W8Xd1}iQD@LeJQQ@)Y z+T>9lFVxwp3lu9JojK#SgM!Wqwo%pL-c{(5B6{BGVy{VXkw(JXk|fj{kzwW{g%t+L zLe(zi&aM0(s|)mN-$!6Tdg_1}n@C5_@?GvVStD>&Dv+ zFd9kq21YYP%~GG~n~^>C4u3O$wNsBx!h?%(8@m0+fQDGDv6j5#6*WxlSHm?(=X& z%slWxiPVIS)|)5 zb64;#7<2@?$iGwxC3Jp`Yq9>S3%!A*- zH0O&1&;9rMxnjb>&sD_1N>8QQ>18K~jpw;!SGM{+)$3?WKd8%PZ99}vvFu(0Qc$r* z@L?#Cv~#J(qkB_!!ge&h*L2b5;RnkvG)?9ogY;^a**?;JCKELflzs8-@pQI@<#+wVr||8s3u4W0wY8TkC*Csqeg#5Q&q- zL!5m+lo?(DH?9{8=wq)w;4P0WP57J4%vxyuR7QcZ<7%bUV~u>>7LE}sQPKj}Zcw4g zbK;mK54f3SJoKFW6%dVfg%;r;@2)P&`pxF;4}0#E42e$Zu-WWKXboXt;nw|OT!Z@V z9bb~ACgh9OtEVZJG-7*peea$!zwj)>y1ac#KzG65x|;?xC1i)E<+MWJ1QJU^O1>)cPaZ=GGKI`uc} zTfwL>NDyn+)=`h&uv)44hbGGahFvT%8}HZm?4~ozTgj}#fRS3-Yaqs|juzoYdT=lq z*ndVOLk@(GL9W&nLW0WBV9fcs#Dv_V@3qM7JW5Ww2VUWu6chR75JpKKf53ySXVIWc z5GqSUQ~m8QCmB4za4T&baN?mJfuYIK*&6Q@U@VgoAR#6#g&ao+#tJkXH(T-QdTq>K zjvE_CxbB$^I40z@iZplfI7u`7xU_<2zV%<9dd);`AhX*~t8gFX5~GrDb97T`j6*FK zSjYETu1XX$^hK9-PzQWuaT}yr*>uu6%^7nr!1Ok|u{CK%dxG>97O^KfLE?gA zQZilf3+t03p%4&x9Va|h=rO_Slh_W2dleRQ-8QnQv+3|TS}QJj{!={GDgxzLt>RG1 zL=ZGJ9}!CJ<`uL))=jw}hfSrKpXs8;_oJcw_iCx4`n@z>aT3L&5Bv{X_g(}Ubv5$0 z_B|Nyz4T3_rh~Zw9Sp%wU^$mdj2|$pApDy?nPrdh6|Fc{k1g%)e11DoyMuRCMw?VF zxYr@n{8TmH+)dYn*?zTkWaXwJK*GI*|tUW)KTkW?{wLj%Lx7eTUV?M&Fv6Q_b z651r(0spPf|F~5T=cu1}`bI0PPU56d>tVd4dl-dl>AWWTq5LTwga)%~{HDUSNt^)X za!~IC)cdC}q5`+x74scM5{dcPr%V_-jL2r7M3mXeU%%2yy{~NP^P|fHT%HX01<{*4 ziU(IRnm=1?Ef4Ui{H=+~02Ov^sg9aKy|IJhVoa*P=8i#$YJX_rNf0M%WQrI#XTmEkzAdDY9P*SQ~8#zW(DY+Qr=0F^BT_)+jq&w9ywK%HQJKC^TH@}Rt7M$U1q~KkfVd~-6%e`@P6)Jf)yYYNbsl@l*|8gvq z5wUntyawqBiJ&)yk%(05X6de%Kv=r5MMku%+9+sDB98C90L?*PS07y8a5@~CIz*LN zQIl5#$6jx~{Z-2fn7sk#o|KQ$nkp>XblpKe~^k(k*t@>f4y0L`!iqLjI`0yz>geA7k|Ga0;rt0cfi5 z^UTrp3GxtY1#^ZokoOwb5w@>AMdX!ck)*z{|z)V`l7HHuW>e`}#`y4=AA`*+>F7};-$)C>%(>kZQ=)F#o_(aIXA$}|W&+0qS^u7KC=An7+B$pDhAm8yV(K=o zkZ0;<_JwjwW}|O@i% zxs`R1Jb3qABhY<7#XZ(QRgRPev14PP(CMKbA-EoI^gx;c>0*G~o+ya&`hBMm`QSZK zno3Xtv0k3xn#Gw9%Xl@p)0K?;o8d>&PgW}lH@a1^-Q2|)V*H>N;!%>~UxYk^1K&O` ze`p|OG=aQvm|d@?krL_kEo?e(fS7kGB_}?N=ffO0omTzaRxMO_(*p;eqV5#KL_EJ4 ztNJ4|&XVMl2qg0UgHor1`nXst|Ag<4t!fMFnN)be(_4;Doutw)lE2T_Y7wl+XvZey z6xJW{A6ahpQ+ftnoJpH6YVAuw+lkW5zk3bpljoG;_4*^bzCKjDwYan|5mxz`Y;7ss z?*1i1^W=LT^%;SrWURv}qeCx$#y`>{fQQEgRw5n?MUoEtZ^Q`i`oAlw%s!LZH+^WK zSPUy+Bsy+c!aP~0HIM0Gnr0hyOuXIxBfjIY35NY%Ckmh9{}uo9r%x+5g09`I- z0GIx^0HB}pt&WbPdQfl6Q`W;zY~|Il#{(_|ma}ic&Ta;610EM#H=na6(l*`R$;%yP z9(HTujD*#}TZ$v11kXfooE!U(bx%O--j!LB;6xhx=IG{w8!-GAYK9yG5Lo}q-w%Op z1NeG3`>1r31JfAO6WdCyH3?Hj$H5g-QsO;Yrb;|JjNVnRu+-* zJwFo}7k}9=k;Y&asFx1U=*P8aw4wH<-7&wf2RAMm)dKiJk)~sZ0^9(E`IF(!#7CA;#6&{+0eUvnS7HcC{0{>Rn3f` zR@(wna9Jb%+dI8c%#nX(24o5&-0Mmu{uIDKQ+F>fsMg-#Zx{6CrMe%_6}9@<%VK!- zq@$zZH_0z_8SB&0YgV_dSwHfaSCe-;A36l1wA-4=iB&1*-uA^4=^mkTVUmn{1$1H; zM2iUV@Ow3>1aao{@Y<|?TO5bg5*&AQbIrI7KrQQ?dh4BHW4I~2T~YX3*sb49CHxQ8 z^P3Nw-a%NBvSHb}L-d`F0%ky%6Ql;u{ofnZexwIV@cmgC0~L7G$e>fHg-M{g zL~eH4RqG^D8iIkZX)41>X!rO=x4u&o%|URQMa<;6SO3{IgR?`O%CI-T;QAQd>aW{1WMiGdnsroEF68XQn24B>#$LXyT=5XhMDpMIc|t`$3|A)WB7bav(MW)wPo9Qi48 zRD-|LNj1{hCjeEvlvY{kV^bypY)po9F!HBOL7z0oOKewuYqqtwdM58bIu463aYOP3 zONlU5>?MTMm|O*$t?K1Tm~95DB3i^5#SP;c`8Yt7VUV2t7gW1viq_%$bnNOzQ-dRx zY%zB1hN9Bz8=#*$y9Da?&qUs5#ixymxlutF5=8`gUFxMuUwO>P3U?YneT+X3vMFf> z#RF_00hZ}QW+3Fj?=hkCzY{**pjgKuPqx{UWzZhi@`A}7&@CYg<8x`$FC{J*G!ozx zYWbJy$rh}u_@$2FiTu2r);HNQ<=U$JBA2of0hrxygevMC|HZwYs{CX{pW6(w?$eCB z?s;FCVX9r)37Re`+~DQ&U_b5lVT@ZiYdHto>Ga*>pu8pH?Qo9tp+Q9_&Y5R2S8>f^ z^(q+>R5>(LguF0Z_=nm1KjzCJ`W1u_83RHTxO-3jza>{~`)a-gO&^nsbQCm*n3`k{ zWaCX{3j6SngQc}sH=?xc_D@qye#{0u^9c^=)gUj3EJhl10GR!YhC+85uQFpUcH7-~ zxgL_2Ai7y7sd2QC+h;Abqb2(@>9p>b9mc1QQ*$c3Iu!Cjqt@OH&t+?7)l5(*%AQQO zD7YkGN8HyDcw^STVEr+$foj^1B7n0B&rbQGhB6&^i=~_~-T-M%&tBa}1%d;^c<&D* zcr{3R_F6bD)VH*9p3QV){_HJPqe4r5%6(^NzNxL|6bl!ZkviC9gJ!sKz*ieZp16j4 zFCN8qq#@0F+&QHw263#l)`#eP%R{_Y@ z*2dW^i!&U&4X-GnU_z&%*3RG3ZHW#w@S$cXQ}E2O8B?Lb*tpc>yVNQAv}KedDAbb? z^@4{5l49BM(9VJm=Y2+Rm$8M4=*OOvAz7z$`TnYg#sWsl=xbB_QCHUiaEoc-j%i=r z9wuZ(=TLi=Wxugm{Vs$j8Q#>VO!3=_*5@VaL${|L9`O*~E5~|j<;}hTc*G`XXBuN5A zwC~gbQO2yPR(+=g+Bm(J31q^6z@9(@ZOZf(e}q1zY$4REhPLu{=KBjTRTmnU6Rl*O z$xe2gb&midS?w7<*mT9E~dYwM@7yV0Ndd~NSaEQi=Wlhgm z#e8`NLBemLyf3ZOEZt0Tl~60U0F$&9FGJE^d!Y}_uS;9LKn6lwFHW00Kg1GJ>&M>L z{ixkbpj8{;Hy#_^f001_P+4&9_MSM9rm#>uMB}H^U@I@^k_^L0ebL#5Yj}cp__K{M zpFoF}#XFn6%6aRMjuRMW52Zr!IGLkKnE-~rEfQ%@hPuLxFJ1?hG4Fd#nh$$9rQh$) zO`nXyC@UA%pX6a%w%o0^FZ_7zQ-euu7sYBZXcP5 zNZlt z=?=Hhv<>4-8>H)&(&HW4f>wpsJr~*h;ZcJQKd*;6#}=xr^QOqXO38oV$DY6+-Qz!u8y0heko1(it3p(dwu8@`a;2=CY0gKUjQHc$4}4p|E8@3jFVfdyEZx(sX*qE{ z_@V#gg5(U;c-`LDFICV6XVEoKmRy6Z>!R-Bn7h|%tSvNP1JjPB>@FqeFZIt2g8~m7 ze>%Iz$Buj~8m=I}owaSA3p{zet{Z2fTz{-1)8f$6$my(@o?p(tmSW^y&B;Xl+5yriv+H0>Z75k5|l(=5)B6FjUi{WzSZ!2bu*+k4Z zO}fE^-KKi86Q+PzDw|0&o%XcsWwL!t0%02a({o19<&)I3s`?S@l-kX&zr^U)Hfe5O z700vQQs4As?2~exhv=J{-d5#r(y9$isHXo|Va8hHcpcWJN**-lv^b}yfICc}?U*6Gp3$t)vHjAbQN@hX zdXE=B-F824)@l2x7-Ksc%wTw;2P3OLD6Xwue{4d29SdP|A$u4dZ)_#ouVVIEU1P3n z0Q$?%xsjt1LrqX}lkwy|kH@t z7zE6{b%!)|E5#L*EVn|z~9j0%hEN`^aG)6LgD2yV~=co_;m>-m%;4bG@flk zr|~iSqvxOrCaqdCo}Wbny7G97&nzFI2@bF%6df_L#hwVomrQl}|~QUBQ#DEJWNQ-jg? z!u$Awbom3cP+&n>^wZ%*#WL*3uyb(0It#BFEM*MPZjlr={LOJ=8%mr-Xrpv*JAm_i zj`}Qs5Kx^SD-Qf=@R8f>s7C0e)O=n%1F%K-j%j~d>_dagw3pGY#Q!<*ata{q&>1h_ zwVzD+Yfyy_yI=iNAjYnKL38V z!u{TRI4Lq3N}5Z2sfH9rYnUL zM19HdIa!6ul@7MH+uY1VzjW|HcXs|MAK}hspCeD&xQ%ul z)1o)r5DPzs?~a~|H%w%OEeW>v>|GJ$lygZK30X@EnO~F(BgHm4?okR0e#}BsVabvRUi9K4JdlE!0 zpkYI|7_n>ima19HF^|TT;cwnu_9xI?!L zY)EbI-*Mr#m56Cm1I4BZ5P*K8`U}TJfkZ04VcXvK05+kOq>y(=@>FO|NE}WEoO@S! zq&I@=&`%NsNB6SC)SuW|AGgx5v1kzi*hljl1jnfBruugVK#blcIivo$tT!r9&vqtj z+Kb!*r~>Xvm9}>d-=!O}nbYIvgl{r=+p^z%c>2`WkDb`!Z4pY}5JRraW8Yf7OPaX5 zb1+_X*Xzu8l2108b{T)FDAIoMc!@fXuAHZTF*Frvd&T`=qIFyBi;R*v^BeoPha1hN z{_-TB+j>JDaM=NTEm4=xc-4&smgTGh4@cQN^-vkz?Jxs}cZcgk1>5@pV4)&9b{)t~fVo}HdJQ{Ufvi+c`W-))5#*lTw zaQRC?4Q=K{&)4X|=f}Z;+*pFVx5!OL%D94yOB8Z?obBTdzsfXa5$~bxf4m2`g@tG% zSm|?HKo{Vr-Hi5d$+HM02VZ}ahIf<;(lO7ov@P~Z_(=TWgTBXtT$&in{eqrH_2Wt& z_zy<8KU{}c@xDa9jp!zSIdGMjVfFhmZ&=VqM(JHf3+IJHUX++21g3vE%cH7(93?); zAH?fpF3Xn z4sxeEOK#j1mjjztg4(+im@Q3U_YBJV8j+-mXbu25C~E9b1P297qVsuu}!W*%-aw2H$(-I%7l{nHFvY5qUe+%+~-9v;o+giK-9^^qQn8jQWDKK?kF>j8QSa z*Fgu0Yjr1Xn{1R}xu*ROAE8paDL)Wyc`SG;#>|cRsoOoD2R6a1cEFtYV(JZgd7@kT zge={u$lV0S#Q9-m{N2pcGpJ7F^F&2A^@DK6&-f^MI*k+2sQ*w)EWh;>0sLhliWit) zgb)DdDH)hz=*bq(on?^9ulq$C)Tmn`jPM;sK=5Pcp|ojM=Gsm(Kd@c=zYS%% zx9lj>+|9@7NB#qRAfVFmYR+Q<_SzD=>~ICz*u)cE^@^&;*s z={*Fnc-G~5dm3g?Uivy+1}!z{KG%sNjl;uLhM5qE4r6XU6{$vV5z*BTrfStW63^=` z2*R*B)C_ZnwqE#G(oE!e?m5s~rl)UO5>QUddm6lt)4yDK=bUuZ$~uuE5p6U5J;)#V zK{}}_CJq6I@Gs_|3*St8793d4mK*bk$MJk9y8u&%J!T10(|7;3=lw8{O@8-Kv>uQR zUC!0fA_#I3j|ah#{DJ+~Y;*2=SA><)|1~WHuXiyLxHqZ4tnj># zQ_WQTf}Prv>ThEzAzEb1Bgi8_JxmYA+P!qqd8_Vyij0WRbX(W(Lu?oj@4?AMAo@k) zx3&`h^=9|}l?T7((qt^vy>GiwF)*H(je`U7GCqRaXES^z{n9x0pW&!lK}4^$h(LMH z3==iq?H|<>>fBx_8_h5#t&eEHMG|?tKt7S8=iJB#=9*2)4_8*?vQOZnzwkk=U)wq_ z?9`B2jkEB5Vneop@UM#e%S%ZLN}m-gM>O0U8|>Q_i2~1{m2kG*b0~bv`buw!`t{nZ-Tgh+r?EcFp5+THz9j z`uq6EIi2WV*$yRz-HY*qMM|H~ZB?+S-@#c~>h2%ZZ?Os=TbUv~1Y*BjN*#`e&`?#d zmlz-fJFIfI-R9r!wwkZ|!uaZ_ye~umEXf}~SUA_0t4lLjq6{rI)Ukh6+kbuH^{0bI z#_8HAGCSc-9UjLhaM6K{iK}V4VQ&SkWE7glu=I66BJx>hyguUb-Ngc9 zI+N_5&@Y?W_ut@&8Z2%0YTU6`fc`Oo^}#<=-;LUzC5J8wF}4sX*Si9sJZUk*V3bE= zqd(p-DEP{)@CR+l2B>@^iuf5t^x%qVmrMV={8xnvioxY176_4#T_(s1kO%*-!Ik#9 zU!T-(apE;S^XN0pI0X^w6nb^(7h2Dea`8sY6WySAjFjX9;R=_{E~y+10M(t{LgM-D z0k)k=*66b8uMeVGybHD`y)>3kvn+?o9|PvNGukIa75(`Eb=#v`wh=16#4lbgzw$lb zOn%Cw<%=V1e-+sJ+miVL4a#x~qO|4hf8*vcKyFAX&lp;}J4sbc4Mlvo z|60NofbS3DrugHk>o+U)iVcBQ?17Lm2lygN`ivo7Po=%>t$ijhQ&=J;hgCz0t1V27 zRPF&!Pzx};mih3#Zu=$WGH-w2@?Xk7>#)Y`FEHt!wR!R8g^by^H?NpNLQH#=Pk8cf z$*xl|Q@8=OI98b6g}35;qMkDLK#oJ6_u4s*s&A_ZU5%PDeOtp}G1RJvNcc9@wV1&5 zZiofTv-T$$_C2}Zu@c=(?soc`ZS_y|-`Uouw*fVw4zo+M;Dk%#jYO)-x=K-6MoQ@- z@kYbY(y)C3UFEi$#)}S~Ynkg@1y!Ge$!)E1hhp=)o!Q>if3SeIG=!&U0|gNM@pphw zAcI;*O%UN#Kpgs^*sndLh8Tec64E4ZeY-p_g#Ln(4#uCepli%(Oh{Q&!SMiahqO8I zAcieaqkMh{UP@1&@@Ac?cv)}@E=T!KdsY4mMD-1>n4Ch)^ZeGo$tq#$dIp!ZTy)}d z35C1|#dmP$jek2$tG3t3XwNL@HITatB9eT7%Ta5Ue5rSfkSJF7`d#_AUV_Qb4l6rT zY(hW2X8g~I%zgtELs{dqzb3YBLc!~`hUWi1E|B<>M;feQ#JNt*%KTcMGLVcII5u4C zh$_NqUKm0B3zw8L{O4%-9)Cas(g|`94o*xZw<4JaJm94MVT6FE&Lp$&m2Uqh-Q}P4 zX_4%P>KiU8y-yt|VM=qaL+`LW#?O9irNay2mar27F78cfNSEshK zpoY`|r|TGjmAo%=704x)*0x}6=rISINMXN_F;>c7PUU7ucVzU)`Q6J~KES0uU&79gyM!ZeC>#Rdzp+N3apUK-2(q)MZy{VJK!VQC09rho=)T`06 z=bKK-9gMlDt8U`m|6S%&|GUgjDE*}R3Q|&D1#;Qj6l3rlVP0de`EV4r2C~#z)Yr(f z$sp}1*N#yvi!Nec%Y{Fq_7-B#P^1q+Q(qHdJF(IpUw`>;bl<72J&!+AJ&$WEmGPK9 zmc9O=aU#19ZX0SOuI|&yw_{g7d~_7j+^&`~_{G>A2AvZHX2VS0sMma!-a4L4yXSfc zcZtXD>bp{9!+_eI9_n`H$RnU1n|!EX6UXG{m$Jxt>9$WI5NPkx!FiTizqq*ln-i3K zOGz&1fItpP|EGr>|0~dP*$|c<3KeWkQ&axvJ*?Q+-xWlWJSv`E+HUVMQlpbV>7X6& zSxnze*+E~1ML6Y?BFadeyo-{hzmFqCJWksA+knkdAT{ZWR}p5m6sW-;YP;rI0d?*{xOn(S`8mNUmX%?^#tAg z?lh=g@c$=Fwo$FN<=4?w4)7IU@la1w{MXRcK`9JbkMgI353MI*jDPBl_8q5Ug!nvr zV~{00(;!|{uDbkW@-)c>oud6gOa-QdD*vI-Gm)GFDJn`)5mQoL*`WMSM(FS+oiTGsvAh_4!|gf@8pJhQ8i6!@>N_5b7+0fZy8mH_v3e|E7t^Dle)f0sf3 zOkV#*tKy<00gOppEu<`ioP;%szGqQ(KwKB4?)O4)&Cu2oj&R%&8b;0tFGr1;JWX1R zOit(wRG~4u;WdmVCds`*1cvzyJHoX52G&Nq?)t^J zp*1ZQkFv4FN18%chvJrcfO_qKwOH}F!3|(}PzxSeV#AYT`9}-jB@->D|F+8DC5g_R z)^@=*@{^IE50cwjpOxMop~&-jys5xkV-#OqXbi9~vM7QdHTG_t(Me#A-{~G`<%oAz z??j|{HpL>%i=@8f?#_Lk*xNT#dW6;BT0iR@K{6=&pjag1dO#=~Y<`zoPQh`8Gs5n4 z2ymW#1tBqUQ&cT*wqK`D81;oMl;(*VSvXV&#y@pjsHe%_?Sq4%6!_dRhdO489( zZ8uHToRgor3vw-*&rMZWPJW5uN=kh%HN~ZJ>R`L1G&%gTKwDAk*gBi(zB4CzG(-C^ z^^k(3aXvf04#v>hcjD>x^9>q$z-i7v0w;uzpi%JqU~tZMQAjO!go_P>i*0u6eZgl6 zFe8v|eeA*KW=}}enrUIY?)*+tC#jP|bnbh?5Ot~NUjH3X95o;*38?(id}}&nZ@mO1nZzM9;j*yVB;h3{}=*oA^j#d+l)~ImTppnw#>^}{C z6U0xg{cSdnbBA^U<)>IRU1iAIRi{_1?@hlRH5@!m98t(ge_D3@dq9MD@zi;w#fR$Y z=FRM)NaHO7kJw)FhgT3@+i_6tiNw|U-aCyuNzL^f;=-VGDK1T_!ouh$mBqWH`qX*7 zw0Cl3*-(K4*;v*&mbn6Q4N? zBl?p0%IPG_NHFxS;Gk!`AY5-iRFqIA8YEP+ivkW}sG_VkkeZ*a)dZ{+yx2zTwc3M& zv~4M34#S^U8pK{5t@TBMqD^OuH3+`!57gJEGHpbDi`O>zL0k_xyV>)3_Y+kpL#PQL zC)IRF6lstjhu>nR?|)Ru_*rVxSw-n=o!j2Y{p#t|ekw#|X6zeo&3!e`FRR3nEL1WY zciQ&$-N_(cr7Y8M4SoN>u>j+?Ty=XYS-&9fYZqqa7$jnv$4EU zkwo^Tlga6fMC+iZoef=&8+YgtI@uuP|@vI*$ zqaR_I(!?nHxd7`Wsn)J6kea!&Kev!9Q0d3=@tNLk$D@1leZ%%3Q95B~*jtpmjIH_} zYVFmU1a}e=ym7TFRMbWP9Pe|C%#*=n#8qW!ceY`ZefarK^yq`VP!tP{z3rESw9~4^ zxAq@N9YW%tA#yfDp?!*EaDr;MAx(tKQ`l#(ub44@Xe0yonWs*vhW&|iq|K4iB9Qgx zW|ogUY+NiVXTIN}kr7c8!Ig~(JfZ*sE2UZCiV&-VT(zHC$(rRj()2=Z=U?UyzGA$w}&Op>2wOxsDE;at(rxZ+Jx z2RzuWXeWxF2kSt3l@8LKr`>8a18Q~g$9W1FsY~7i?*q?r35!u8hiB$dzohs08CTTn ze!jI-5A3$65d+UayPA}LL3HEd@)>Hsf*wlNuy2oP73NJ{U@=qcK4^C)6VQwQg0J*B zF324oUMzZVX_F9hjieO*sVG+Ve72HPbMbI!a9zJVeQ3B*FuSkaXF@bvQ{tzZVJ9+k zF6=GU;N6CvmuNF;+;v=X5WndLG&NhYaMU6ZvfOVbIE`P~c!->gG!Dq4cukG>Cxmu1 z<}mC_8to621gP3H|H;=L$4naPwqrJz6n_%Dea6zZT^%yOi z9|c<-ACs4j%b(8OV$Ecj8>oIgBz7y$mf!^;kKj@e&tyl=J11actvrrE_elC}qo=rd zq+XFS4@tP)xEti$b`0)O5|oV6sFdubs987J7y&tQnI-o zSuCjyBvhW+C_UGt@toV#9{O6AHh+o(Cg~?ZA!cPlU;y6D%RQy;?3TMzke9G9c2n^6>*#p>QGr_z@Z~;D80MsDS zB2~zFpg;yT#aAz_14Q^V1AQgh>v)@P>SF%axM1mydB98!q1V(6K>VEaHki}^l64UO z93HkO!vz$y2m)v=yda4LvDc=^5W>!*2ii=yRHv2xY*!BcG*c|(BVb|gMpGIIFhMsU zA_A0gz)s$|A3&9Y#HwvN0YlZv;lU5U5&slH<3$@Eyb(8R<9WuN8VBg}ht&=KQiyec zGz@`IhXa+v<$gL)w%~#J%n*4xlWb&&UlN&rWD3DXgHeQF{W20G@WLt2KU88fMcqSA z1Tz`%YVRenrL*s0ZEV^rjz6}9wjqBY9aMb8P0R@aw~n}sMO?lMu@SgMX~L;dfIOg3 z+)gAzuoQ?}J}In^qxoNM`K2lz9@0Hzql!Q6Oa#r?geTJ5i2cuS&X)spu#?Qn9=(5n z-R2n;r=h>~HtIT)a%AtV?=#N0{7v&Rf5%#`zh*S|wp*u083{M6!}sCr9v)1!sn zwXH|Q;oGKvShhBfMl#?03ltqXRy~%iY_>rI(k!d7floMU!e_?!SjT3CL zfc8sx?E2JK3_93@N4`w?e7)nv@p4y9H^~1G!VBU_Q~vw3%eGY<7(@`~;S=^Cm+J>y z1{{nuLM=Pm+B=a?_S${Z1xuSf$@IHf&@LfCjfaMBa**GTAgMP-ha7MAuNudt@S>3Z zhzTNoL8=hHN|uZy;Jsj=)`=qKitQ%ibH^$?Sb`PW{RUsWAllFjd{X z>oqCR#r4bIyHBW{5AA+BEWJTJ*zWG&x0h=?|NVRH(Ua&KI^P(+H@m9Cukqs_U93n_ z{~{=@y6Ec!RateuS;a-l##`8B^6D`1)Ot=1k!WsR?Km8 zKs5}mz{P*84_FxrFokZCNM6Z|?rjp0% zmdMHsN!LL@^yY>Z=STbCOE~HuecCb9diEhAd7y9kR%$XYjY+fUOSZF&*&3AsPWQkV zjge4QvR>LWRBoGF{5b)Zjx>Fcu4k>mT&k$O%J*ucLtUe(LpFuay#>mb8{bXq{fi6F zE>2y;vcEbS`EuIH`3nN?Bc5ycpt%XsV6qs(1A9fTev8Ic#h{A|U_k2fd44hQ3tx2p zWjN7keg6bN_~YQAcjL9s#H~F)2ks8zP;}GINm!!^ToQIg$g#dTgPN-gzzZq2TP@}Q z%5`A1xHNOB`{nujjh{>)-bGs-0B_BLv{@uHZd` z{G`XTJE&u9whGQNHpf|E0abhsR$C;!j-+4;`ftSASUh@D^;@{VGuJ+m!0l%l4Lh^H z$9_EBSh6vet12EU`5QBw=5>bOgulP)zY3T}7Cd#9hu&bv!f4#w`#=(}%Tv@#3W4+> z%SZ(T^X}F7VYx$Fn5aR1UJnb(>T^XNDB8J>&LZGGNsuG@@ zeD?)lAn70!VhnP?H`6&Wz8=%LYC@R`n2)uG+w5>h&PLTK4auad7z6;8Ucc=4_p1Zk zl)75Z9lO!AuXZq}kuCbN+Hs^Bd?Ie5M1T|#+%;A4MZEpjRq`0>%QoC>SbxnIuBA|_ zJy+3${9D&CykSMwb#TUG4YAG&N|gSI-79~LK5E(x8%a$sl%X5UafOjWWIellL^Ccj zOBn+GB&f&7d#L=gm6PMyZSL5e5{vf7mwgwVyK;eU2#EKk^J6*rgr1v^HHMq1XtP_o zVD;EAOJA}KQ@En{I^XH<_8>7%gJIVnZEZR~?&I}eVdOJu%N;`nAF9cm4tFT-{CmAo zI?~H;5z95arJn2tv@67#6%1eMn23TwXGlK|?HbWR*Y_$gnWF* zK=DH=+NB-35P@MZC>h@;5L3&I`K2R~FXs8|5a*u~V62+{w%Zc~PHjNMXnC)q%5y@8;BZN+xBY5D^m$b5T{prL63Q z_9)=2ORdJj^gpx3agQV1&XE%|(Zv2|Vea1>FjD>Om!pNuu01gF-10qj0Z-2deFXVM z2-T()VEuY$hCXcC)L=g=0M}pMkT=R@y-wY4&MMtq&n-IWpi)+|1D*bLO9Ha-d2^KQ z58PFMf@p}oG_;#*C0l8$C)bC8Xj8Gz&rcEK6SPz%9p_Rzk1;}gzHVKDb9fnya|+(w zH0(kS%BY{X1sbU5~R%Xp*V6C_6m9{y1ZoV)g(ue!bth=Dw`6c%4{x z_mfcN@b)^pv#vc1LX{*T_n(ZwMEgmp0r3$we43s*H`E9c8p;JySSehZ4Jv@7in^Fx zm{$@jKVDo4>d^W4+4Rh@kJ4Jw0dDKtp1YTRt>;ZAthOFgwP%=NXVsU&Fyn(;CWKNa8`(=)X&$` z%MgRXN;Y65*rHcly=vZ&b3<1|qLorGlxI?&^xM+N0x3he;HRNrqQs}hof zS?g(KE_v&#$R{^+x#yA5R$Ae=t6elK0gm=t3i{v zX!yWC-?2O@G@>XvQZ|1O4^^m_b{^=+OYnR2N$}>eSN!4oQUjP8+JglEwlOj)Pkf}J zgQEnxi40IyrBPO4lg^*{ko0_yv)S7zqdE-6aVi|VNBz{%jN<3uzK5LStTTu?$KX06 zsc{vb!#Q6H1PUVoT@Zhm%5_knW~S>vU>XkLY9D zMBXu-`wL|>eH}ePG-=A``IOX)e~vMkRHF5@_AbB)saAjs8U_BtT;h(QBxP`9x2N`x zOTA2dX17wmM+I@7q)r9fDrWi(Uw+~NUkf37bKJ_niFMeZzM`wG(}~lnp!vz}1&pKY zS!u|~2gHV{%4J=owVny>_e8evZuMm-_uE}?KY-$k>s=vC^dJF3?AL%8L*0g-pBtd( zUj@{MVs~A#nCVf*=J&Q^vHPx$lM<%&n?Xx-YZn@ZCzTJ7Yjlc8x#Gm|Xu|HFe-S5{ z&l4(O%!YHC6*hD}LKrVGh@mj`hbYNe#Y|jB=1wDJPS~LYm>h*w37k8Wk5xaVavibI zGkF>%DhGfkr=x`>GrgI{cy;^qaWNe&EBN{>-2Lm?N;4Wg)uaqWn)OW?ym>(CDh8D{ z#j_*pG$+-wW5DjE1FrvFD|#OA1f4!weCoi;r@?SG4V{>{NhUMF6dF)6!L`w%X1eFZ zH%fHdisk57Ip<~3ECRKGfW2e@ivFWaPi`pkoMsF8oit{ z-jGKu!&eYMbSftvyPf4*m_Tl+=lL!V*orV&lq?eGMq?3OtrIK(i{W88|FQp`o7|mE|Nl zjYS2z>D!y^B+TT_yLCHIpy5rIC5kCeV{D=TG$?vo?&~Jl9xhWz23$m|X=-%3>vJAO zt=tYt4L$)}dkug>?x<`FXBYvS8@{M|&;a7YKkweLOs{V0wfoY_R6iB?_}eRdM@b<{ zL;UEXKNI6hKnJLnTsL?d)xC!8eC6brKX%OYU3)Qlx-6^t>DU|f_A;F@He)SPHfF2E zBk!2b(#|sy*LWGL*Mr!dkDk>~J>7RLaY{#hdOIH)-tDx;+MVdCzDAmnHK_79-B!i6 zr8f*$x2JOrO0oQnbQb@KbR$gpjK#xmkq)6ysll!ne4I*DYNg~x zH)D7AYz}`nX-w%?B}e6H<|0_P@E@)}c6Tqs%3Jg@eafCicOh$G7T>+v32aJhFv?Ua zitqqkS|fS$#06W)-sL4 zZyv8Dkgw$5{4fS^5^bc;f+R%Wvoo}jpRC@=9ea|B6EEeqWJe+o0|P}O9t6|YYi$P= zoU2||X(i|iFb%%yX@Kr&SI`09X8+7uH^F*N~gEhN5H)I}s z-Qb4v-_)PTp~G)_OGdY2XcW&?simC`>1%c71zjUAD5Y>MvrZmxGWuLK_kK8mw;QEL z-b}4DU~N)U60F@6!9Ig%vdvH+<+m|T^l&?fLLvQX2U-vTQoN?){2wjXmRE3tq@>e0 zu=36CZ1}7{!zs}m9t`EN-*xL#0her=0~8RlB46_iS5w|ZQoY@l(3M7$l42}j{_xWlvy&n> zflw^cM9iY+nsU#ID*G}f6{kp=`lB3i&sNqD6|Xttr<2z2FlSPBFAXiv@=J9w-aq5> z*gc_NamftmRezth2+|1qa!JdKIAQP&C|K7IY9cTg$pV9kKlZ@W_~E(E?t-vtWa@p`-UxblsOv zp~58arl{FxnKaGs_-c5)UkNG|yLCKdpfA&!v2^vRtq{lB(pLh$bu82nyg2DP986ri zP#g<#+$)DqQ?iFeRT%mPkE?=r=DcN2b?;Q#IpjXa;N8Sj?j}tN^`5H%*eYVt1G(u> z`;{1f7RZ$e))e9>zkHy{H+PBCWy!<#aO0MoTE6bA5%vfUUEX%dxPXf<-`r>F zPODl0s9?5*gy>$UMe5~smM}`S|EzqJ$kO=q32h~{qQA<>rQ;f^{bh3bt|m4SCrLsA zL77yAP4DAjqKZ(0Tf&R}{14YidZri!+@uXtVsRoy&rRf8KRQDmi`4i=_al?Md<8v( zT@^2H@ZqnBT^k+(_yu($_JmDa>pxL=BljqmupdD+kSm*EgI_Xw9i?|3##4d~`Y>jp zp)ZY{d-?NUW87bf7u$D_wxyAQvDtU+Rm+k;b%|6Iv*iPT4wvp1qt&``XWWM|7^_r6 zOjHaV_B9ZXLLGUqNh)epu%7PM?$_;QFH&Q3+9;X^S)D%J8cUq(I?NqKq<^`Hz&!Ih$4 zm%Uepn7rDw#rw?O7(9~E^vMfK!Mne^@R;d^+97?pv1fLx67yCH0bDd;D=4X-J z&pJKd;w#fJpY!1Uovj$W!x{#TV+Vdq>M6d`RF5W~jE^}fyVsxleE#zQJ&wwQm}9x+ zVDYH?mGP`zs)RW^llAlK9nG>a0K<&V&%<~PYIu&{I&bNdjxA9~E#z%VCCe3BuKon4 zm|=dn^*ExYax_85A0lz@@j#UglAXo}2Jf9tNFavOe?~uC;GE#Ex_xHoF`0fTl(d~* z(`#Ntu5WWj%hpy8f=-8vGuy%d!?GGksg$2+sPcoxS=$8Ymea@3J|`tf*8k-N$a2$x zY(NuL0cldZN}n>(yiWiyQVCp*18KV_CiG%<)O~cV0+Bw7xw+C?mXq=8Ki47oJj|^N z^*r6-j>!#k_-ZprSEn0m!1~Oj*tp>h4}EzFao&-lzlj-Az#;N&w$VvRMZq0)8~hXx{TAu@QOb9Isk^QkCzKgqtThwmh9HGFe_ z;6#=5J&9e8vxcvjfi6=omvy48Azk=X{d~44K1sd&al!RHWh?d;co!@`tN^1}nB7YU z-Cn7pLGP5e@~g27PSc=(C=>22;=u05A0u5=#@;%Uv^Qe+Ie&F-npKG*9 z;FMws%JO;RX*1%OQl9`>AG89}I*qRS*B?}oY32)_R4N|sCk|zYEAtMi!^8Zqi@)Bp zB`u;r>=py2Y5z;XZ*mDzb9?H?IY^<)qf zI=?qk$9aur<4J1xKSQZ{uKa;M{LO7-~Mslb_;auTZU znsB<@sWrL|=yOIDEZP~GWDZ)~cAD!qjhhKz1^7v<{jTUPU9sT67lHcYEGF!cn{8gp zIS)LTS!*o+vM?bX4X;r!+{lYGOJ|dkE2jaecDo(0?4&D#m0qU5CE)pB2~JgSPyj$o z4qj==m~Vga)Dj3`5NM8rOe0$AcT`@qo+B_88G03AtqI@S{Z&RrJ}aSwsr_p3lIw5RTIr@Y80}s_HDUAh(zN?(<>1PWdv@Ab_N7aQSRV#lx^xp2BNH{_Rk!o% zB$o{+YV|6q*ZZ;=w9pOgE`E5+L^ssGO9}vK^F?7(pedP;mqD}qJ*)GB8=FB zyEUDp7)<}2{^%@+zFxoX32xiekPjX%b|1@@C5k|ixw}4Ir`JcV@U0};S86I3Y`vB0 z*kJptlRwoPx?30M<4Es2Q4RPY`!f_p+-O#8{y|rZ7&vcm`>UW~FZw&((2(G6Uem1P zq<`yYj8+qbx8@nm+y~tf)9~!$f+Oi$)tPRhQHx`Q?Dt9RI1l!Fw66`W(mc`W{mb?< zYm;fqFC@J}nJt>u_8V>#=f^wD(MjSAV)_<|8M) zs-5oG=dvQ7f!I#r-n_(eNB+3ZRdL=6#F-Jj?~KYt%D9Vf=ZuZ_iTXnXgNDHc^SX%1 zihz$GM8qAu!ERri54!^K8ZL84pER*UCvYO-@)s+qi8b%<|`=lbrWn%sz&lLV!OW)38P4PUpP5v=P;n|^m590mTZc-RZR zxpu3h65t;WtcB+gR7>GFy<>o1r&36!WXf7JQ{Iu#N|+BBAGhuZd`kspGEyB}Zwcpb zHyOIC`nuCC5x=#g$pcwU>=nFDdI78dCWQe?!X6~}30vE@T3&CiuIdqdtIyk$P5M*V zXnGVG_T%UxI7_jQkzUsf=l!8XdbnZk=Lo``21NLM9_d)41Le_?M3naln#)X zQp$d^Nn3^CLrZsP#Nkmw=6^2;t)jfXotHkE@qa9-7|AK~jauEsyzi``BCgZ3?pZ}v z0(Wf~wI-$YPzgF4qub^%wuNgltiOBBX!=FtLN-Vqt1!Krt+0b z72U`$k9IC(8fQs{;os{hH*(+v4KoxNtdw$*(uUv!0jU-yl=q{3&{>@F7fW_KyS+L+ z8^=wW0W6O}>BL|4O7TU;e>Yl2nC`vUS;aWtTu&~b3-)8$@o;i|L0S1#9$X_d-u?io6 zZ``~z{WV;MDEwqLaihs*!GOE(s&)@J=92{;s;e}C!O|}v@PPE`ZnC`1gcEv`oaELc2d;UirU5uDR)`PQj^9@=(8JE0pKQ810j{ax1fy3Mznej%l{r$@S_NV{R z79>BW!MFeIlmG3tkayh~r;s@l@n$S>>$blHTWvIbTBDs6GB-*&Qq%G!MB5Ip7?0&~ zSs8Lkif>JKg_{ttEA*pdvh+&us;?F{864NtCi!1%sU+VA6W|zRg2!k_z#pL=-xG$1=V37o_ThDq$DM5 zGgs9BhDQpNZVaPF6$@=V~sH~c=#(RWj$s|CG5(TS4IMoh!Cgdy{mv&ocxRZ>_P?BBDDF0X_u;`-T$5m5WJ zxDEEo=0V09mQkz8=5=8}o%A)zlH;HE+#f@A8|h0wDx3)tpH^8kDADeFlmX|rjN7TiSm7MQv|4PnojHGZ+_)->9L+ONv}PnI+Dj{jD#z(A z%@zh^EcdS7E%5^T!WzD?=kVY`&QC6{!zZ=|U0$qPXxI)6VA;GV=^P2Z;uR;mRvuC4rdGm=Fm0vO zBB|k4F#9mb!eT%5lnac%zO4%HNm6(hx8~b*61%WDx@tNViW($$<71j?kGjx= zs*w25yjf{UN{#uLHQ?FI^HCizT)0I7|NZnlY=aE9G2Is&%23{`Y6vSwekh2%Cd=0uQO|>1Bx$&lp}==kNech2(_!$ z9)pd2b!+nZzka0tf=hPESere383CVl!|NKQ&}dR%7N+;!*0h6%p(c7h zy<)`x1s$2Dqw=#4O(Js5;vemuUUjOF10N|F)`(A5Hq@x^_+O$z5;p5D=tqgwF3xDn z8i{DjZwZAHBm*RF*6{=DX#qF5@h6oI0Qra84r&y$XBW3Ed+mY(d+pM(3unmUgy8CG z;Z7d2Rm5TG?N43l+t`YC&bDgsz$%fLVE zuUblkLwCTtjbo>z4J%GwvZ-w51@!vx7`7P7yX(sfM46iWLTKZVdpNabg^%gCDq3#! z=RLR$yeGpl*ACGyW%Fk8^rOw}0w>ZHcJ=~70X7u)X>{5t({;Y62n=Rvy7Va)Q(;ue zl{Wjt509~1nVHUJn!?HNu(#Q(A|wWFbtfy8tyERl)z8YBVLV&_f{|IDqI{yYG6m(1NoJB@R>nboliH-GWs?WB!aQ%*em ztQQ&2cHY%}$DXSaA5Q_z03V zDt^+x+0vfM-Ouo$qHU!Kj($SS{)F8=h+q9@9)D`mCP9+tkJPJ>y$q4;r$I;{#GnxfDDF+xlgs};5|QlebuXH5ovhfN~S%5 zN%9|}?{e-Usy2HoXzUK5%X7!UEMjb4%g6s@ZTq9YfXxU@%M11t3A}yGSZX2x_!tWl zyrdQN;Gj2P5f?$$cQxIFkYwmErZ&P#Pv7?^_18|T+8cUyU9&FjWB~VCCoovz9|S#v zMgf1Ev+J+7_m*aQzqMmyKJ{&h~7GoAxL*GTVZ z?0)!Sq@h>S@>R>?|M=P5(dEMR=%zk~$-3Syl0-Vq25kZ##`BE-A`~!qIwklkSd>yx zy*28s?dl$Dhj;yFNC6~HuGX7IZrz-&&IWFo!}#hcE}y8mKjR!0UDv{gD62<^15B$v z2NEYO3^10HnaH^`yj53cM?9*v;5}C00k|V5GY11S@JBk0uSV~JyG78|X4;r*XadLZ zh$^UQBHKOx-zqb7Z^!^cH}ETOcZ}Z(l()W=uHr)kK*s&wGSJTADEk%(Y~%lufxdhE z_Y8EHww({I1KI}C-oB^Jl(MA~>u;}drIp&rfP3P+V=K1iAB^mIN8jgoe8&3LC8`3T z|0B_n^-ZlMSK6EN?9MsjwXj+=)->Wp9u2Pwmaf636yW?y_GA!#Q>)=daSW_ex0Yb~#Y4t{{+51#1s+S6T!k z@a&HE;5zgJKId2Istkc|iR{h0oSnLx$jM9*%FxbbZC?$37ZUrD!-#yrVm1%OPUTcF zT7gRE`4&IW^hkwy+3DZVCGj3b#WyO!pf^_nS=(UCi;Vow;`*y13WpVZwPgVum?$9r z)WegR!*ssl=pRx|NNPgL17$|-ZOnGh{{;<8M)ubxy z)(mxZCCdF61KyR{3;_=hK}w3L%-80so$X>1#Eu;VRZU1Io28{eUNT+Yf*veT6u(@p z0f9_dFS+2lQ{9opbG=$4fTrimp#RuLpOw(Gam0$_P5_=%-5H0FX4N`+U3aH-pEXjT zB*RBS5Ao+KIC{=9uyI+GVVsX>?W-UbI{=6?f*p7Laxs~f7FoFsYM7AY8FjtsObA=E zC019e&yQA{>z;F{dNK3Xe%~Y*E_QK(?03Uqy@}NNFrFK#&0^lCZe^+0+9EQ2BRBP9N7OBkk3@xmK?``IgJ_av6dbiHxH7t1W#D3;KfkbVli4P@Y;`0ukjDdNH|f7hq^|S*9=&%JE6xF5E#%nh%>?!M->&S;&j3*%#_%97UF;xzFr8 z%Ox~N7{u13IP;z}?5=G5df8}4&AVI;zvO}kie9IQm~5<7A9(v5 zZ(IuHTE3tdrHdQ35hR-uCKDBpWB)*u`QeLdKH55IqVK6!av+Dd3iRRI>kl!jdp%;%`kZ%l#S`k}Kf&s#7lkOFf_|DdOtx`~kN7b+^jNaqm7bj(M| zVa|(=ENE0C9NE$iURuhg$-Uz<=RMV)#hQ@&z)dXmFZxBFtDI&S_4z1_TEBtMKN%ZxR_R@VrkBJugzZEyz3rK0r}i%n&##us zpYjIo&X^uhT*xJb3H8Fsml68N7Z!zW8lryAgM|Cae`k+8+fBTuKYj^;^28%k4e7h% zpGEwFvfQ?PMe%bow*bAcy()QmWEf4j1od-Fq+j<1pWU9!q~RLz2RQQh-90Gse(kM1 z6nKL@dRI7T%s(gxt2#=LT)z;R(;w=MeZLO)ZFdGRzwDy9qu;pM)XPIr^abw(q#<|p z`yPLaI?rgjDzLgYK5E!lJUk>lxP>~X)^TZst?EpN86GB$>?eNd@F?qvY!{$d3jQhb zslnl?8B4q?6$QFy*9G<^{uK%}<)_WV3>2}i2FZin3n_|X?#dyFAB41Is0c0SWKsvN z_4O$N^6CP0tK_9+`Zjqt{^~|MV~;c@2wcrKvk8F7NWMz_`o`%``AtpUYvg%-3d<5Z z-jpsiXecallZSd(k%Z@z!dE*ooEKMWk|9md`Y`;lWEBMpDAT<&6Pq7`lY*_vi;BEs z07Ix-!&HujLy8QDZX++9NJ|{27S~-g2?L*Dvc7WC$t2v-E~~))iSZrm4B@GZ5uB0% z5l8vY+cPlcP6d2 zmfO&0Y*kx=U+ySGT%p$LT}{oFNSX^pmIr-w40|s>797L>4h*4TIrvew2WDF5fhMOx zvjryzS9GU#KF!HfxQBdD-s;&bFV&;er?<6l$-D9vaCtdH$MH_>1;1S^6SpEW41^Kj zs0}_I;~7~YR8K#4w+@5>YR!}F`A{0ayU(|>`RzdaXCjv33c5x%hv`{_u13>$vE_Jx zi>GqC&;pZ5tfn^ipY9u8A)ZE-@(Gi`V#cAu1>B@8U;X!gzI3&#+hv{P{eKGn)N@Y- zZo&wwL1KT}Q$9}NlP))-MHVv?tFBOqpxx?6O8|CH>RGHE8{-;F(_G|7)x$|PpH2$; z;)bfG!xj89%`AlM183Qr^dl=7w0XI($fRTBC@GyFp}-{i@DkmV7rw?Q7?^vyFaF;( zBSjRklxjDsKNS_i1}w7s7(O49s8z&*&}}#`Gb8F&$ejt%WA@98k{Ke722?&yM0S{~ zmDo%$q$^voJbMEV@?jg$eLz-Pr;=t1YUdSw!_6;xFm>ELW;~QJU(n|1nb!2_`;`9z zwCFcz^xt6Q8f+4PWB~#4x9f(d*bwEpv3=%p4@q;oElriLot(et*=rqg> z2~K!nb}@^phb+zT&&j?+RoYg;Os30#c7b`MRwvb-Jvr0Jen$F$T^Ur;eo|4AkC(N` zc~f)tS3j`CJB&i0fVYZ$AMK9FKd*s$2#S!CKzT#ACb&HkcZcj9m>G;s3cQ=pV?cx1 zrnEGY4vDD?{Rs~2z}1aWHfgj2<1F7pT|?D*7$J&{WUii^WwMq8G3OMD=R^cWY6Wd(*?-|U6dXeLRdx2HnKP2 z(|FS%&!_BsbmuSVat(*Eg$BSecd_s)@QUV}JBITYF6apt%PPQ5VMr(-&31QoV5cy5 zLJ)b&zH{Bi5Yv8T#}Qy*2U@w(z-N$L_PoQ^xD^V7Ha|Sf65^U!Mqx%+_!dr*#gm6> z2~9(;kr@z@W7lONgh>$(OyCgO&J2z{GOmA7AqTPOENtM~=(iC@-Qg^o6-Oym?MNwY zx;Ciw?f`ELdIYw%)_Ig)ofKu1_J!yC`V|2)fgij}py{LOy86?iN1;T^PL0T^&A?DYFM7?73{b@r28M}_@)yIY zyCw{2^nJatyS!y>Jr#-=l~W%G)`S+y`m#HvWPmWByC$q~ff(QIn%F(XZ7QZBZA9KG z4E>McL5ixF)xHe-$LU>i(W-wG) z_n#aQ5<5U8?aeZ&5r>x%q}qub>Sf#i5dEP0;SmdX0;~K;ds=KIK;ryh=tm$x6}Z>L zLaURcltX-RRgP+Xc(Za6CM@WQ{=$%>Df$88(gR z_HUe@26@BPzusiJ`4@aVNauhv$DQUUUPx3Sq4z{2u;|s7D5&|wub=LR_`!B3Q@ra( zj+Co0FW2IzD^@0h70i;?C0Rbjjn1)vZ8n*UK)(>{=<0TUL5Du-``Sl}#r}T^dYFePpF0W1*ibAi~M}6A?*8+R7>fnbv$2dRGGV$IOgSeO97Q z44nMT48H^Q5~+kEVCu**t-eT6^ro*P{M>N-j-h4zry(xZOTIYN>c@HgcydpNAM(pt zdcDuV`ReBS5BDnGQ}L?g`kdcd35NjHPe5nWLwsXT(`xJwf)%klh6jp?k$3fNT4nj> z?#m%1zHz*GPxS&uousk5iMQSso`&Zk90%G_PHu7`i?y*E!>>-%qp`c-QnnEAO=Fyu ze!Pi1njU6z=xXgFv@kU#htvOtTzsp<+RK?5-wLKT30_6{@!#P4+^q_7*n!vU4SF}F z=lMG>^EGkRo4!oFcw#~-bK%DoVp2cz$DN^CBJF0(eniH6-;hB|7t5Dr^WZx{>_sn1yA%Dm7b|=Lph`0?w^Q2d(jPrO51=1c$e zAA6#^fn&YXv(>n%Zj`Q?`eyHv_pLICQKpuvoVm@`7J==&W&Aj6f$qe zL8`2S+iBAA!;UQ`ivp@B$zEA`^3%nlbn4X1kyH?vO2r7Yo{OQp-?IV0!}n zHue^XS?SX^XAYryV!>hijk0K|=l*BveM)*UeOo(EN%GyaN2}noBsXWY4q2|=Uq@B{ zfdR!B{59aQ_S?^r5kHozdC+UmOSpaj=zGh-pa|wC)oV-jB}T>-biC#WJnVe|@-5IO zo5)M5>jY!wZ!Nb(;NQL42xl7v?}u1zU3TJ2*(K#JSQ&}7mOC)^ImShQl3TR#T_PLb zJrD|))rpB2Q4#q%ZEy-I_9h_5Vm@U9ZQtw$?UL($i5a(BHAt!i3-9epJK5>!V}HB< zukmgwB&^L4OcBxULaO&VYWm3d7=<8{NX4Yzbi*aZCp{<#t?YgsFjSV;6p@v;mIH}> z_S3CfWvNYPv|evILk)&w1)J?E0LD%v{HXCknfw;)NA@ONiz{9xumM+8&l(vA zqW@#Jz*bE)n17e*M-s_pw0}9P(w46oD-Kxnc5~A26-aI<55byG8M%~*$Eq=F`RTG8 z1EfK?Tc`c{2UFu-Xd+lz--}E_alXJ^%v%AQV7`F&Y&@fx%ssd-mJ!zN(GQGbwpcHmL{p-{Bq+#4d4j3CT`8E0Dleo##5B=ded z!&r9cfa55QwByjhYp~zUY99Y{Ud?gF{(eMCf(lJkRC#-KJ5R5#^s*G(>Ori>bZtSu zJ-eDF#=n&VCb6!mVg}!`*3jF!p_2O^P^+#uPKQ@eY~GRdU3ut2TV7D^n4#iWi-9O1 z*BasZd9+){?M5j|MMIv4Tf8eL-qB8x)rxf*f(mrs2X${%_MAO41#3C+1og?2P;4p% z>Kzt(yFzGF&&B>VIUdtAF%=JEz?0+jbOeqVF6Uw;hkSK7&ZDFzV{EK)#GQLu8UU?rGDg!L%GsGm7D>kSKg}bgoG{)mf!3dA-S}!=^Krmb8 zZ!Awuv%Gj|TijC-XTbezKy|Rv5&=(uk$CH_f#l6RjMHNqutTm{yW>gr^9LLr= z=3=$_51I#irdig4aEAwc$@3^8TH`lRU6&K`hzT&3=pnF!UHOLaHaU@^x3+-tu;%s` z?(hP{)`M$`xit+X0U6oYf-TsfHRVos$>J8U3%%TMZ_Y1_6E4mllbwa$H5|J~$XAk2 zEzC=jEqEXyr0eU}EOPZ}j?8cS0Op9!H2h<|O;JEj;7M!%Q+x4mSdS>^b(0N6p)TFI z(dSF5KQ@_n^mtaJyN`Rv*Z*&Kb4HHYIlj0f7~xN zT^HQC{4wS_BuSb-KCwoV&#IMXrN{J_bEGz|iky~GR>z!@6+eC)oq#Wpw8hioOG<{3 zZ(a3%EY1(A>^OT@*vtAxO*t4`;zo+jpVDTE;1 z2u3-~NyjG~Xmfr~u4_54ikTJ^e9tqIX8}hPmCmR!inhf;Dc>46pdq$`*~EuS_Mdx!!E_SkMoWXA- zn=#Q>G2tfB{r}U0+%|eW>{9n^g9j1VMF^Xo3OVbBC+~0cm$zSU*IRQtC-;Zz#5Pdb zyq#8RpPUGfGx@tzt=PGwVnX+Zz+TP$w+ANYiZ`!0*e<1IL|B3HSI4-QS3BhVt5MwS zv_#RaBWn13)O|q;(MpXReoa2!KK^HwnCp4R^)5+0Ak2nX&z7SOX=AxIFU=^~Ywvd@Af&QpeiZMApWd!w!|IZmAaC0@0_fZf821t^f7l0E-lhrjy4`XgroWqy-qN34 zdsj6g!rMHq8g*q(o_ibCRg?GOVSXH~_tK2u8T(J(+tRwmf_k_2F@~HX^`kx7B8D2@^Qo9EYyl z6zo2Kn*Sp}B|xP7oLjA-#Gt5=xyie6{Mp{<6jjb#UfhqPzOhN9z}Aqz-4#D6qsBpO zMQDUCc|_$*KHgBOcgQgoT!Cl(XM+XPM4bD~$Q#u2nW0qYuuL&@=V-;_$NZ;t!g&1E zIuGBp&OXufl=;~ftUcNoy)f6z&6)qwhMRQY1lcS#Z;5goV;E&G9&jn|`<*H&WHG^V zZ#x^h*Lv&WxIo>T81=uHhW;1(QMQL0L}0|y|F75j3D}!?em-EeL@0HFAb;d+o9#C* zH*8#dBpPNs`J=k&ot!-2rS7jDzQk3c7>16O${%=UP&ln!c6V`Ehd28!dZ5|HAqeyV zN#=72x{~z8FPplt&V06;Ib%%d*->WesqoxCZAhINbTbMQDXSn1CSA=0JN76^4NO(p z;J&U2m%yTNdWw5!C4x{^0%6YTxwGVI@WsXIxPnQ|FwIXBcOWL!_qY$YSaoN*##_=_kK9B zW}>Z7!AN$Z2U}kcT7atJfG=H7)Ay;S4-rK`yct=ZGGFVjt)}khzDAcU@j_2p?j7GS z`d=cbf(gIxGIT^u9zfx|JkLxR!HHfc!#+6V3_Idf|o?l z_qA&#tamvp?dvbZh;44Gt}EAc&61Ni{yH)Kj&(lD-zOGqLQTeRJ|Wi$pAxhHbI>U; zk%KftSHJ0{E&e@ffOKcF4wFHdQWe-M?F1Ur=8%Kpb2ldB4Fa}wW+}|dCn~Q9@=={m zUk^`(cV(F)Bcl_XTx`$yFw4L`5JBCSn~v7TJX^p@9~eAf*WK^)d%qbe zv%%QZf{k5dLFb~KiSP4vqLoZdYJyQ)K9lx~K(oX^+r8$@KqW9uao)Rf6cik_Fy=NwbVsnws7lv4#W>A94B#fw2^>`D;tgea=oWiu1_S^>5>k-5b!idI?) zq;^!urA*e4&|O3_QtcZlXYdj-z^j^8Ky>76I(pE3cYG?81FU@bYT6#{Z0iy*LHW&5 z`JgpgmaUn+$BZn&utp=%-JRnKetg1qR})WYQ?DND*!k)@?U41j@ajzK)}jO?&FJ+Lvs_F4`_sFn#Sjr5nfx z4D(rq=5mYK6mLl6a1!ucHteGgHsVK(D>S9{x9CYfi`1>xQVH?-WL!$e@!EF~BSyc_v^kLLtHl&p~O1eu*S{i8tB&53$l~)hvjZ?a9XSIkl$J_q}hgtpWjPZxg<2QnK$laY@?!Cl|J|J zTzcYb21ajX?GM(19|bX9SRc;g0*9dB?}!HML1$6YcRLSO6 zj_2%IgR?LK5wd-zErTN7%`R|Wf5wa6?GWCKTZFbKbW$52?Aw_Ko zIKDd$R8B6;+AC*kmGGtPfX4;1-z1>RQ93w≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                            F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR383/images/cplsetup.png b/previews/PR383/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR383/index.html b/previews/PR383/index.html new file mode 100644 index 000000000..ee2e7b130 --- /dev/null +++ b/previews/PR383/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                            ClimaCoupler.jl

                            Coupling CliMA Models

                            ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                            • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                            • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                            The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                            Coupler Scheme
                            ClimaCoupler.jl allows for independent development of interchangeable component models.
                            diff --git a/previews/PR383/interfacer/index.html b/previews/PR383/interfacer/index.html new file mode 100644 index 000000000..14499c8de --- /dev/null +++ b/previews/PR383/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                            Interfacer

                            This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                            Coupled Simulation

                            • CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                            Component model simulations

                            • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                            • the current version requires that there is:
                              • one AtmosModelSimulation
                              • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                                • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                            Prescribed conditions

                            • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                            get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                            +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                            +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                            +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                            +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                            +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                            with the corresponding update_field! functions

                            function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                            +    sim.cache.area_fraction .= field
                            +end
                            +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                            +    sim.cache.T_sfc .= field
                            +end

                            Interfacer API

                            ClimaCoupler.Interfacer.get_fieldFunction
                            get_field(::SurfaceStub, ::Val)

                            A getter function, that should not allocate. If undefined, it returns a descriptive error.

                            source
                            get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                            Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                            source
                            ClimaCoupler.Interfacer.update_field!Function
                            update_field!(::ComponentModelSimulation, ::Val, _...)

                            No update in unspecified in the particular component model simulation.

                            source
                            update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                            Updates the specified value in the cache of SurfaceStub.

                            source
                            diff --git a/previews/PR383/performance/index.html b/previews/PR383/performance/index.html new file mode 100644 index 000000000..e14e12ddc --- /dev/null +++ b/previews/PR383/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                            Performance Analysis Tools

                            ClimaCoupler.jl provides basic tools for analyzing performance:

                            1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                            2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                            Flame Graph Interpretation

                            • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                            • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                            canvas

                            • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                            • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                            References

                            diff --git a/previews/PR383/postprocessor/index.html b/previews/PR383/postprocessor/index.html new file mode 100644 index 000000000..c50f0060c --- /dev/null +++ b/previews/PR383/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                            PostProcessor

                            This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                            Diagnostics API

                            ClimaCoupler.PostProcessor.postprocessFunction
                            postprocess(
                            +    name::Symbol,
                            +    raw_data::Union{Fields.Field, Array},
                            +    p_methods::Tuple;
                            +    lev_slice = 1,
                            +    datafile_latlon = nothing,
                            +    nlat = 90,
                            +    nlon = 180,
                            +)

                            Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                            Arguments:

                            • name: [Symbol] variable name
                            • raw_data: [Union{Fields.Field, Array}] variable data
                            • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                            • lev_slice: [Int] level index along which the :horizontal_slice is applied
                            • datafile_latlon: [String] name of the regrid file
                            • nlat: [Int] number of latitudes of the regridded array
                            • nlon: [Symbol] number of longitudes of the regridded array
                            source
                            Missing docstring.

                            Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                            Missing docstring.

                            Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                            ClimaCoupler.PostProcessor.DataPackageType
                            DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                            A container for storing the tyoe, name, data and coordinates of a variable.

                            source

                            Diagnostics Internal Functions

                            diff --git a/previews/PR383/regridder/index.html b/previews/PR383/regridder/index.html new file mode 100644 index 000000000..ff5ac7a7e --- /dev/null +++ b/previews/PR383/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                            Regridder

                            This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                            Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                            Regridder API

                            ClimaCoupler.Regridder.write_to_hdf5Function
                            write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                            Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                            Arguments

                            • REGRID_DIR: [String] directory to save output files in.
                            • hd_outfile_root: [String] root of the output file name.
                            • time: [Dates.DateTime] the timestamp of the data being written.
                            • field: [Fields.Field] object to be written.
                            • varname: [String] variable name of data.
                            • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                            source
                            ClimaCoupler.Regridder.read_from_hdf5Function
                            read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                            Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                            Arguments

                            • REGRID_DIR: [String] directory to save output files in.
                            • hd_outfile_root: [String] root of the output file name.
                            • time: [Dates.DateTime] the timestamp of the data being written.
                            • varname: [String] variable name of data.
                            • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                            Returns

                            • Field or FieldVector
                            source
                            ClimaCoupler.Regridder.dummmy_remap!Function
                            dummmy_remap!(target, source)

                            Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                            Arguments

                            • target: [Fields.Field] destination of remapping.
                            • source: [Fields.Field] source of remapping.
                            source
                            ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                            remap_field_cgll_to_rll(
                            +    name,
                            +    field::Fields.Field,
                            +    remap_tmpdir,
                            +    datafile_rll;
                            +    nlat = 90,
                            +    nlon = 180
                            +)

                            Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                            Arguments

                            • name: [Symbol] variable name.
                            • field: [Fields.Field] data to be remapped.
                            • remap_tmpdir: [String] directory used for remapping.
                            • datafile_rll: [String] filename of remapped data output.
                            source
                            ClimaCoupler.Regridder.land_fractionFunction
                            function land_fraction(
                            +    FT,
                            +    REGRID_DIR,
                            +    comms_ctx::ClimaComms.AbstractCommsContext,
                            +    infile,
                            +    varname,
                            +    boundary_space;
                            +    outfile_root = "land_sea_cgll",
                            +    mono = false,
                            +    threshold = 0.7,
                            +)

                            Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                            See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                            Arguments

                            • FT: [DataType] Float type
                            • REGRID_DIR: [String] directory to save output files in.
                            • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                            • infile: [String] filename containing input data.
                            • varname: [Symbol] variable name.
                            • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                            • outfile_root: [String] root for output file name.
                            • mono: [Bool] flag for monotone remapping.
                            • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                            Returns

                            • Fields.Field
                            source
                            ClimaCoupler.Regridder.update_surface_fractions!Function
                            update_surface_fractions!(cs::CoupledSimulation)

                            Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                            Arguments

                            • cs: [CoupledSimulation] containing area fraction information.
                            source
                            ClimaCoupler.Regridder.combine_surfaces!Function
                            combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                            Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                            Arguments

                            • combined_field: [Fields.Field] output object containing weighted values.
                            • sims: [NamedTuple] containing simulations .
                            • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                            Example

                            • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                            source

                            Regridder Internal Functions

                            ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                            reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                            Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                            Arguments

                            • field: [Fields.Field] object populated with the input array.
                            • in_array: [Array] input used to fill field.
                            • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                            source
                            ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                            hdwrite_regridfile_rll_to_cgll(
                            +    FT,
                            +    REGRID_DIR,
                            +    datafile_rll,
                            +    varname,
                            +    space;
                            +    hd_outfile_root = "data_cgll",
                            +    mono = false,
                            +)

                            Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                            Arguments

                            • FT: [DataType] Float type.
                            • REGRID_DIR: [String] directory to save output files in.
                            • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                            • varname: [String] the name of the variable to be remapped.
                            • space: [Spaces.AbstractSpace] the space to which we are mapping.
                            • hd_outfile_root: [String] root of the output file name.
                            • mono: [Bool] flag to specify monotone remapping.
                            source
                            ClimaCoupler.Regridder.write_datafile_ccFunction
                            write_datafile_cc(datafile_cc, field, name)

                            Write the data stored in field to an NCDataset file datafile_cc.

                            Arguments

                            • datafile_cc: [String] filename of output file.
                            • field: [Fields.Field] to be written to file.
                            • name: [Symbol] variable name.
                            source
                            ClimaCoupler.Regridder.binary_maskFunction
                            binary_mask(var::FT; threshold = 0.5)

                            Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                            Arguments

                            • var: [FT] value to be converted.
                            • threshold: [Float] cutoff value for conversions.
                            source
                            diff --git a/previews/PR383/search/index.html b/previews/PR383/search/index.html new file mode 100644 index 000000000..7a83d4416 --- /dev/null +++ b/previews/PR383/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                            Loading search...

                              diff --git a/previews/PR383/search_index.js b/previews/PR383/search_index.js new file mode 100644 index 000000000..e965c2373 --- /dev/null +++ b/previews/PR383/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\nif !(@isdefined parsed_args)\n include(\"cli_options.jl\")\n parsed_args = parse_commandline(argparse_settings())\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"modify parsed args for fast testing from REPL #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if isinteractive()\n parsed_args[\"surface_setup\"] = \"PrescribedSurface\" #hide # necessary to stop Atmos from calculating its own surface fluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"parsedargs[\"dtsave_restart\"] = \"5days\" #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" parsed_args[\"job_id\"] = \"interactive_debug_run\"\n parsed_args[\"monthly_checkpoint\"] = true\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nif !(@isdefined FT)\n const FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nend\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\nmonthly_checkpoint = parsed_args[\"monthly_checkpoint\"]\nrestart_dir = parsed_args[\"restart_dir\"]\nrestart_t = Int(parsed_args[\"restart_t\"])\n\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator: PartitionedComponentModelGrid, CombinedAtmosGrid, compute_combined_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# user-specified diagnostics\ninclude(\"user_io/user_diagnostics.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"components/atmosphere/climaatmos_init.jl\")\natmos_sim = atmos_init(FT, parsed_args);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D bounary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"components/slab_utils.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/slab_seaice_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation, :toa, :T_sfc),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name == \"slabplanet\" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks =\n (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n parsed_args,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend\nClimaComms.barrier(comms_ctx)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = CombinedAtmosGrid()","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes on the atmos grid, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\ncompute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit!(atmos_sim) # sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes, and sends them to surface models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs;\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims;\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n update_field!(\n ocean_sim,\n Val(:surface_temperature),\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),\n )\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface)) # TODO: change to SIC\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"accumulate_diagnostics!(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # save and reset monthly averages","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"save_diagnostics(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\n compute_combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes)\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: computeandsendpartitionedturbulent_fluxes!(cs)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#energy-check-plots","page":"AMIP Driver","title":"energy check plots","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if !isnothing(cs.conservationchecks) && cs.mode.name == \"slabplanet\" @info \"Conservation Check Plots\" plotglobalconservation( cs.conservationchecks.energy, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, \"totalenergybucket.png\"), figname2 = joinpath(COUPLERARTIFACTSDIR, \"totalenergylogbucket.png\"), ) plotglobalconservation( cs.conservationchecks.water, cs, figname1 = joinpath(COUPLERARTIFACTSDIR, \"totalwaterbucket.png\"), figname2 = joinpath(COUPLERARTIFACTSDIR, \"totalwaterlog_bucket.png\"), ) end","category":"page"},{"location":"generated/amip/coupler_driver_modular/#sample-animations","page":"AMIP Driver","title":"sample animations","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if !isdistributed && parsedargs[\"anim\"] @info \"Animations\" include(\"userio/vizexplorer.jl\") plotanim(cs, COUPLERARTIFACTS_DIR) end","category":"page"},{"location":"generated/amip/coupler_driver_modular/#plotting-AMIP-results","page":"AMIP Driver","title":"plotting AMIP results","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if cs.mode.name == \"amip\" @info \"AMIP plots\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"## ClimaESM\ninclude(\"user_io/amip_visualizer.jl\")\npost_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa = (:regrid, :horizontal_slice),\n precipitation = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n)\n\nplot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n)\namip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n)\n\n## NCEP reanalysis\n@info \"NCEP plots\"\ninclude(\"user_io/ncep_visualizer.jl\")\nncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_slice,),\n precipitation = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n)\nncep_plot_spec = plot_spec\nncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"end","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedAtmosGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedComponentModelGrid())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. (TODO: implementation in the next PR)","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid\n ClimaCoupler.FluxCalculator.CombinedAtmosGrid\n ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedComponentModelGrid","text":"PartitionedComponentModelGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedAtmosGrid","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedAtmosGrid","text":"CombinedAtmosGrid <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_combined_turbulent_fluxes!","text":"compute_combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.compute_atmos_turbulent_fluxes!","text":"compute_atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction compute_atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR383/siteinfo.js b/previews/PR383/siteinfo.js new file mode 100644 index 000000000..ba88d003d --- /dev/null +++ b/previews/PR383/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR383"; diff --git a/previews/PR383/testhelper/index.html b/previews/PR383/testhelper/index.html new file mode 100644 index 000000000..c3b069505 --- /dev/null +++ b/previews/PR383/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                              TestHelper

                              This module defines helper functions, objects, and constants to be used by various files in the test folder.

                              TestHelper API

                              ClimaCoupler.TestHelper.create_spaceFunction
                              create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                              +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                              Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                              Arguments

                              • FT: [DataType] Float type
                              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                              • R: [FT] radius of the sphere underlying space.
                              • ne: [Integer] number of elements used in the space's mesh.
                              • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                              • nz: [Integer] number of vertical elements
                              source
                              ClimaCoupler.TestHelper.gen_ncdataFunction
                              gen_ncdata(FT, path, varname, val)

                              Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                              Arguments

                              • FT: [DataType] Float type.
                              • path: [String] location to store output datafile.
                              • varname: [Symbol] variable name.
                              • val: [FT] value to store as varname at all indices.
                              source
                              diff --git a/previews/PR383/timemanager/index.html b/previews/PR383/timemanager/index.html new file mode 100644 index 000000000..996981277 --- /dev/null +++ b/previews/PR383/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                              TimeManager

                              This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                              TimeManager API

                              ClimaCoupler.TimeManager.current_dateFunction
                              current_date(cs::CoupledSimulation, t::Int)

                              Return the model date at the current timestep.

                              Arguments

                              • cs: [CoupledSimulation] containing info about the simulation
                              • t: [Real] number of seconds since simulation began
                              source
                              ClimaCoupler.TimeManager.trigger_callbackFunction
                              trigger_callback(cs, ::Monthly)

                              Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                              Arguments

                              • cs: [CoupledSimulation] containing info about the simulation
                              source
                              Missing docstring.

                              Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                              diff --git a/previews/PR383/timestepping/index.html b/previews/PR383/timestepping/index.html new file mode 100644 index 000000000..9f2e3cbad --- /dev/null +++ b/previews/PR383/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                              Coupled Simulations & Timestepping

                              ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                              Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                              • step!: advances the component model in time
                              • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                              • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                              ClimaCoupler.run!Function
                              run!(::CoupledSimulation)

                              A simple outer timestepping loop for coupled system runs.

                              This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                              source
                              ClimaCoupler.step!Function
                              step!(sim, dt)

                              Advances a simulation sim by dt.

                              Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                              source
                              ClimaCoupler.coupler_push!Function
                              coupler_push!(coupler::CouplerState, model)

                              Update coupler with fields retrieved from the coupler.

                              coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                              source
                              ClimaCoupler.coupler_pull!Function
                              coupler_pull!(model, coupler::CouplerState)

                              Update model with fields retrieved from the coupler.

                              coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                              source
                              diff --git a/previews/PR383/utilities/index.html b/previews/PR383/utilities/index.html new file mode 100644 index 000000000..bc028a940 --- /dev/null +++ b/previews/PR383/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                              Utilities

                              This module contains functions, objects, and constants used by various modules in the coupler.

                              Utilities API

                              Missing docstring.

                              Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                              ClimaCoupler.Utilities.swap_space!Function
                              swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                              Remap the values of a field onto a new space.

                              Arguments

                              • field_in: [Fields.Field] to be remapped to new space.
                              • field_out: [Fields.Field] to remap field_in to.
                              source
                              diff --git a/previews/PR385/assets/documenter.js b/previews/PR385/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR385/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR385/assets/logo.svg b/previews/PR385/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR385/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR385/assets/search.js b/previews/PR385/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR385/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                            • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR385/assets/themes/documenter-dark.css b/previews/PR385/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR385/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR385/assets/themes/documenter-light.css b/previews/PR385/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR385/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR385/assets/themeswap.js b/previews/PR385/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR385/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR385/assets/warner.js b/previews/PR385/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR385/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                              Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR385/bcreader/index.html b/previews/PR385/bcreader/index.html new file mode 100644 index 000000000..47ec817b7 --- /dev/null +++ b/previews/PR385/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                              BCReader

                              This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                              BCReader API

                              ClimaCoupler.BCReader.BCFileInfoType
                              BCFileInfo

                              Stores information specific to each boundary condition from a file and each variable.

                              Inputs:

                              • bcfile_dir::b # directory of the BC file
                              • comms_ctx::X # communication context used for MPI
                              • hdoutfileroot::S # filename root for regridded data
                              • varname::V # name of the variable
                              • all_dates::D # vector of all dates contained in the original data file
                              • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                              • scaling_function::O # function that scales, offsets or transforms the raw variable
                              • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                              • segment_idx::Vector{Int} # index of the monthly data in the file
                              • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                              • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                              • interpolate_daily::Bool # switch to trigger daily interpolation
                              source
                              ClimaCoupler.BCReader.bcfile_info_initFunction
                              bcfile_info_init(
                              +    FT,
                              +    bcfile_dir,
                              +    datafile_rll,
                              +    varname,
                              +    boundary_space,
                              +    comms_ctx;
                              +    interpolate_daily = false,
                              +    segment_idx0 = nothing,
                              +    scaling_function = no_scaling,
                              +    land_fraction = nothing,
                              +    date0 = nothing,
                              +    mono = true,
                              +)

                              Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                              Arguments

                              • FT: [DataType] Float type.
                              • bcfile_dir: [String] directory the BC file is stored in.
                              • datafile_rll: [String] file containing data to regrid.
                              • varname: [String] name of the variable to be regridded.
                              • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                              • interpolate_daily: [Bool] switch to trigger daily interpolation.
                              • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                              • scaling function: [Function] scales, offsets or transforms varname.
                              • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                              • date0: [Dates.DateTime] start date of the file data.
                              • mono: [Bool] flag for monotone remapping of datafile_rll.

                              Returns

                              • BCFileInfo
                              source
                              ClimaCoupler.BCReader.update_midmonth_data!Function
                              update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                              Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                              Arguments

                              • date: [Dates.DateTime] start date for data.
                              • bcf_info: [BCFileInfo] containing boundary condition data.
                              source
                              ClimaCoupler.BCReader.next_date_in_fileFunction
                              next_date_in_file(bcf_info)

                              Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                              Arguments

                              • bcf_info: [BCFileInfo] containing the date information.

                              Returns

                              • Dates.DateTime
                              source
                              ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                              interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                              Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                              Arguments

                              • date: [Dates.DateTime] start date for data.
                              • bcf_info: [BCFileInfo] contains fields to be interpolated.

                              Returns

                              • Fields.field
                              source

                              BCReader Internal Functions

                              ClimaCoupler.BCReader.no_scalingFunction
                              no_scaling(field, bcf_info)

                              Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                              Arguments

                              • field: [Fields.Field] contains the values to be remapped.
                              • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                              source
                              ClimaCoupler.BCReader.interpolFunction
                              interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                              Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                              Arguments

                              • f1: [FT] first value to be interpolated (f(t1) = f1).
                              • f2: [FT] second value to be interpolated.
                              • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                              • Δt_t2t1: [FT] time between t1 and t2.

                              Returns

                              • FT
                              source
                              diff --git a/previews/PR385/checkpointer/index.html b/previews/PR385/checkpointer/index.html new file mode 100644 index 000000000..719f90d24 --- /dev/null +++ b/previews/PR385/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

                              Checkpointer

                              This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

                              Checkpointer API

                              ClimaCoupler.Checkpointer.get_model_state_vectorFunction
                              get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

                              Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

                              source
                              ClimaCoupler.Checkpointer.restart_model_state!Function
                              restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

                              Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

                              source
                              ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
                              checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

                              Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

                              source
                              diff --git a/previews/PR385/conservation/index.html b/previews/PR385/conservation/index.html new file mode 100644 index 000000000..7ce7eafb2 --- /dev/null +++ b/previews/PR385/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                              Conservation Checks

                              If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                              Only energy and water are currently implemented.

                              Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                              Coupler Object API

                              ClimaCoupler.ConservationChecker.check_conservation!Function
                              check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                              itertes over all specified conservation checks.

                              source
                                  check_conservation!(
                              +    cc::EnergyConservationCheck,
                              +    coupler_sim,
                              +    get_slab_energy,
                              +    get_land_energy,
                              +    )

                              computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                              TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                              source
                              check_conservation!(
                              +cc::WaterConservationCheck,
                              +coupler_sim,
                              +get_slab_energy,
                              +get_land_energy,
                              +)

                              computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                              Note: in the future this should not use push!.

                              source
                              ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                              plot_global_conservation(
                              +    cc::EnergyConservationCheck,
                              +    coupler_sim::CoupledSimulation;
                              +    figname1 = "total_energy.png",
                              +    figname2 = "total_energy_log.png",
                              +)

                              Creates two plots of the globally integrated quantity (energy, $\rho e$):

                              1. global quantity of each model component as a function of time,

                              relative to the initial value;

                              1. fractional change in the sum of all components over time on a log scale.
                              source
                              plot_global_conservation(
                              +    cc::WaterConservationCheck,
                              +    coupler_sim::CoupledSimulation;
                              +    figname1 = "total_energy.png",
                              +    figname2 = "total_energy_log.png",
                              +)

                              Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                              1. global quantity of each model component as a function of time,

                              relative to the initial value;

                              1. fractional change in the sum of all components over time on a log scale.
                              source
                              diff --git a/previews/PR385/couplerstate/index.html b/previews/PR385/couplerstate/index.html new file mode 100644 index 000000000..4593d9849 --- /dev/null +++ b/previews/PR385/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                              Coupler State

                              The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                              The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                              Coupler Object API

                              ClimaCoupler.CouplerStateType
                              CouplerState()

                              Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                              A field is exported by one component and imported by one or more other components.

                              source
                              ClimaCoupler.coupler_add_field!Function
                              coupler_add_field!(
                              +        coupler::CouplerState,
                              +        fieldname::Symbol,
                              +        fieldvalue,
                              +    )

                              Add a field to the coupler that is accessible with key fieldname.

                              Arguments

                              • coupler: coupler object the field is added to.
                              • fieldname: key to access the field in the coupler.
                              • fieldvalue: data array of field values.
                              source
                              ClimaCoupler.coupler_getFunction
                              coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                              Retrieve data array corresponding to fieldname.

                              If a target_sim is passed, the field is remapped to that simulation's boundary space.

                              source
                              diff --git a/previews/PR385/diagnostics/index.html b/previews/PR385/diagnostics/index.html new file mode 100644 index 000000000..218f9ec82 --- /dev/null +++ b/previews/PR385/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                              Diagnostics

                              This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                              Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                              Diagnostics API

                              Missing docstring.

                              Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                              ClimaCoupler.Diagnostics.get_varFunction
                              get_var(cs::CoupledSimulation, x)

                              Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                              Example:

                              getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                              source
                              ClimaCoupler.Diagnostics.save_diagnosticsFunction
                              save_diagnostics(cs::CoupledSimulation)
                              +
                              +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                              Saves all entries in dg in separate HDF5 files per variable in output_dir.

                              source

                              Diagnostics Internal Functions

                              Missing docstring.

                              Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                              ClimaCoupler.Diagnostics.operationFunction
                              operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                              Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                              source
                              operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                              Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                              source
                              ClimaCoupler.Diagnostics.pre_saveFunction
                              pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                              Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                              source
                              pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                              Collects variables and performs all specified operations before saving the snapshot diagnostics.

                              source
                              diff --git a/previews/PR385/fieldexchanger/index.html b/previews/PR385/fieldexchanger/index.html new file mode 100644 index 000000000..85bee3882 --- /dev/null +++ b/previews/PR385/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                              FieldExchanger

                              This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                              The FieldExchanger needs to populate the coupler with

                              • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                              • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                              The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                              • AtmosModelSimulation: albedo, surface_temperature
                                • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                              • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                              If an update_field! function is not defined for a particular component model, it will be ignored.

                              Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                              FieldExchanger API

                              ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                              import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                              Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                              Arguments

                              • csf: [NamedTuple] containing coupler fields.
                              • model_sims: [NamedTuple] containing ComponentModelSimulations.
                              • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                              • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                              source
                              ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                              import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                              Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                              Arguments

                              • csf: [NamedTuple] containing coupler fields.
                              • model_sims: [NamedTuple] containing ComponentModelSimulations.
                              • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                              • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                              source
                              ClimaCoupler.FieldExchanger.update_model_sims!Function
                              update_model_sims!(model_sims, csf, turbulent_fluxes)

                              Iterates update_sim! over all component model simulations saved in cs.model_sims.

                              Arguments

                              • model_sims: [NamedTuple] containing ComponentModelSimulations.
                              • csf: [NamedTuple] containing coupler fields.
                              • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                              source
                              ClimaCoupler.FieldExchanger.update_sim!Function
                              update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                              Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                              Arguments

                              • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                              • csf: [NamedTuple] containing coupler fields.
                              source
                              update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                              Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                              Arguments

                              • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                              • csf: [NamedTuple] containing coupler fields.
                              source
                              update_sim!(::SurfaceStub, csf, area_fraction)

                              The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                              source
                              ClimaCoupler.FieldExchanger.step_model_sims!Function
                              step_model_sims!(model_sims, t)

                              Iterates step! over all component model simulations saved in cs.model_sims.

                              Arguments

                              • model_sims: [NamedTuple] containing ComponentModelSimulations.
                              • t: [AbstractFloat] denoting the simulation time.
                              source

                              FieldExchanger Internal Functions

                              CommonSolve.step!Function
                              step!(::SurfaceStub, t)

                              The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                              source
                              SciMLBase.reinit!Function
                              reinit!(cs::SurfaceStub)

                              The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                              source
                              diff --git a/previews/PR385/fluxcalculator/index.html b/previews/PR385/fluxcalculator/index.html new file mode 100644 index 000000000..679402ebb --- /dev/null +++ b/previews/PR385/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                              FluxCalculator

                              This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                              Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                              1. Combined fluxes (called with CombinedStateFluxes())
                              • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                              1. Partitioned fluxes (called with PartitionedStateFluxes())
                              • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.

                              FluxCalculator API

                              ClimaCoupler.FluxCalculator.CombinedStateFluxesType
                              CombinedStateFluxes <: TurbulentFluxPartition

                              A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                              source
                              ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!Function
                              combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                              Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                              Arguments

                              • model_sims: [NamedTuple] containing ComponentModelSimulations.
                              • csf: [NamedTuple] containing coupler fields.
                              • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                              source
                              ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!Function
                              atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                              A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                              Arguments

                              • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                              • csf: [NamedTuple] containing coupler fields.

                              Example:

                              function atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                              +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                              +end
                              source
                              diff --git a/previews/PR385/generated/amip/coupler_driver_modular/index.html b/previews/PR385/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..4352c24d9 --- /dev/null +++ b/previews/PR385/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,482 @@ + +AMIP Driver · ClimaCoupler.jl

                              AMIP Driver

                              Overview

                              AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                              • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                              • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                              For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                              This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                              Start Up

                              Before starting Julia, ensure your environment is properly set up:

                              module purge
                              +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                              +
                              +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                              +export JUlIA_MPI_BINARY="system"
                              +export JULIA_HDF5_PATH=""

                              Next instantiate/build all packages listed in Manifest.toml:

                              julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                              +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                              The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                              julia --project --threads 8

                              Initialization

                              Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                              import SciMLBase: step!, reinit!
                              +using OrdinaryDiffEq
                              +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                              +using LinearAlgebra
                              +import Test: @test
                              +using Dates
                              +using UnPack
                              +using Plots
                              +using Statistics: mean
                              +
                              +using ClimaCore.Utilities: half, PlusHalf
                              +using ClimaCore: InputOutput, Fields
                              +import ClimaCore.Spaces as Spaces
                              +
                              +if !(@isdefined parsed_args)
                              +    include("cli_options.jl")
                              +    parsed_args = parse_commandline(argparse_settings())
                              +end
                              +
                              +if isinteractive()
                              +    parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes

                              parsedargs["dtsave_restart"] = "5days" #hide

                                  parsed_args["job_id"] = "interactive_debug_run"
                              +    parsed_args["monthly_checkpoint"] = true
                              +end
                              +
                              +# read in some parsed command line arguments
                              +mode_name = parsed_args["mode_name"]
                              +run_name = parsed_args["run_name"]
                              +energy_check = parsed_args["energy_check"]
                              +if !(@isdefined FT)
                              +    const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                              +end
                              +land_sim_name = "bucket"
                              +t_end = Int(time_to_seconds(parsed_args["t_end"]))
                              +tspan = (Int(0), t_end)
                              +Δt_cpl = Int(parsed_args["dt_cpl"])
                              +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                              +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                              +mono_surface = parsed_args["mono_surface"]
                              +monthly_checkpoint = parsed_args["monthly_checkpoint"]
                              +restart_dir = parsed_args["restart_dir"]
                              +restart_t = Int(parsed_args["restart_t"])
                              +
                              +import ClimaCoupler
                              +import ClimaCoupler.Regridder
                              +import ClimaCoupler.Regridder:
                              +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                              +import ClimaCoupler.ConservationChecker:
                              +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                              +import ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!
                              +import ClimaCoupler.BCReader:
                              +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                              +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                              +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                              +import ClimaCoupler.PostProcessor: postprocess
                              +
                              +import ClimaCoupler.Interfacer:
                              +    AtmosModelSimulation,
                              +    SurfaceModelSimulation,
                              +    SurfaceStub,
                              +    SeaIceModelSimulation,
                              +    LandModelSimulation,
                              +    OceanModelSimulation,
                              +    get_field,
                              +    update_field!,
                              +    update_sim!
                              +import ClimaCoupler.FluxCalculator:
                              +    PartitionedStateFluxes,
                              +    CombinedStateFluxes,
                              +    combined_turbulent_fluxes!,
                              +    MoninObukhovScheme,
                              +    partitioned_turbulent_fluxes!
                              +import ClimaCoupler.FieldExchanger:
                              +    import_atmos_fields!,
                              +    import_combined_surface_fields!,
                              +    update_sim!,
                              +    update_model_sims!,
                              +    reinit_model_sims!,
                              +    step_model_sims!
                              +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
                              +
                              +pkg_dir = pkgdir(ClimaCoupler)
                              +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                              +mkpath(COUPLER_OUTPUT_DIR)
                              +
                              +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                              +mkpath(REGRID_DIR)
                              +
                              +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
                              +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
                              +
                              +@info COUPLER_OUTPUT_DIR
                              +@info parsed_args
                              +
                              +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration
                              +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                              +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                              +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                              +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                              +
                              +# user-specified diagnostics
                              +include("user_io/user_diagnostics.jl")

                              Component Model Initialization

                              Here we set initial and boundary conditions for each component model.

                              Atmosphere

                              This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                              # init atmos model component
                              +include("components/atmosphere/climaatmos_init.jl")
                              +atmos_sim = atmos_init(FT, parsed_args);
                              +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                              We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                              # init a 2D boundary space at the surface
                              +boundary_space = atmos_sim.domain.face_space.horizontal_space

                              init land-sea fraction

                              land_fraction =
                              +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)
                              +
                              +# init surface (slab) model components
                              +include("components/slab_utils.jl")
                              +include("components/land/bucket_init.jl")
                              +include("components/land/bucket_utils.jl")
                              +include("components/ocean/slab_ocean_init.jl")
                              +include("components/ocean/slab_seaice_init.jl")

                              Land

                              We use ClimaLSM.jl's bucket model.

                              land_sim = bucket_init(
                              +    FT,
                              +    FT.(tspan),
                              +    parsed_args["config"],
                              +    parsed_args["albedo_from_file"],
                              +    comms_ctx,
                              +    REGRID_DIR;
                              +    dt = FT(Δt_cpl),
                              +    space = boundary_space,
                              +    saveat = FT(saveat),
                              +    area_fraction = land_fraction,
                              +)

                              Ocean and Sea Ice

                              In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                              In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                              @info mode_name
                              +if mode_name == "amip"
                              +    @info "AMIP boundary conditions - do not expect energy conservation"
                              +
                              +    # ocean
                              +    SST_info = bcfile_info_init(
                              +        FT,
                              +        REGRID_DIR,
                              +        sst_data,
                              +        "SST",
                              +        boundary_space,
                              +        comms_ctx,
                              +        interpolate_daily = true,
                              +        scaling_function = clean_sst, ## convert to Kelvin
                              +        land_fraction = land_fraction,
                              +        date0 = date0,
                              +        mono = mono_surface,
                              +    )
                              +
                              +    update_midmonth_data!(date0, SST_info)
                              +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                              +    ocean_sim = SurfaceStub((;
                              +        T_sfc = SST_init,
                              +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                              +        z0m = FT(1e-3),
                              +        z0b = FT(1e-3),
                              +        beta = FT(1),
                              +        α = FT(0.06),
                              +        area_fraction = (FT(1) .- land_fraction),
                              +        phase = TD.Liquid(),
                              +        thermo_params = thermo_params,
                              +    ))
                              +    # sea ice
                              +    SIC_info = bcfile_info_init(
                              +        FT,
                              +        REGRID_DIR,
                              +        sic_data,
                              +        "SEAICE",
                              +        boundary_space,
                              +        comms_ctx,
                              +        interpolate_daily = true,
                              +        scaling_function = clean_sic, ## convert to fraction
                              +        land_fraction = land_fraction,
                              +        date0 = date0,
                              +        mono = mono_surface,
                              +    )
                              +    update_midmonth_data!(date0, SIC_info)
                              +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                              +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                              +    ice_sim = ice_init(
                              +        FT;
                              +        tspan = tspan,
                              +        dt = Δt_cpl,
                              +        space = boundary_space,
                              +        saveat = saveat,
                              +        area_fraction = ice_fraction,
                              +        thermo_params = thermo_params,
                              +    )
                              +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                              +
                              +elseif mode_name == "slabplanet"
                              +    # ocean
                              +    ocean_sim = ocean_init(
                              +        FT;
                              +        tspan = tspan,
                              +        dt = Δt_cpl,
                              +        space = boundary_space,
                              +        saveat = saveat,
                              +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                              +        thermo_params = thermo_params,
                              +    )
                              +
                              +    # sea ice (here set to zero area coverage)
                              +    ice_sim = SurfaceStub((;
                              +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                              +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                              +        z0m = FT(0),
                              +        z0b = FT(0),
                              +        beta = FT(1),
                              +        α = FT(1),
                              +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                              +        phase = TD.Ice(),
                              +        thermo_params = thermo_params,
                              +    ))
                              +
                              +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                              +end

                              Coupler Initialization

                              The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                              # coupler exchange fields
                              +coupler_field_names = (
                              +    :T_S,
                              +    :z0m_S,
                              +    :z0b_S,
                              +    :ρ_sfc,
                              +    :q_sfc,
                              +    :albedo,
                              +    :beta,
                              +    :F_turb_energy,
                              +    :F_turb_moisture,
                              +    :F_turb_ρτxz,
                              +    :F_turb_ρτyz,
                              +    :F_radiative,
                              +    :P_liq,
                              +    :P_snow,
                              +    :F_radiative_TOA,
                              +    :P_net,
                              +)
                              +coupler_fields =
                              +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                              +
                              +# model simulations
                              +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                              +
                              +# dates
                              +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                              Online Diagnostics

                              User can write custom diagnostics in the user_diagnostics.jl.

                              monthly_3d_diags = init_diagnostics(
                              +    (:T, :u, :q_tot),
                              +    atmos_sim.domain.center_space;
                              +    save = Monthly(),
                              +    operations = (; accumulate = TimeMean([Int(0)])),
                              +    output_dir = COUPLER_OUTPUT_DIR,
                              +    name_tag = "monthly_mean_3d_",
                              +)
                              +
                              +monthly_2d_diags = init_diagnostics(
                              +    (:precipitation, :toa, :T_sfc),
                              +    boundary_space;
                              +    save = Monthly(),
                              +    operations = (; accumulate = TimeMean([Int(0)])),
                              +    output_dir = COUPLER_OUTPUT_DIR,
                              +    name_tag = "monthly_mean_2d_",
                              +)
                              +
                              +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                              Initialize Conservation Checks

                              # init conservation info collector
                              +conservation_checks = nothing
                              +if energy_check
                              +    @assert(
                              +        mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),
                              +        "Only non-distributed slabplanet allowable for energy_check"
                              +    )
                              +    conservation_checks =
                              +        (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))
                              +end
                              +
                              +# coupler simulation
                              +cs = CoupledSimulation{FT}(
                              +    comms_ctx,
                              +    dates,
                              +    boundary_space,
                              +    coupler_fields,
                              +    parsed_args,
                              +    conservation_checks,
                              +    [tspan[1], tspan[2]],
                              +    atmos_sim.integrator.t,
                              +    Δt_cpl,
                              +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                              +    model_sims,
                              +    mode_specifics,
                              +    diagnostics,
                              +);

                              Restart component model states if specified

                              if restart_dir !== "unspecified"
                              +    for sim in cs.model_sims
                              +        if get_model_state_vector(sim) !== nothing
                              +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
                              +        end
                              +    end
                              +end

                              Initialize Component Model Exchange

                              turbulent_fluxes = nothing
                              +if parsed_args["turb_flux_partition"] == "PartitionedStateFluxes"
                              +    turbulent_fluxes = PartitionedStateFluxes()
                              +elseif parsed_args["turb_flux_partition"] == "CombinedStateFluxes"
                              +    turbulent_fluxes = CombinedStateFluxes()
                              +else
                              +    error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes")
                              +end
                              1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                              update_surface_fractions!(cs)
                              +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                              +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                              +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                              1. each surface component model calculates its own vapor specific humidity (q_sfc)

                              TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                              step!(land_sim, Δt_cpl)
                              +step!(ocean_sim, Δt_cpl)
                              +step!(ice_sim, Δt_cpl)
                              1. coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions
                              if turbulent_fluxes isa CombinedStateFluxes

                              calculate fluxes using combined surface states on the atmos grid

                                  import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc
                              +    combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts
                              +elseif turbulent_fluxes isa PartitionedStateFluxes

                              calculate turbulent fluxes in surface models and save the weighted average in coupler fields

                                  partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                              update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)

                                  new_p = get_new_cache(atmos_sim, cs.fields)
                              +    ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)
                              +    atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                              +end
                              1. given the new sfc_conditions, atmos calls the radiative flux callback
                              reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux
                              1. coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types

                              and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.

                              import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                              +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                              Coupling Loop

                              function solve_coupler!(cs)
                              +    @info "Starting coupling loop"
                              +
                              +    @unpack model_sims, Δt_cpl, tspan = cs
                              +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                              +
                              +    # step in time
                              +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                              +
                              +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                              +
                              +        # print date on the first of month
                              +        if cs.dates.date[1] >= cs.dates.date1[1]
                              +            @show(cs.dates.date[1])
                              +        end
                              +
                              +        if cs.mode.name == "amip"
                              +
                              +            # monthly read of boundary condition data for SST and SIC
                              +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                              +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                              +            end
                              +            update_field!(
                              +                ocean_sim,
                              +                Val(:surface_temperature),
                              +                interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),
                              +            )
                              +
                              +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                              +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                              +            end
                              +            interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                              +            update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface))  # TODO: change to SIC
                              +
                              +            # calculate and accumulate diagnostics at each timestep
                              +            ClimaComms.barrier(comms_ctx)
                              +            accumulate_diagnostics!(cs)
                              +
                              +            # save and reset monthly averages
                              +            save_diagnostics(cs)
                              +
                              +        end
                              +
                              +        # compute global energy
                              +        !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing
                              +
                              +        # run component models sequentially for one coupling timestep (Δt_cpl)
                              +        ClimaComms.barrier(comms_ctx)
                              +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                              +
                              +        # step sims
                              +        step_model_sims!(cs.model_sims, t)
                              +
                              +        # exchange combined fields and (if specified) calculate fluxes using combined states
                              +        update_surface_fractions!(cs)
                              +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                              +        if turbulent_fluxes isa CombinedStateFluxes
                              +            combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)
                              +        elseif turbulent_fluxes isa PartitionedStateFluxes

                              calculate turbulent fluxes in surfaces and save the weighted average in coupler fields

                                          partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                              update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)

                                          new_p = get_new_cache(atmos_sim, cs.fields)
                              +            ClimaAtmos.SurfaceConditions.update_surface_conditions!(
                              +                atmos_sim.integrator.u,
                              +                new_p,
                              +                atmos_sim.integrator.t,
                              +            ) # to set T_sfc (but SF calculation not necessary - CA modification)
                              +            atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                              +        end
                              +
                              +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent
                              +
                              +        # monthly callbacks
                              +        if trigger_callback(cs, Monthly())
                              +            # step to the next calendar month
                              +            cs.dates.date1[1] += Dates.Month(1)
                              +            # checkpoint model state
                              +            if monthly_checkpoint
                              +                for sim in cs.model_sims
                              +                    if get_model_state_vector(sim) !== nothing
                              +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
                              +                    end
                              +                end
                              +            end
                              +        end
                              +
                              +    end
                              +    @show walltime
                              +
                              +    return cs
                              +end
                              +
                              +
                              +# run the coupled simulation
                              +solve_coupler!(cs);

                              Postprocessing

                              Currently all postprocessing is performed using the root process only.

                              if ClimaComms.iamroot(comms_ctx)
                              +
                              +    # energy check plots
                              +    if !isnothing(cs.conservation_checks) && cs.mode.name == "slabplanet"
                              +        @info "Conservation Check Plots"
                              +        plot_global_conservation(
                              +            cs.conservation_checks.energy,
                              +            cs,
                              +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_bucket.png"),
                              +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_log_bucket.png"),
                              +        )
                              +        plot_global_conservation(
                              +            cs.conservation_checks.water,
                              +            cs,
                              +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_bucket.png"),
                              +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_log_bucket.png"),
                              +        )
                              +    end
                              +
                              +    # sample animations
                              +    if !is_distributed && parsed_args["anim"]
                              +        @info "Animations"
                              +        include("user_io/viz_explorer.jl")
                              +        plot_anim(cs, COUPLER_ARTIFACTS_DIR)
                              +    end
                              +
                              +    # plotting AMIP results
                              +    if cs.mode.name == "amip"
                              +        @info "AMIP plots"
                              +
                              +        # ClimaESM
                              +        include("user_io/amip_visualizer.jl")
                              +        post_spec = (;
                              +            T = (:regrid, :zonal_mean),
                              +            u = (:regrid, :zonal_mean),
                              +            q_tot = (:regrid, :zonal_mean),
                              +            toa = (:regrid, :horizontal_slice),
                              +            precipitation = (:regrid, :horizontal_slice),
                              +            T_sfc = (:regrid, :horizontal_slice),
                              +        )
                              +
                              +        plot_spec = (;
                              +            T = (; clims = (190, 320), units = "K"),
                              +            u = (; clims = (-50, 50), units = "m/s"),
                              +            q_tot = (; clims = (0, 50), units = "g/kg"),
                              +            toa = (; clims = (-250, 210), units = "W/m^2"),
                              +            precipitation = (clims = (0, 1e-6), units = "kg/m^2/s"),
                              +            T_sfc = (clims = (225, 310), units = "K"),
                              +        )
                              +        amip_paperplots(
                              +            post_spec,
                              +            plot_spec,
                              +            COUPLER_OUTPUT_DIR,
                              +            files_root = ".monthly",
                              +            output_dir = COUPLER_ARTIFACTS_DIR,
                              +        )
                              +
                              +        # NCEP reanalysis
                              +        @info "NCEP plots"
                              +        include("user_io/ncep_visualizer.jl")
                              +        ncep_post_spec = (;
                              +            T = (:zonal_mean,),
                              +            u = (:zonal_mean,),
                              +            q_tot = (:zonal_mean,),
                              +            toa = (:horizontal_slice,),
                              +            precipitation = (:horizontal_slice,),
                              +            T_sfc = (:horizontal_slice,),
                              +        )
                              +        ncep_plot_spec = plot_spec
                              +        ncep_paperplots(
                              +            ncep_post_spec,
                              +            ncep_plot_spec,
                              +            COUPLER_OUTPUT_DIR,
                              +            output_dir = COUPLER_ARTIFACTS_DIR,
                              +            month_date = cs.dates.date[1],
                              +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                              +    end
                              +
                              +    # clean up
                              +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                              +end

                              This page was generated using Literate.jl.

                              diff --git a/previews/PR385/generated/sea_breeze/atmos_rhs/index.html b/previews/PR385/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..0e9504c8c --- /dev/null +++ b/previews/PR385/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                              Atmospheric Model

                              Atmosphere Conservation Equations

                              Density:

                              \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                              Momentum (flux form):

                              \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                              Potential temperature:

                              \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                              Total Energy (possibly replace potential temperature equation with total energy conservation):

                              \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                              where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                              Tracer transport:

                              \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                              Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                              \[\rho\tau = -2\rho\nu\nabla u.\]

                              Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                              \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                              with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                              Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                              Consider components of the viscous stress tensor in three dimensions:

                              \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                              Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                              \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                              Which can be interpreted as, for horizontal-momentum:

                              1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                              2. Vertical divergence of vertical gradients of cell-centered variables $u$
                              3. Vertical divergence of horizontal gradients of cell-face variables $w$

                              and for vertical-momentum, as:

                              1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                              2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                              3. Vertical divergence of vertical gradients of cell-face variables $w$.

                              Model Code

                              push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                              +
                              +using Test
                              +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                              +
                              +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                              +using ClimaCore.Geometry
                              +using ClimaCore.Utilities: PlusHalf
                              +
                              +using Logging: global_logger
                              +using TerminalLoggers: TerminalLogger
                              +global_logger(TerminalLogger())
                              +
                              +using ClimaCoupler
                              +
                              +# set up function space
                              +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                              +    FT = Float64
                              +    vertdomain = Domains.IntervalDomain(
                              +        Geometry.ZPoint{FT}(zlim[1]),
                              +        Geometry.ZPoint{FT}(zlim[2]);
                              +        boundary_tags = (:bottom, :top),
                              +    )
                              +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                              +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                              +
                              +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                              +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                              +    horztopology = Topologies.IntervalTopology(horzmesh)
                              +
                              +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                              +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                              +
                              +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                              +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                              +    return (hv_center_space, hv_face_space)
                              +end
                              +
                              +function pressure(ρθ)
                              +    if ρθ >= 0
                              +        return MSLP * (R_d * ρθ / MSLP)^γ
                              +    else
                              +        return NaN
                              +    end
                              +end
                              +
                              +Φ(z) = grav * z
                              +
                              +abstract type BCtag end
                              +struct ZeroFlux <: BCtag end
                              +
                              +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                              +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                              +
                              +function init_sea_breeze_2d(x, z)
                              +    θ₀ = atm_T_ini
                              +    cp_d = C_p
                              +    cv_d = C_v
                              +    p₀ = MSLP
                              +    g = grav
                              +    γ = cp_d / cv_d
                              +    z_c = 100.0
                              +    θ_b = atm_T_ini
                              +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                              +    θ = θ_b + θ_p # potential temperature
                              +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                              +    T = π_exn * θ # temperature
                              +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                              +    ρ = p / R_d / T # density
                              +    ρθ = ρ * θ # potential temperature density
                              +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                              +end
                              +
                              +function atm_rhs!(dY, Y, params, t)
                              +    ρw = Y.ρw
                              +    Yc = Y.Yc
                              +    dYc = dY.Yc
                              +    dρw = dY.ρw
                              +
                              +    center_coords = Fields.coordinate_field(axes(Yc))
                              +
                              +    # spectral horizontal operators
                              +    hdiv = Operators.Divergence()
                              +    hgrad = Operators.Gradient()
                              +    hwdiv = Operators.WeakDivergence()
                              +    hwgrad = Operators.WeakGradient()
                              +
                              +    # vertical FD operators with BC's
                              +    vdivf2c = Operators.DivergenceF2C(
                              +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                              +        top = Operators.SetValue(Geometry.WVector(0.0)),
                              +    )
                              +    vvdivc2f = Operators.DivergenceC2F(
                              +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                              +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                              +    )
                              +    uvdivf2c = Operators.DivergenceF2C(
                              +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                              +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                              +    )
                              +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                              +    Ic = Operators.InterpolateF2C()
                              +    ∂ = Operators.DivergenceF2C(
                              +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                              +        top = Operators.SetValue(Geometry.WVector(0.0)),
                              +    )
                              +    ∂f = Operators.GradientC2F()
                              +    ∂c = Operators.GradientF2C()
                              +    B = Operators.SetBoundaryOperator(
                              +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                              +        top = Operators.SetValue(Geometry.WVector(0.0)),
                              +    )
                              +
                              +    ∇_z_ρθ = Operators.DivergenceF2C(
                              +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                              +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                              +    )
                              +
                              +    uₕ = @. Yc.ρuₕ / Yc.ρ
                              +    w = @. ρw / If(Yc.ρ)
                              +    wc = @. Ic(ρw) / Yc.ρ
                              +    p = @. pressure(Yc.ρθ)
                              +    θ = @. Yc.ρθ / Yc.ρ
                              +    Yfρ = @. If(Yc.ρ)
                              +
                              +    ### HYPERVISCOSITY
                              +    # 1) compute hyperviscosity coefficients
                              +    @. dYc.ρθ = hwdiv(hgrad(θ))
                              +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                              +    @. dρw = hwdiv(hgrad(w))
                              +    Spaces.weighted_dss!(dYc)
                              +    Spaces.weighted_dss!(dρw)
                              +
                              +    κ₄ = 0.0 # m^4/s
                              +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                              +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                              +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                              +
                              +    # density
                              +    @. dYc.ρ = -∂(ρw)
                              +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                              +
                              +    # potential temperature
                              +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                              +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                              +
                              +    # horizontal momentum
                              +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                              +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                              +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                              +
                              +    # vertical momentum
                              +    @. dρw +=
                              +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                              +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                              +    @. dρw -= hdiv(uₕf ⊗ ρw)
                              +
                              +    # DIFFUSION
                              +    κ₂ = 5.0 # m^2/s
                              +    #  1a) horizontal div of horizontal grad of horiz momentun
                              +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                              +    #  1b) vertical div of vertical grad of horiz momentun
                              +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                              +
                              +    #  1c) horizontal div of horizontal grad of vert momentum
                              +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                              +    #  1d) vertical div of vertical grad of vert momentun
                              +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                              +
                              +    #  2a) horizontal div of horizontal grad of potential temperature
                              +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                              +    #  2b) vertical div of vertial grad of potential temperature
                              +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                              +
                              +    Spaces.weighted_dss!(dYc)
                              +    Spaces.weighted_dss!(dρw)
                              +    return dY
                              +end
                              +
                              +# init simulation
                              +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                              +
                              +    # construct domain spaces
                              +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                              +    center_coords = Fields.coordinate_field(hv_center_space)
                              +    face_coords = Fields.coordinate_field(hv_face_space)
                              +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                              +
                              +    # initialize prognostic variables
                              +    Yc = map(center_coords) do coord
                              +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                              +        sea_breeze
                              +    end
                              +
                              +    ρw = map(face_coords) do coord
                              +        Geometry.WVector(0.0)
                              +    end
                              +
                              +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                              +
                              +    # select boundary conditions
                              +    if bc === nothing
                              +        bc = (
                              +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                              +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                              +        )
                              +    end
                              +
                              +    return Y, bc, domain
                              +end
                              +
                              +using OrdinaryDiffEq
                              +function atm_run!(Y, bc, domain)
                              +    dYdt = similar(Y)
                              +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                              +    atm_rhs!(dYdt, Y, params, 0.0)
                              +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                              +    Δt = 0.025
                              +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                              +end

                              Coupled Atmos Wrappers

                              # Atmos Simulation - later to live in ClimaAtmos
                              +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                              +    integrator::Any
                              +end
                              +
                              +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                              +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                              +
                              +    atm_integ = init(
                              +        atm_prob,
                              +        timestepper,
                              +        dt = dt,
                              +        saveat = saveat,
                              +        progress = true,
                              +        progress_message = (dt, u, params, t) -> t,
                              +        callback = callbacks,
                              +    )
                              +
                              +    return AtmosSimulation(atm_integ)
                              +end
                              +
                              +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                              +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                              +end
                              +
                              +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                              +    # reset flux accumulator
                              +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                              +
                              +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                              +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                              +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                              +end

                              Coupled Boundary Conditions

                              The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                              To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                              struct CoupledFlux <: BCtag end
                              +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                              +    # flux calculation
                              +    Yc = Y.Yc
                              +    uₕ = Yc.ρuₕ ./ Yc.ρ
                              +    ρw = Y.ρw
                              +    If2c = Operators.InterpolateF2C()
                              +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                              +    w = If2c.(ρw) ./ Yc.ρ
                              +    cuv = @. Geometry.UWVector(uₕ)
                              +    windspeed = @. norm(cuv)
                              +    windspeed_boundary = Fields.level(windspeed, 1)
                              +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                              +    ρ_boundary = Fields.level(Yc.ρ, 1)
                              +
                              +    # build atmos face fields on surface boundary space to enable broadcasting
                              +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                              +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                              +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                              +
                              +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                              +    dθ = @. θ_boundary - p.T_sfc
                              +    heat_flux = @. -λ * dθ
                              +    @. dY.F_sfc += heat_flux # accumulation
                              +
                              +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                              +end

                              This page was generated using Literate.jl.

                              diff --git a/previews/PR385/generated/sea_breeze/land_rhs/index.html b/previews/PR385/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..08cb08822 --- /dev/null +++ b/previews/PR385/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                              Land Model

                              Slab Land ODE

                              For our land component, we solve a simple slab land ODE:

                              \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                              • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                              • and $F_{integ}$ is the integrated surface fluxes in time.

                              Model Code

                              function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                              +    """
                              +    Slab layer equation
                              +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                              +        where
                              +            F_accumulated = F_integrated / Δt_coupler
                              +    """
                              +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                              +    @unpack T_sfc = du
                              +
                              +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                              +end
                              +
                              +# set up domain
                              +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                              +    FT = Float64
                              +
                              +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                              +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                              +    topology = Topologies.IntervalTopology(mesh)
                              +
                              +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                              +    quad = Spaces.Quadratures.GL{npoly + 1}()
                              +    space = Spaces.SpectralElementSpace1D(topology, quad)
                              +
                              +    return space
                              +end
                              +
                              +# init simulation
                              +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                              +
                              +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                              +    space = hspace_1D((xmin, xmax), npoly, helem)
                              +    coords = Fields.coordinate_field(space)
                              +    domain = space
                              +
                              +    # initial condition
                              +    T_sfc = map(coords) do coord
                              +        T_sfc = 273.0
                              +    end
                              +
                              +    # prognostic variable
                              +    Y = Fields.FieldVector(T_sfc = T_sfc)
                              +
                              +    return Y, domain
                              +end

                              Coupled Land Wrappers

                              # Land Simulation - later to live in ClimaLSM
                              +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                              +    integrator::Any
                              +end
                              +
                              +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                              +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                              +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                              +    return LandSimulation(lnd_integ)
                              +end
                              +
                              +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                              +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                              +end
                              +
                              +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                              +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                              +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                              +end

                              This page was generated using Literate.jl.

                              diff --git a/previews/PR385/generated/sea_breeze/ocean_rhs/index.html b/previews/PR385/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..fcf619bdb --- /dev/null +++ b/previews/PR385/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                              Ocean Model

                              Slab Ocean ODE

                              For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                              \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                              • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                              • and $F_{integ}$ is the integrated surface fluxes in time.

                              Model Code

                              function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                              +    """
                              +    Slab layer equation
                              +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                              +        where
                              +            F_accumulated = F_integrated / Δt_coupler
                              +    """
                              +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                              +    @unpack T_sfc = du
                              +
                              +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                              +end
                              +
                              +# set up domain
                              +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                              +    FT = Float64
                              +
                              +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                              +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                              +    topology = Topologies.IntervalTopology(mesh)
                              +
                              +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                              +    quad = Spaces.Quadratures.GL{npoly + 1}()
                              +    space = Spaces.SpectralElementSpace1D(topology, quad)
                              +
                              +    return space
                              +end
                              +
                              +# init simulation
                              +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                              +
                              +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                              +    space = hspace_1D((xmin, xmax), npoly, helem)
                              +    coords = Fields.coordinate_field(space)
                              +    domain = space
                              +
                              +    # initial condition
                              +    T_sfc = map(coords) do coord
                              +        T_sfc = 267.0
                              +    end
                              +
                              +    # prognostic variable
                              +    Y = Fields.FieldVector(T_sfc = T_sfc)
                              +
                              +    return Y, domain
                              +end

                              Coupled Ocean Wrappers

                              # Ocean Simulation - Later to live in Oceananigans
                              +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                              +    integrator::Any
                              +end
                              +
                              +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                              +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                              +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                              +    return OceanSimulation(ocn_integ)
                              +end
                              +
                              +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                              +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                              +end
                              +
                              +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                              +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                              +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                              +end

                              This page was generated using Literate.jl.

                              diff --git a/previews/PR385/generated/sea_breeze/run/index.html b/previews/PR385/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..28cedd9f4 --- /dev/null +++ b/previews/PR385/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                              Coupled Sea Breeze

                              Overview

                              This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                              In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                              import ClimaCore.Spaces as Spaces

                              Model Initialization

                              Component Models

                              Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                              In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                              include("atmos_rhs.jl")
                              +include("ocean_rhs.jl")
                              +include("land_rhs.jl")
                              +
                              +# model parameters
                              +const atm_T_ini = FT(270.0)
                              +const MSLP = FT(1e5)
                              +const grav = FT(9.8)
                              +const R_d = FT(287.058)
                              +const γ = FT(1.4)
                              +const C_p = FT(R_d * γ / (γ - 1))
                              +const C_v = FT(R_d / (γ - 1))
                              +const R_m = R_d
                              +cpl_parameters = (
                              +    # atmos parameters
                              +    atm_μ = FT(0.0001), # diffusion coefficient
                              +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                              +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                              +    MSLP = MSLP, # mean sea level pressure
                              +    grav = grav, # gravitational constant
                              +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                              +    γ = γ, # heat capacity ratio
                              +    C_p = C_p, # heat capacity at constant pressure
                              +    C_v = C_v, # heat capacity at constant volume
                              +    R_m = R_m, # moist R, assumed to be dry
                              +    # land slab parameters
                              +    lnd_h = FT(0.5), # depth of slab layer [m]
                              +    lnd_ρ = FT(1500), # density [kg m^-3]
                              +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                              +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                              +    # ocean slab parameters
                              +    ocn_h = FT(0.5), # depth of slab layer [m]
                              +    ocn_ρ = FT(1025), # density [kg m^-3]
                              +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                              +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                              +    # coupling parameters
                              +    C_H = FT(0.0015),
                              +)
                              +
                              +# DSS callback
                              +function make_dss_func()
                              +    function _dss!(x::Fields.Field)
                              +        Spaces.weighted_dss!(x)
                              +    end
                              +    function _dss!(::Any)
                              +        nothing
                              +    end
                              +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                              +    return dss_func
                              +end
                              +dss_func = make_dss_func()
                              +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                              Initialization

                              The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                              Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                              @info "Init Models and Maps"
                              +
                              +t_start, t_end = (0.0, 1.0)
                              +Δt_coupled = 0.1
                              +saveat = 1e2
                              +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                              +
                              +# Initialize Models
                              +atm_Y_default, atm_bc, atm_domain = atm_init(
                              +    xmin = -500,
                              +    xmax = 500,
                              +    zmin = 0,
                              +    zmax = 1000,
                              +    npoly = 4,
                              +    helem = 20,
                              +    velem = 20,
                              +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                              +)
                              +
                              +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                              +
                              +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                              Remapping

                              Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                              atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                              +
                              +maps = (
                              +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                              +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                              +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                              +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                              +)
                              +
                              +# initialize coupling fields
                              +atm_T_sfc =
                              +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                              +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                              +atm_F_sfc = Fields.zeros(atm_boundary)
                              +ocn_F_sfc = Fields.zeros(ocn_domain)
                              +lnd_F_sfc = Fields.zeros(lnd_domain)

                              Simulations

                              Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                              atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                              +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                              +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                              +
                              +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                              +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                              +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                              +
                              +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                              +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                              +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                              Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                              struct AOLCoupledSimulation{
                              +    A <: AtmosSimulation,
                              +    O <: OceanSimulation,
                              +    L <: LandSimulation,
                              +    C <: ClimaCoupler.CouplerState,
                              +} <: ClimaCoupler.AbstractCoupledSimulation
                              +    # Atmosphere Simulation
                              +    atmos::A
                              +    # Ocean Simulation
                              +    ocean::O
                              +    # Land Simulation
                              +    land::L
                              +    # Coupler storage
                              +    coupler::C
                              +end

                              step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                              function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                              +    Δt = t_stop - sim.integrator.t
                              +    step!(sim.integrator, Δt, true)
                              +end

                              The Coupler

                              The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                              After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                              Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                              Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                              \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                              where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                              coupler = CouplerState(Δt_coupled)
                              +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                              +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                              +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                              +for (name, map) in pairs(maps)
                              +    coupler_add_map!(coupler, name, map)
                              +end
                              +
                              +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                              Coupled Time Integration

                              Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                              Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                              Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                              \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                              where $F_{integ}$ has units of $J m^{-2}$.

                              function cpl_run(simulation::AOLCoupledSimulation)
                              +    @info "Run model"
                              +    @unpack atmos, ocean, land, coupler = simulation
                              +    Δt_coupled = coupler.Δt_coupled
                              +    # coupler stepping
                              +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                              +        # Atmos
                              +        coupler_pull!(atmos, coupler)
                              +        step!(atmos, t)
                              +        coupler_push!(coupler, atmos)
                              +
                              +        # Ocean
                              +        coupler_pull!(ocean, coupler)
                              +        step!(ocean, t)
                              +        coupler_push!(coupler, ocean)
                              +
                              +        # Land
                              +        coupler_pull!(land, coupler)
                              +        step!(land, t)
                              +        coupler_push!(coupler, land)
                              +    end
                              +    @info "Simulation Complete"
                              +end
                              +
                              +# Run simulation
                              +cpl_run(sim)

                              References


                              This page was generated using Literate.jl.

                              diff --git a/previews/PR385/images/canvas_coupler.png b/previews/PR385/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr zvmi2SVOV(rAurly5%l$Uv+jBBYZJ^k8sP&~8Kl~MaR=j@+?sbM zW3$6Gzs;CoZtL#UvgA1!HuTv}9itV_C0jK81 z_mM5|&XvwgY;&peIFs98NalhiZzn|cVy#^;oL@s%bDlEK1XW+-Ex$Sq&rlzdaht__WJFGuk?oCQCbM8XwfLid)^Gu57lEx#=R zNm!{CVD=HcjRanTp8fPtz?K(DzV(6ImiO}ueuAEey48C~&{8#OhO%FgZw6PF9d@@} zZxl74u)!@}AV{DwzNbTu>v32F1F(X*;R+%jFpNg>5Novz1G*(Gt%=c6UvcrG6G@-a z{mGC+Nq0p{@*+w98J6u3}MJ zAGIHen?RMlEvAC6r$UODNS>NOPE?(V*LTabt}9LLPZx!HnZl>Kk~LJRpe;2@0MgqV zHCFdzIdl8~4tanB-CTU7LizN*KTG3-q44?32X8C!*WL>2zb(a9mLC|(t(*gTyI+Mn z&o2N5aJ_1(e*;PbBdm7Ui#SS9e?1^7Ss1AJPviF^Aq+5FsYvAj z6h>Ob`LD{BlJEIT^SS_J)O=CPy-7?jf=_}+Zqvb0i#F3v_?K!B0@9^&&Uz67gnv>O z%71DulGvY7A?S6hlyC}3+RWLT!7Q(uax%^cJ@uESKkkv=tX2KwrWwj-tNH-`@gdB> zwP#z=G>@k$mGZxrH~}&wgIt=yyTZK7@eZ}?jyq}C`rZ!LxL17B(FtgON@g7XDUpod z{Vz%+e0Fv(XoS&Lb!bkP>6l-6L!$^f_MI1PhY%5JWsE&$ilIj_Z5DSot0ed*^BwsS zIwxFN#uR%U9KS=_b)b0s4 z1kjCO0vPxt|E(sb|zhwh1VF9RATnHWJq87z_25oVQ$7J6)?z{8uV4X;8lDV_n*4 z#Wvy#=sr2Hx7wL_QTgVdQug(|zArBh@`A5c2JcjK=AGa`z3l`j5eM#_`A2l8`ZM~c zSJNGH0ou2>C77r3_4*CvO6a?e?>{&Egx4DsM1ha|E|oaJK95Y|U4c_$whryq`t~jJ zW_MJ3YH)1|Gq%n#|L>PFs7i*#*C<$aqo&68N(-Lon{g8j*x1e z)3L#8poa(1*}KxjoleVT?b(Z$Uig{iP0?D*Ra!3qtr9}KaXO)>SC62cHi z=R&9b8Un2z(nJNVJNI;JLlPo35t>M{LG`NvPyNZbR5eOM|q@UrSqs(E5 z%jb+22*A?H-@5$cSCWnp=+c@oVrm}n9C zCS$;_zMY4PAA8FLvduDz4r@Ss>(?1@ls5W7kmSX4{9jH}{iFZ=Fa@TA7eL`9B<_$j zQ~^Ci=lQg#pN96y;(`j7G*-T8C$O?=X-s_QAy4jn_amzyf2Lhgp&`>0R)KK;MxhX;SJq<)QGni^*;?$M5~!!8WM3ey^IYSk_Gbr|hIj%# z-=a#UD)!TKK+PLWyi<+{adP1!`1CorPG8B{zT#2YHo4pp?cVXFAfShB z!3U}L=6KNncCt#wwMP(@ zHV}ldfeImP(@0#R68DI^Yfbu+e^kWsZM!|@C1KDESt^f=7)GA7)^91dDpx^v=BYPE zcGnu2?|xBs?;dn6>3aWr|L*S-SPAM}2S0!eIuZZeYE-kNMvW}Q31#Ws&9Q<%1o6ui zLKxvk|My2I7W3c4)FW=gsQsAC(6|1X>+|ye8*%{=O0c zwTo^^Dr%M0Di{y7dZBmp;>r1D6(isQ=7RJNVYSi;Vj^g^cLEkxRqxLzl`9|2F7vv} zZc|Z&Xwu1DrQBibTZaPCphJ&`+pg0)i>^O<c_yAuxwMB_mo&#KsjZme9=V zr>dAmU)YXE<{BjKT`4Nt&0vPBZM;$c_&ZcF+oGjcQ)5u;zukw_@jLShv00NMpFE$D zbYC;z!}HpQ=3BF23EB$$SpFmM$dl|v#=uKAR2*ZjEa)SxoI2YCpUj?X_LRr%iCp$W zACvp(+F_$H*%j<>U2bfg;>+%S_9<-$QuSKh5?czZg~yJy|H(bohvyItbva+EvDVTQTcMP9FMusrlYz>quci3B|u|h zex&=-Qm6cJ1Xli%H^DGz-awkPNU`U~Si2mDVe_#z`m zgn<#0n*P0!%$FlYf+i1efr?iAmqkbauavGtkiP7Sl-H(r0_sPln=to}Zy%Uk5N~UB zl03eDKVVeePp>ckqtlR@PSQ?>^i&h z&ikA^2V<``+^prd0h7LG9r_sA`{M{7PfVN>PT1k(xbt+v8h6z`T!)LDg%Ym4&t$?E9SS!i;bM+ejvZk+D3(c=?s=)aK` zWKTa&1bj%co0d190k{cYS#n4o$VS5zjDrUVjb7FkB7C!#oS)O+tgNK=TCwp^UZ&RB zddO}LdyMlC9I9MN>;2#`;ONdh?q>>Ck1$X&zyCzt_Hb4W#i8;3ec#0Y_l?0Og?NvI zp$1T5nOI4(Q|HApkspD$5HO|kb$dU7S#C_EJJQy@$Fj};Cbq?GX|ues(m0RSNdoLl z)K~E+{-o;h*XBRAM6PJcSP7W=USHpLuxfkJC8uWR0Ity(?=w1s6Lcj~xzB}t81Z}s z4y7N<2|GLicP`Khg!D^Q)J1&=USQ{80)TTe0k{eAKsoh!uvw>VLk`c#xqAzxyvO0Jk)OShjbB zPue_L;TMI~o3DIVT+En1{;s%}&p*6)z7;|cPxHPa?C?Q#>U(*#;FIq;5(>I;5IWs7 zb`sKEAnlDbydK}U@-~d>p!q2Wcwg3Ei~0)uwjFVwK5kwnRVGTnO|m#0ln7pP5g`dD zRYyzjq5Gx(xK0xz*)-#L>RG?Y;* zoIo#hu~RP%kM^n;L=9;hV&Y&WFi&EvYm=x#Zg#;DOvSf{U2fnq-&k^oShQi6lx~Fa*Mg0@JGncugxj=O*ld+z`@41Zhp4n(bTcJ zfa!99YD3YZJN`X^P>Z_O+Gmm=qpy7kEtugqe|H_NTb%YY${H!f)703j zJm95DTTk&7U21SJ(ogvX@auLy;k^4E zP8wYEn0GRT?c;|Gy4@@-I3LF8yfH{gX;N5@@E!vzl4XLnny(8wKa$R^LEwu;zO<~8 zkZIt=eA;`EXT)19k9>EgI8FpKYwLKX#p;-v+!hKuAcOvM!Qc=X%YHeZu(V71W;v`3gLUDLeW=Is(b6k7_FBk3w=8Ad#=*+!xY=3HS2s!iOv&DGTCUsuFVHmzACGx#RP^K zk*lJ#J<(Is{N_XS<+1n3Anzqd{HwobMo5j)4f2+&>I zn#jWjUpwyw6z4}YA|*Imks_eo6e6BU-kl!ghs7K_T?8$&)Oe?vzoiGA#8VWwqcV_a z9PbhsSEO!AeXh$jf@vhu;Wr!4%6^wbwLtM?&qJQS;SRHexERa$=g+S-1gJiuoStv$ zUT~x|-cD}>CcLMN5aX40?AC^E&~POuAH%B{9?;+Y9KLmfWkh!>a*_1T~n1 zs4k-^!u&co;(=Pmmy5TD9e*Yh&xG#6qQ?~DUhn*Q3!vIMhXGXpWlvCr@;*H}_<69~ z{^to4QB8h}e|-XTM#X~)n_*TkX{diX;oH7vly2%_D#L{lr3O9>sZWfO?f-e zca7zAY&82*B2euo?9RzV6EBS}yPb_X!dQNXc(HezKi=Ma?Odk81WNr`#=RF78!g~g zk1AY&n{~av!rbwr^D0x&tnAr8D&fJ!G&eW-)j^FeOLNe;S07n?F4~i?4smg5KrZzA z3rZFQ)u%k8Tr`xrV6vFf!O|N|KPb`yW@ZL!qAgfU`M+CHzx&4>W1@q2On)&y08VI( z|19_Tya3|x7P?Q=5N*+bq+t$hqb8<$lVmZ&PU9N?5>a~qn5ew~(-AQOHgggFW{xT}h!Wt-{4YcDXSyc#UVK%L@y4CQw z4T*79tl^f-lW|4Dlr>x*o7rB_(+Ug`(+b#7XN`I8OmO1Ci3uS`07Pm~Yn}o%2N}}5 zJ9uj(e)s#<41Yemg?kj(_RSx$qvGeQi2;`H@n`5C>x$yuTpmYX({z7s+WP1bfocUN zC=&$<-+=lt!3j1{zMh;R1+Od9_5Tp7iqeIkf2yvke&q;4J8T9Tp6CK}w^#>+JugD} zn1IWMej|117{(2jfp8Qf`Fx^uFqAm*TtX-R83AcTzL4vF0L2q(w;0~?PL>RJ2W&K>fH;zp< zylh4ZYOf}3VdcT^Px`5V4;FS6orp}Tklr0b()oFHD^7~{R*pJOTq!Ba5)f**8o1I= zy5!}iQ4?+GxtD)dWFTfaqm57jyu!d*RmARdv&YVjtV;M}d9+0fb=lVOKH}7A zVvnDo)Xj4%q)gFe7vp)>>kmQTO)9fI_qN=Xl^VI{2w658j#sQBmb4GhO~!t|^L0HE z4s#WeHB66MghKul?Djc&+X(#JK%{Siwl)#}ZHQ|7=KsHok;i{4mtQu7h1BynS^U=B znlnh&@`~M+NvkQ3&#b#>6em zP#b2s_9+*)XHxeaNK&!0p0j%A#ASC%au|eGwLOH;S!@jXpA=*iI9OsB?=tlvEod`8 zTc1l*`eVW7Qc_)}{}e$Y=TF?U`}T5j)Ywm@Z5Id;(ss5Hyy^7a>6**FI`O3KfuDqc zz60qIgjIo)0P5%af~hkA*rZ9xsas$LQS_pD1+;CMl$^g255*+XyKG^FO3idqh3ueP zT<#AFq^Rge4IFUCoAYEAK)&j^R$fQEgO-aA7 zSXWZilj~hIQiexw$nO4<-QabBJmGQ?2z@K~k@OU@h*h}A0#rqu<*NLX)wZCy8e{o{ zCro!csbLbDa=a*NBZ)oEW5)E2^0LdDoGo|45#h1Lg-FA7c^L~gVxTF%r_iN|>D-gF zzR*H}?#dLN=qiyng^7*l*UsOiJr>JfX9hK?gZ9XpeyvUDJ%883(Bhmu=MhoUhkVEE z<%HX>pIJ~&CUhN`|6J&GXcJvlG+}t{vkv#)sk9xTxJ{FU(E;(JA)6^r9f zn?W1kl{t|OF2ewjb7;Z1mh-hFqlv4Ga&)NLaZcb?#EDk&feN?>DFrw6tp$H$UN|>HUi$FB!eOz ze0NgnN6ak2IM=n7sgPhEAIOksf;>7`T=VD-d4EEJruB-l*!sG^!U6_onb))(6^qx6 z6yA>K3NPrGVaMFx+#iZHSr~9fYw|tDuxYPN!)go~Aqz$?w=*bcHHmbm9+d0xcep|_ zQ%_=#&ss%4LlCSh>wLJHxem*0E>SlcIaj1}Z*RfW2^jTQsaG*Wj-bZF?BTPeC~v4& zi*|Nrmau%FD0lcRr-+en0Vz=%d{If1S0C%&9F@`8ZE#wImzb9Dseb#GE$8ihw(Tuv zaf&eu!)M29moC<3S~B(p!-81a_o`MGN8i2(VjoTKQ!?{jSPtev1^I`61Fo7u}E`Ar9hC2E?9v|z4nMj~2$E*ASnXxuWS_9m&A1=+4* zI>(5sg}?E-(u-hQt#jNQF4FrZPp1)gW<}&s!%o=H3To6cd=1-DG4g!1uCpd&kQ=#H z!6{z+qGl{IF>3#eUzXKld~r?skhAPLUA~x7GPiaY7Ig46dX`C|ab^xsb5f?ySBC>j z=yy?yZ0T2XIHZP5Jvi^jAz5LSXsQE2Ya}8RR)3Nh3|6i zbV^hWLT5kfNzrT!qXkNUx0wGd@Bi~Zi}JOATlI6gy?n=K+LP=)S@ z)C{9kY4a-&!$m<3jnKK1n#4V~1dls^sc9zHvSqw+C90-;Za3T-?`sa`BWQ*mS~vE1 zFbqqZvSl2(9NMF&eG_BcI6P(088SKvIhK4nI2is|ZhwwU61Idf1xmlT4DD}WrsA+} z6whhxtZo@2+~Io@#Ft~t^FuC-0%i?ujW?=;PPQ?qCG)HQTIh!rVYROaQg=;Hj#?w6 zSNmB4CYR6CJ+8!-RR&oX0cgt;y7C=ee`=R_XWewoE!CUC6-Xg5+U!_TVY~}?Pl{l6 z;HQ~SU$g{PT1U1XkIF{3t+nxd=m-WAX)@&W0wwCSry5%kS6NI>z7|Yun*~KRQ{Sy? zy~nr&%|ezW8EaW}1p3d#DYARCgz!5`Vah1f3uB}_ybc-u%- zZ#0wcsvE)?DNA+vFcFJ(Opd7K`q|&YJ@)l`-e&o`PvXVjo=Luncj1uEk`=>KJ$;OqoxW41TKdK zb;kDsuB$Nfw6#AMzJGH&VLEf#*IoQ`ps4RA9w6lqH35sW*JUq4ggu{H_FkudPDPp$ zx|G=P+m%}c-z^bB#gE7^GN$F)nv2<#ql>y4QkQww@h|b--&`qa+(%{{7o*!3r_zs& z`H?gw;%@)C8aIgj4bp>jM7(u$LNPg3DO}ktRDwyqE@%5;In7j#YktCWWQlv#wWj8O z70M%A1c}KXws@aG+kXb7a5i756a8>>R1Gq@qMUWwY_ndpnl)~URIq0EsW5x_IzuY+ z5ar@FQeOrc-Kns8ysw+B@zM?}d?6FH^76Pg2NC2krLsd}(tSBMBFOcyw0KJpH6&+; z;)puT$jv#y%ye&1098KGT#rO4bKpc^)~C3M7-lEJ4pL6Hk>AUo&xP>s9>ePup8D23 zzDH$gEgF65Z`gD`xttMbWw}hJSrYk?7s0ysX;jnVV+74(QG3Fg`wjjh@zGj1?8pn7 zm+2XKe8J0#uJBbkafGc)#k!+7U#oK=#QJ*)t_(wxtg$)uf+*88rt;iBxH<#Fyw~Q{ zPS?Y0X%<|-uuH8F_}p?mbnW5dJ_i}guQhvjd!~dAVqycI$+Zw{ehWHvCwdj;kS*nm z)mZ?cd(pHg(v3&z>`zf3uOf#PNH-irpCZPR+Psf^hZLwbdlyBplXAVVPdr2xRTH~{ z;|kYmL2K(KY|F7W7=7}Q@4GD8;>NNpiuE}TEmrVIZ^KQ@!6mWdIpr6t{@ky5&(Imv z(a=-B?i{=MiN~XO@9$yrbXt0~PFIo&B+r&=YhvRT3uktr9c$n+CU`sTbv5I5z81Va zgDLaAwG*5RhL!+9N)=i z>RF?un*OYGNN=Tz^n#WhvZ@cZJ{YxhaKa9oEZPD79&W$t>{uGoZ!ihit9}Daa?EJVWZ{B;xU4JCi(hs8Geo{vHZnI4v)1CCb6Js#^(`;M{s=#o!}5~? zA0>jH3MT_O$+Jm!cHv|Ym7W1N_D+`h;yjO@Emc87gFjNLt@g3*tHU2+)7_H#eoHITdF z>{*w!7G$ND-ysd$H63(0L<}rtdqxN=ziDA#xoRe%yje!cem+u;;*@GRPA{83cxVZY zZTi70swAcu<>I(B_^8cntnztzOlB-+xE=|fYxd4|6h;H|@I6C4_fDEswP51gy#($Z zZ&TL;u2L!u*Kp~Jf3<3@`(8%bmW8?|$_mE}y`YOww6VBRD{uOptgJ|Z%7o_R8$uj& z{YIaP)VChl5N|-gT_p^NgSNhjEJ>+b*mmx+^3$o%4yjmt+SYfa?Xru~a`oK4|LfB|f%kK4 zF!>_L4F*fULnlvY1xdY3T%AN8li}tZh5mA&L<^sRxgR~>ocJ(!i-`*Vp@pMAucC$Q z13mM|M8B`WonSOTY4B7nE^fV{5C0(4w?j z{Dhfd*A0bg@X0Mth^?>gwNVNfRk=~If%|;z>I^CyR_u*je|-X)%nvNoxvL)k)&nxB zumzf8#5 zkt$z3E<0XbXXvo@-t>=3d`oh00=vVE+r8Y5OmE3{i(x&w_v!YyesLi;{EXc)xlza{ zfYRcb4K0*IH4nMz_XgY4d0l#v+$#e1Ax2V12BnRaHh9xO#*B+`dvr!(YK$56EkW&G zLJ&HswAC9YR~qasjw2I@H+4E|jc0x~tXP*(QM+UQl;H0Eo}31)=egh?gOrNtF+Bj2 zVbR^i$$)LW2i&fS41bFgaP9`&fVy_;;!0TX)l@^OnT6UEBFKGd3oZxlp=(6zqBvll zR1OVR&zdScDG3H`E^Z%4F6Wzhcd!}o`W?^eVtWD*1q z;^#w7Jx3als;he0KD8BmgQTn7l}OxP`1-^5De&XiTjuCU=xie7t$e1@kmFT@$QGyx zy)E*jO*Pj+h}FYgf%IJMD=)bEt{b$*+_-Am?_ce%{*h{GLYHklRw(b6z2+|kIh3$6 zza8dpN6p)v0Mf@8RHVR)?Qr`RXTvYKc29351jox&${UJYnw@#;*vyg{-88il4H|2u zR19B5CjeEvK{#+-2F_jTJ*OtyaDWyICHDJM8qc-Cz^}L8w9?!2{B@oR9I86P&ZJlcqy{P#cah+Pl*X}-M%H&e%g z!}&)P(2!0(kGfaNX2Tl$8_+!hnpNns($I3~XB$UrypS%fo*FI7Lw0e+vs9<8@;FEKwYha6CkkZ@ zz!krh#$i;hvb(f_eR#Y~Ibbojt8h4W7W|SJ83N*BQR z@gi@-@qoL7J_mYrwuqwi00QNJ2g-{LZGBYg+gb9UB7Nd6Elopx0X%!yU$0YM#qnB2 z(q`1cJg?HgE&GB%A)gE+7)T)})Fg{$)4mBqZE$G^1u>+|EUK&o|Pj=^(ss zH){*zHb+gU=jT_WaEyA3r*6A9wSt>*nq%_((wYO(7Mo7qUG zQSV+>Ou;6sl2+rqD~SC)oGxnC9~7+Lh{Jp~2bkW>jMfXHg<&@wAWG z+@Kn`A>SE8Fw7bGz`UGw{FfF$T6~77h|eJrA}tvK-PcM7b~n_HQz5|G`Nz*_L%!$7 zZm3T)7-ZK~2*iZQt6Oj^jzy4v1wKb_L9nS2=>PGAsLPZ^!R`r0Scy{EiH6$WKj&?X5FH4s={L*+{D^0{0W#wKBHj;%`*y>Q4CTlEzS>)+1-rDHMsUr0#F z(qbLRTNlr=g5Ewnuifz78rYY?bRe22MenaJy1L@YwLN;zo$f3{@wG#JmqALnELJz} zE^oBi{6y}-LIvZ9Yp|H|&1*9klHWtUg&Nt3l0`3QModzpw`Dke>+jrF7m(oBb=fI~ zACqX@wu~$g=RPr@W{9>`4>n{7jEVY4G~=Jp|5EQ=f<0kFg_uE)>t)~)BI&v??Zz7I z+eP};Qf`pG8#N05{Gq13XotzVKhrws%YBE;mZ zc?>7;|8su@fYC((1vu*R#JT~B2fXp$jO<&y5{-^!1f9oPqH__;WarajwP%z4A=Vwc2#Qc%lS%i~jX9s^)xd%VgUpIwnu~G&+zR_sy zEkR?}1ay!)ZvqZKY*JN7pC)DJZz1d{_~~IkoGFr@y!}DrdAb%t zqMH`&hlU?MBc|{oA%`PrzIox?olEP;leP0!=2Y@N1?npKUSQR>5}+NA6gpJZBjvFL z9+n}3nIT-7pau!cA&foJ@6SD;u_$(R9|^|oTeyZ+)NwEb+-smHPBr#M9zNZ!$W~${ zWQ2D=bk=|C7fEc^@|)|d5-=VGRfON(_Tmd^89jEjrGXKp?_XR_2V zwQlL^2*=~2b@*6u@vaT#Ua3=UCJvMY!G~PIaBp6SgvS$J2K89TYF%Xi2RA&@sBx)D72fapuLPdq1gLjmRn)HS@&EBT@h~Ctv~}vmVHET#5zoUWA(NhEA%Vt z0=F6kB)`##ynz3CUN1cMzv}!<$Nr(j#qFnRUPAD-ZrVXn{{M_ z`CLxRqim>=mWWS$DSz8a0J+;soN@52$jIk#BIzqH+0b5I)$#mIg^ z$8wvOJKi3xf!F0NXKy#rS;RNiOB%GLe{)G#%~pr(>)fg`k!q+B+3 zpP-F)Bm+%zJTkSOL!*ZJ^Rk-l>5Ku8=O@sw3|hb;()F->zc;-#vZFMa?jY8E+T}}a zQkQ>!{8*pTp_QRsI9AbOphI(eeL>6Z)`b37M$(57M7Yk6M5?-4pB^(IrGE;tJ$>@K zM<-cFXieuuyC{$lI-q7cZC|NcQ_Ma~7hb7yJDMY-8*dpIMScU409M-yjL2jIX0{a8 zf1%06Z8?(v9Ap0?h4Un1YVNhlv#%}3QOj&!(L&mFDsg-fcPR26$8QVEb+IiT*(1V< za8r&E_q@yNoSYf)&-el97ZhKIns=^G{5j6`+HLn0k(a>^VnCJ)Y#2IKsJ~9HRp>rw zGGQIbqTi>~YQ%WH0o0vtAV*zq0f?uTG%9sjRa)zCv^WbrBV_zWUB?c)^CxPQ_w+Dn zh(OX=P$~bXP8-2Q35y%>eKrm)9gktKHqm`gpJBM^^-i-#enq-{$S>^yv>n;OIk$(- zP%fi4;YD}v+4k9Z1nc!gC5PN+xwXhTCw_iK8+hJH_)1uElnNr1RBq8#dD1D8Ef*s0uFQr5FB%j zeLV><8CtmY^nqIkJGD@xmrq{jQyU235qETjGM-FG0y^>XIR-ot7dPKfI=jEni3KuC zpk17B8cVlr=*%~DqX%pq2!#3BCx#j9nx9oTim~55#hU+Fd~bczrvcvkr4xY>Es{uQ zrjPS)@-=*H(j-=~3baLaPQnxO_l`T)55wOthYpZTAEO+ zppdo{v}XDQhL|@yR@7Ri6`-;!`&`!pZ15QmH8l!BOL1REFts^-nfhD9_c8~9ivmrkGX*rq4$j%F=q zXmt04ry?tq_E_RQrz(!!XPx@?^MC?~UH~PLul$=9YLl5?DGX?@WeG?q2PbYE>;X5MtE~GLHVs zuMekI%nUD3lzlmrItE>()i!HL1O+cjwCf)8kJ20@2_qg}ieyP^X;GMT>DpJ66c5;vCX+1zYDL=%Xsk<&1Jf!* zPV3O2yPjc7ry%()>6GV!@1amN;Y*W`3R(iZH6)3}j_eH)0++QrNMC! zU8pESS8Nu_9t2R@ZYD})c%N(^0rL->0cKR!!`mQAND+IvKqh{rteZ)?K+ff_>cyG; zwra@pgAldmHVI+(AX?`r)oe1ahOOB9g^Wg;3+G45)mW8O;OZHj*Jn#}Jf?2j?r2MH@)a&+2Bk@4U>b@sQr4Zs&E#(b{& z@GC@;9I+12gQJS8z#BN!9`<}mWPo;*PTvBYRTejmimcz~r*Bch-wB;C9orl_V0fI@ zvR()MWjEFKxxDx+L-d~Jw)B0K$E}cF|Hnt~_D!jNu_E~o!>V7>j{LSTd+!Yu*>Tky zK44yxvUXw2U5m-4OO`K94P*0eywI@v?p`m!s&?9$*W`L-c>k5FN(}jxNNp;CMzhOH z7eW^imi@vgmJrLu!~cofQ<(CuRVmBFV?6Qg&$bV(412qvk^96lBR3lnH2F;tRel%{ z*OMz{LpeDpBe)Y>Uf1y557??q{B-+0Mr1&RmC#b%C@j7{T~Vm|^P)RyXvKBZhmrGQ z3Q#}%(^53jEu!b}O=^p)`tx~3)2R@eH@6K1?y@kqY@Vf(T+)>yG~SP~ZH~F>)W1?B zTbnAffyY!j8GJNbALd$W-ZX~0T_6z&YQZS!A^7$lU%^RT^L#5iOZjAEdcDpjoFpnr zFYEw*I$OVk3>tF*k^=nA(cL3>YE@&66_{25knRXj9<~Hu|0@pzP*fxYpH9Kpt{5jY zRE#c~QY=}CTwPb$;-?RpoO{LI-4`>KL0EzhiB8C7MJyk* zKm92|D~HPW%$XWaQc|UVIWgLCQ@nu@- z;`8&xrmL(y-`)}yT_bJ06Qhn0+}=gofDk=?BvX0k0t8wFc7r97G7W>E560>U|2v@@ z94M0-h&>b1<4p+kP3T=?RP<`7_Evv7ETH@kK+oL=*xe~jAF+02G+;DoFRXx94n{*G z?V4E=T(7ZDg%C{*nNo)+Gf}s-PP_(avIZuj25;B*Dv~2YC=X`VSs8_SxP!%$;b08Z z0_m1K(b|3kFnKe58y@|^(JsG{!Wm{(yPcr7(QHKsabYbMlcB5IWB?|KlOfL?Xi<|y z`nMJrF8%{Dm;M7X(-~{#=U+jlWmplMvk_{7v&9iqcgAHr9|-7G5c<%0^n(T71>>n; zFUrVoASdHI_E5g>JQo7e_OOV8j%Qn3=3dfAt0~@Kyq_d(u@jU3Z&CT|L=XC|HB5t{ zu3Ul;pRe--f=$(l%Q~brLZ`iUb6KoMD{dPpwXgf!ObSIWJpUmI#%|}Aosph*UxTA? zB{Q|}H;8lA=oGffpv}~)hLdb!2L7-V`IjCLA6_iwQ>@C?HVq9W~LhDk%ld~;Fehz~!OG9?zq?MHYG;O@+z^sVi zAOv|t=nJ?34$RW-PIbbkr`W=+$3_plC~-2HA*+?)bly6TNR`)E9YW^7Px{`kF_Eo` zC&v~9@=MsShSiFnG9)G=fJ`kwf}sI85!(90>khZqY8##o>xE=^_dl2)E15}`Zz~wI z_H`^5^}E=7M_I=4cPm{H1@M+@*l@oyvMkTg;+rU%{jwxjCXn4Q_WM4~a4R3>1N8{8 zrmL~!5xAzD8eC>;zT?popSr#-?#r~F-L=j*9N1Jx<<%CQ1h1;oJH)d(Pu0VOKvzg( zw2OtrOe$#UR*ckZ)?$!?^;$#PB2?XtSDX1y4GEw0Mvez}qqX*^X7fvSW~yEcxy%f2 zgL4(TmwzFii)q_|Ge6L&Db-V<9rGV=q6AKP`(7}>PMm(F*@4Y&PNd{F$}5XmmtHsd_z6p7?#0j?}kAGfRH0yy7x1I^L$@gWO=KsITJ_0|UqYW{A^j zD#hld)7OT3$)#iSTQB8i z?(*I03EIrd)Vxl8C`Q8jfR5vfwA29ElKfg0fu6?hK)?nM5}a!QT$wTRR{&XPYjXY9 z_sGBNIA6K5g|Ee(#44~L^V16JhtWQq@3%saR^C)wH^g^&7_0T3HqNU7OJiO6FH0mb zTgZ1wvHWQNz&rz;4ZT5Qp8bM-3$K1--o{jkwc#&U|VntO_)595G~o6L|3>rcV@K=HDEfC8nVLr`echsw&>+pWrGe&t$R4 z;pJ5ehNTfvg8yXR#m2^V-ag#V?84wAq0H<)JV8%=(H1w^vPBT#iw@RvZkiNdcbotEg6mmN{nva468`w}}r`cs=hfnK!B?oI@GEaTMincMi=?#5MAH)Gq7 zF0F?m6Ce1c)h;6IU^0X5>``jFhq9ch6=($WYp)H>;}lqI5+bax4{5hP6mBbD>*26R zmh%4}%HA?4j<9Rj#hu_DBoKl-!JPmBf{!gqXU)6wHt}C;LSh9P%vc_Ax8VD)#%u`WCPlx6|LaN0F zrzsTAMZ^@=YSKyIdXaMC2w^-&oe%J6Srg3=Z?M8SXNNj+$ex#IKI}Jexfkt!3h8=* zW^Qq{&xQ1#N#7cY{#DZ3vkzEc>rs2XuB3O2Wf_L$5-sMZs{T_-mr%3W4fnh*Llj^8 zsIAY0>q}@7tQ3%m>+5|p&2T;%SIXQ|a@fkQUsx;JQ&M($BU1IZNOjElKlSaIfZn>r z4B0J#{{aUDuzK3CraGRi|D(?aXu;+$oXPxRSE%EX6JKirLpL}=jIJ4XqAo?<$$fq~ zj^rDGf3am=QTRK2BduW8n~*mh7_R8_&}=fW^VUB^52m8MK6lq-M!9scjuvG+_T}o- zr>LD;KD!{HUiQ#%bMuO?Jq}06Efo2E9Qc=-p{GO~KZg(@exI#(ef>fW11&gcVl-54}CJAP3H;a*q11l;ha&R6S$qK|K6jiY&V(+J@0FOS&K@BUi(_|p@J z10+pPTj|9_EzG0i{#0$$$1spEl}@cpk^MwA*^;_rF|^r}Ig_Rr+xI$`sfth554e@p z{751;=j>{~G^1fP?WCRq5Dwe<4-@(3IfN`)+j>}{DXkmPE)o$YVfN0a8TOew4UJQ$ zV`3`b99`|rzGFrSyJ*%ZEa4D+njH(e6+Z7R$o03nj_L4Qo?-hQgocsn;qcvNHr)JL zINj=6q`4;?5rf_Tm-~t;8KJ=AlIa*Z>NNNa>i$Iy|K7l&cV(*$zmZv)sWw9(>afeV z>*u=clvCpl!Bv|$wg`V`p+UoZb^RehlLB_$A}Md+_5KN<4ElmJejXM)PO75*bG?gY zwh{%kK~qq7{({7hYFj7XLbb+V=KgQf1oBA3!Q0(#fyF7LsT%5-Z8t}SEg?O%5=3~6 zyPcA+Tw~GEqCqYb682H(p65S`6QGs+88A^7U9s(IYP}b$H=ZCYI}Nxij-MLIu^FtJ z_id1Hxs2SkHaklwt+PqxJ1-KMIJMxP$H(M7FvJey0X0E?F7E??(@L%89Wcn)P^6LT zM^}g6;)ga16X(v3oODuOedXp|@~m0PbRzz-`mV#PH@}e(HzMBgUtx=11JBm(m67bK z+YXb2)+kmjzgNbeYSJ#MOX>Nuo4+lfOtp?g9E>oIqef9zt~6k@u-EXGG;?J^+vOwz&Ts8IsI1M+22ZV)hZnj?rEhF6`n#_t z`)2RT`mVNaM>DtQgaPspF<`dt^UjkVT^&$DEU}R>eMwR7c?g_&1R7Q4FzigtYscY! z0lyD>ix)`(A~PJcd&8&U?ta44vo;lnH!O6;E&O6mH}Ng;$^OC(TZ8aB_Fg$;FS!}b zO>XI5?b!~`g=uMc@&qwhr$+;H%t(Mc(XS5oLiDDcm}F{uM4Sb=rk4Sia^c-H<0-QR$OsA#nC?(S~B@+dLl+h01tl6IIXC31|gtt(brU>=@jds9>s zbq@olI}B|6|~ddX}m~+9^1)Qdbb`J+zLhwYlYNW`nN-Ci_RL z;+RAi%^E*u-A4zPcFjuO^PGh2YnQPo*nunSmuN)&mD??EoZq$AY08Qlcy=0=dpLE+ zl{NAI<^dlC4sc;^x&8XZ7^YaI{P~D-iP)->2nT2@nLt&Td2qqL^$O~**FM+6nG*m%wvMkPxU3ICgFta zFK=waAY1yvN+A-KpAOqGaZ;Fu`%d9PAsVpvKa5+n3T7>!2&xLfvzA0Z@KLKYIBTpz_zY@A9JlHv@t4(eGczp>syv#Ru@cT(*Fjcu(ip-K78k z>Aa)#eW#}x>`&6M0DWY-WkHt0IWZUhs}ymex*9X8xFXa}i(NI>PK%i(adO?Z&m<|> zPHQ{`I0}4dH@ooiqnVb0&sMC==+hq+vr~IUa8!Y57=OaUgh4<;MHs}?5(3~z5K6nb z@Gv_qOEc9?l&5sZx_z|VSAT?@J}w$aNgg)C z{d3iU?hrsZ9#sSo6DDXfeY&Q9!i#su%Kp9ERTnVz1a$dZXs*f(QLz1&1vubu=`u`K%J4F^_S17_WiQ6wIl&;Ks) zc(~-oAP8(#dl9X5L!Db9E67h-%4E)z_5vv)eWAMZEP_}bzkypa%b<)03|fwWudm#D zQG<%;C~T+;>Hbr<*y?3Ic1q^<7a?~O{K6-tkTq*H5zqHyL&HBb4Dh%45p^yjyOdD> zf(G254%#mvpX+KwJtw0Z8m(2k9zSVOkZd4u(HhVv_wi>sG@hs(V{$xx^Lh$M2XFTv+{nH zWNS@^dny|9(_Pme+y4_le&%?5>d;(!3qJ38u)rUMhWs)fRuDL%iYVlW4GACEU^UgU zKNzUgRf~K6R&}-3AFF_GWv{r?m)i(ufsDua|=nU=eyHFpY>7d2xK! z!~9u06JaVMv``_6_xJspH9y<&RRlQ99?-6~bAy{c@d(~JL=Ptj&$J1K5QE-AKVs@yu%Orr8X{YYJhjM+GOCuYKaYi5ZsLE6MhSGm#5L zyAYIIFG5PZk;J&pHQDGnW2+p<98iv3zuG?0M3A4B*Y}n@`y$E6bxyuLA}>_Ctp4bH zmS;-opJtec&mu>pXT^CXQxURbgPX4%T88iRa0+&U+<}@3_2qltVhTlVm2eg)QDO9O zjL%gr7)2Z}rjuaU`cmVORcGAQ zVG}jKGuH7{@q5xlTLsQ~k3eq2l_OB-GD~}&Q#1OmaiA!Ngx}x4oaiK{KDmJ+$K+(* z?>x((Jxd0BLH;cN+yNJzV z`O;Xo$5(OwZx7Mc4{dhP{W5MP>ezV~&0$$fh!#R>)V3?WZ_Ilw*>Z1e@#-U1G0 zUhC(aH()oO4$Is8Jm>3kE+qZ;>})dMD(!G93x>FAAke#c!%%t@yT+St8cMM5W2ohn z(}*9ag0EinEgr%e6I)A!YDeekN66zcIUz*KqXyr}$?(oH97 z5OzBc?KV2+p}c~aU$1-G??Bo7mk3|AA>DMikRnl+)4?d2iaJSQ;=n4ZiXwEPepBk+ z^Cqcs*lc~R6_&y#oZ$lp?GdCd>Zu}Fn?pQySCjkdzfnR&>)3f1V`;h4tuH`1NQ2-HPaeiLKtmHq((6a(}h0#?lG?8$>$e17s)FO~w8 z=O+_y_lMuwVF@TQOn|J3&+~Dt@m^B?;l=jv-9FesQNr?@MEiOn5uq6?kK>Hxb{-Tb z0}ctQHC5WkA<_yBQ!=}F&??fsJqPnctFG>!lW#UZwhBn zfy&eZXGxzZkH~9FoEATiZ&59$w7k9=&pDr0L;$7*qVoC8yG12Z*sNak!-zlIbXEx!_p9NV1Q&yjpJ4DMmcQ&*isi~a z@ZyO-yZw$=b4EoxHRLVd<#)2^E1DK|X11<3|MG?Q10o~U?H{XFt3P8%0EoW-vZ2XdqgoGX-qp>_p~g#EtvN{*MDcFjC*R$tL#Su#FH*S7sX-Nb zTl>9@c`}j4yTXTi`N1J)I)C?grBi@D2G)={z^}af+{nHHl9q{Ll7x@-QHbu+#Wu0aOCS)j)C@4U`*O>0eRMWD7? zl0&m*lRE278M`-veF+>fYi0?gZz?;r7~d6QYwi&D>>kFn7r#G_PGRTY{id#zcp*SjISSONe}sG}6`1N3s1O17H^O zbSy2@8nl`5c1NTgeYc9j`jya{F`W=}X(~;ieHs|jL!G@?pLYnXS(uKxkmg!F14TXom4kk^g6x1!=C?q?-mR>|Js+sU)-6}IVm=o zVB|$qAD!=SCYU^o#3r*h#Y^Sgbe=$gmIfEVFW^6WW2P1R0M!Hfs#ZrCjhL7p;r)76 zWR#p3&5R{*R&Uuhd+Lv(v0e-z-z}hy$QgT;p?G*6JfNUlIJK`yFoi(ee6x+9E(%3A zlqTxU4Lr;tU3{3}vzXg++j_^H&j#Dy;&&W`^)ye}QjMWz=K@DFKXq$E@`b3J0l(b; z$J6Zq_Tm4JU0T^uomF`aBkkln%>=bp;|BOG14_xg7r~b^h@cW`A%jOOp*K-!ODK)z zW6scad^e>pT(=DuLGGA~uR&?CcyWD$KEcCYK&OS!ALO*y^c(gVzEojQ8D2`N&i2c} z;D$C%`|TaEK2L6wqzh`pY}(z zf6JW8qDfDkjq8|jKQyHu{Q9fDh8c90S67~&J?DBqX+x4V6(A|>f*^nZLRz@NE)-=5 zc|??UiEg8}y8W*86JSt*fRWrs7$|~F5T}qe{4=p1pER;sir<=e11~Diec*t(sCAiM zZsmmsp?<|WAXoN2N&1>dJ@S3<_-&IiR$Pb2$KX_ix&Xxd7_a zp{iR9oytKwvRA(Pt#8TwCSr0R->7nSZ3C)Erlka5Obxnu3C$P-y5u?@?SX_8_5?S zW;#lT+BYppk?#D&`3h2vPAyptAJ6li9KRI#S&gsF>QjFt zCVElxc>Vp#VGA=iCMMx-4>cwC=ev^2(eDh*N>Vli-pArDvO`KkV>yxKakh_=VDSg2 z8J(omrGF|BtylilfLTS?L$*e1=l^+64%Bn>eHBl+=|oQuX~@L$N+cPW18UW%qB{if z{Uzm7l*Ti{h9_$jsNk+#bZxb4gCO`PBIUY{-JRKc=7^d# z6`9XmjJSM5(jqYD#i)5Yc{o0(?x z_MIR)3nsarO48Mfe3*x2U>&`97MxFA^P+lkqq4FB5LNwn2qT8>qmiTE&cpc}9bF#wLB;bP z%J?TO-a>xM{XgDAn?}$Q(_L9qN`{klXj#9d1EU3DV^EZ3`YB4VealxYUf8KBcH^zZ z7;{+x^J}^I&5;SDkX07iCZVACfy7k9c%w2sdK2hj%JM4Y+v`nCr=4HNhpn#}1nSPeO@)4Qv>2Ka+`lzE0Kl1EU(v^%l}@#$kU~% za*p5G$X@PBW@~TXrOs0P*tczve{AU!koVd3lKDy~hIjVU=108$&`4{XE2F8rH*Gx0FvkK)7bl!cli=n6ZYTI zLLj_Txh;)A>#D)?s06@r)PMjN94`j2CFsxRZb$pzu28F0G+tBW4QWhuYv7P=VvcI^!!w=3(dyhgqgM*DL(|lx*Np+3+<1YqZi>o(_2;Y-6> zdMm43%z#{~$qHAOEr#FkMZWp}mhg~NgnTce+&eY|?C7jTew2;+VY=MC9X%gjEE;w% zC)=o!ThVYFVe|4w2HPhlX#Q9V34a;oA_P~Q(Yt{O2Pb?r5x zAz~`7QHMC;8wI^)Zuz=_rzWk+&L1-&bF-pF^r~1H5`N#Rx)KZfDnIy%3lC5$Nu3rO ziAH?wQonZ6zrnE8afKS+o_k@2C>|>FeD>!MWfJpaRQ%5S0cs-!uE<6%y3@wiUtEM* zJ7*aLDr)SkYj1nJ7Ai5G-L;Fo8omf$R;$GeIP~IJ6$Q42zPeuAGuQpRWB{-KKcWi% z_sew?V<48qzsB4DFA1ARJH*#oB4(buE7xv8j^cZB{v)Ja8vzElFU0hk?4`D^?7RoQ zpS;z)vmS_@%f2}3OiqZ&a=f#@^B!36v_}kd?muPI*{{FyWr^5tQ&L%N)SG7Pr+n=A zB|YUY?U%L&`%6ldkTQf`hy}$2`+>NV#z2%7AMK3WASkQ{bw|_xw#LiGXEcC|hnZZa zxSmK%%hS>7J+kiDlGV?K@VxPRcSkEr?uG+)&W6#+ z;ji`W6Dy5bRfmITW$%=2W%Xtq-82pWNGP%Muif`mO&1Y41AO*Bs=`purIIV#N%-GN z22*xi9kYK&+PS>IlcAx-6AI-AeHq?ZqOQi@dST`%1ET!F88^u@Bzz)Guqd>dyuKvk z<9gY%9qW_Fn6i7-z8s&|;|_jwji3K2k@?0$AT?L*?)9DvdePH2b-8N&qOZ!(POnL5 zqal;T#;u;5<3Sx+d3Sb|^vi%#gBC}Zo2A>i&G$HOHcAxLAZk>xiTl462UrL|4;Z@?VF* zg1Q0sS*&Vq9{B+>td`@Kqbt-uwum*h@+2Vaw_4G=7V-xV3IiwpNpXf;g5i6&f`};a z0}a4j=YKMMFL+UzNJqHr z9yidz7GyA|Rf1mU-MYILf}&2>OL~tuN=J&3&dw-`&JpRYdiQ+=ib63ttAHAdv}gcF zSu=Y;ytr=dZyKuoyi}vPjil7gY8$H(@obr5*1oGK0Bk@`35{-o=#<)n{Y{P*2kR-( z-hMCno6>YJ>oUF8;Exl7)DqIUGE97QpuUwuRLO#V;^F%Vf^noeb~-xtZPI7sRg4G| z2p%o=zM)-hC35SKo722B5Bno(!A)9WT6%|#c8SP0HvufZmy~%)@u{ z(BF!Gs=msYrb>B5u`ESOG0`y27n0UgsG7W5;x@xDo$gWv{p_&DCtT)5+T5mF-W}+K z99w9o4AS)_J?so;P+nc~jO&?b(8VMp#M&Zc%wv^XHdOb7R_c02>P|Koezk$~kFD~N z7pU4)?3mPZZ{6U({IO{--zEsjZ==BLA08%!Sv&cO&g)u4d4KgfSv-)&z$;AmWfW%Kgy*ek zhyHbwZo#ttRAZ5qw|bzdFoFLALxb@UcM0qx^Gf$NNhaHmy=&XWZ4M`1!?Ywv5(Y85LF)vWs_O|~fo zPb9o&nN;@Oc)EKpRxS+i_)Q{QLU1(=dHA zD7G)^D+}5f|bS3 zud2BnPMx|;)-0o_2ROAV**Bud$9#V7_2H!WsJ9^9P5%)Tc75zV-Rmsjm@DEIi@!-V z_R5N@DwI%GCu8=Y=lM)adIa<2L5@_q#6Byp>@|u#kI!{s3Zns4_&iQe>i|YAm*nX~ zkQpG!vF`^Uqc_4ujWYo6u<)teyB}2D?(JHx(812!by4@L8a)0k`@bx}Vr@UrsWbf< za8&WapF~)An1S9Xh(16~Ft3;?*i>VpFH~#ka6HSiq|AQ)*V;ppQimDE;v;QW1^ns8 zu{^(Zz#+@EZ)hO^y1zty01wLMsauVo0UHz#0hCX2Ap6=ttN5lv27qNi`$Ahtf!8+s zC+}*Z*7{!t3@CJ@2p2Yj0gry6={UT!)&BUbQJsEvm8jT8rKQP-s=1YZZJ^@&>fQm0 zk_a)91?y&yAu^YIRe_41hviBy^0_xo=e?916XK{M+V;c*Wv`^Z(b(DtzJQk1Z&j_@ z^~mSDFJZclfWh#nNk4vU;sec;E;O*D;b_N82ER$wR9*V5N8ZoB#m=*8hUt3ADfU86 zc+&vUk^^<>RCIXOp&Coy^E=h~q>CNlKFEtI@IXd2>_Z;zl~iiMr%KLVRw5R2jN6M5`8-u136{F8tD@JSHIK zQ%d=Srabd0Ude3?GARr0b$}-w%iL6N^3Q?(Z;tor^4s5Z8j%s|y2sCJfL}5PnCeMx z&kZBL32DL^D*V1EUGKTu`#FbNp&3b7nj3m5E=tjWk&d^hBqNyd z6z~sX|Lr1pY4!Gdw((K=2Tv#Qk>3XZu`_^Si=a;m?GB}-Ta&OJ@xnHLk#e=S zg{~w@jzGqv7h>qo;A3eq#>s^Ydc3P<;44MgewerNX-%5H0|Qt}7o1LmbMX4WTgQ9v z87$p*@xmYlB0`@Omtdtf-i!cJ=U^rLU_4*v;ISXe?_X-$ukZk&P2=7(V9rto^jfK~ zJnc}06@aq0`y*woxfH;~jD_kNUL#4pwgDBIyY`9X=0KQ&_a!&Jz>-z{$tyK_bwCQU z9zGiqS|(L(q@mX!Ox0Xg!M3;}h~ht&fF`2^SxgC2VOu2F{9yG$Msc(I7M)ey8}I^| z<6?+{x&z{oR{LV4uUY!evrFD-wd!M8{ei)U?Yw-Oi~wHIuZrkm`#1(4%q|+3N}(=c zn}xFHzS3E`b+n=`3l>;~KMTw;hE@ci1EQbhP72k=Bz)tT(s7r84xK{-5yTpzwoln> z#ixL+>5jFk^|?4{>XPtupzBY?M*k)7J;6!O#f6X0-4>_b07zo~gnl*dQ#X_yb^)PP z<`>A>d{AKsT#on7(PUrTA{ksC1$x90Z%KD+ZcHO{LjyZA7{2E;60%g1JkBsr?8Qpy zfDKn|l!d1F=JWCVWM&+F*OX1TF*G{|7I;pkY&}Jlq&1jPDtL{?#$<#~KT;TvsGpuY zZ)|izo?)=b$Y&1cUtRUN{&C6NWIk4U@Ko@}$60D@;eD4E=b-{9n+PPKuK4;ON@M*% zCm;W2KB6QGY40AuDnqWw@a)mFsS?ZU!V?O|_MVD$%|qE6H?kO_xw}r+(`tPMdwL2g zFr?fgg418P6<=c4tpC6ev~Jkg|HTu~oQ+FC7tq#4qW0t}5!!gY_xEiQ@1O z7v|m@L81eNm!5I5?@$t)Z)!t%e91jut!xH8*Cg!=D%5tw7!#x@9Ju#=S?teMCr^b~ zAy?1$ZF8GN5vJpvP2e3IIkSO>)NUg6sHlPS_pAWuU3vx8fey#--ZM3?)kC9Zq5MubIa9h-MKCa;O9UHG_d4SbB zKPsh*?At2IqqaL*a@n#K_aa&Lt{R&s^Aj43&)5QVQlx(J_X75dKXG&z5V53t{NP! zoI8)06-SR5lECOt;f`@SMCl-8ABY{DL?{3L*QJVdNoi4Z;ozxoNy3`9HEX>c_UC)9 z0)HQY586)ne-m9+r*JAxbY2Ku*!RHV4K?|4*CS@dfC9I+4#TQe+A&#QoAr|1LF3(L zdh)#}imJjD&uRqyPw_kd`-JbhRwCPWTy!TN57%nfBWc($Pvp^Ki z7+h&vssTc{*vq7%lL>a)<1`+Kwe?&>6fMwOz@<LF!7%rOMJhpE2|p-Y*FqFC z<=bJU`VK2K!o`3tIs}C6wcjM@zq8Vr{lEG6cy6!uBBJ|V8#4}f3?9Va$sa8*AD;|Z z6|6*ZFsBOtr?3lfv%WPyL;(@7abaG)r_8;cP5)B@weqdZG%$Aqv}{B|m}0C_g&xc7 zVNUd2&z!u+**oDw==ev3_aX+hKl|#jlu#^}9&0k-e3f!&Bu#4}b-F>Q`DZQ;`*_%y z+m(vcVC;23^D)p&B>bi6r-?St5A z1u^W7U0YS(TB6nQ?y6>&oB!qr$hZS{qX> zcQ^iEeC|qNff0fA4=}`gU9u@IVZ!Pg6aj;9eI#Xf=CPR_sE>>WGqvm0geH8vhW7$R zO9>fa`by1$lZyGLLcQc_rqRtKMfnTiwvQ3Nn8tc;(mX9E2C)o$Dp`qD4EYFhlWz`V z{Au5dLPORa@qv0jFeywtDQ=r4`4x-FDe9lEyjOiQHt#(mIf5_sk1DBOpbpY)v03zN zW`kGh+IfX(f_#6y1g4TC29+nQ)>oD2neIC$u*MrrDAN?JH&CEd5cnKf!E;xB4-r;qC^_%YTFv3?slUJ-AFw3rS_;-tVJ;`mTMoQ%fRWz$_ zZmrsJ&TFIFo3~oZa6jA+qn+jQM*7G5qLIv~eF%cs3{bz5)D%9cMEoRd8u&hRUOo04 zq*nKO&RsqDR(BV1?wk9l$%1a|du4*eK-_n9;~z*jBkj^GL(vEIa&t^!8cba`OwR?AXx+#yaat zqQZrfQ4$#eHtlng?d27Z)|KXoGpid1!`^trxpG&lucsph)|=4+ing28AQ2Bh*Fm5{ zEqJ}h{}cP)4Iy7v4VY8Rsl)DvjQo{oeaB{EXLz|m%D#)V_YTVSP`IuKGQYwJM6YYubd7JmN5~G#`@jl#Fobr`wfsm{$2DB znwd0OiV)`O^6%e2qF^N5w)*=~`<_S%{Z7Zj^!Jxe<2zyg**`q?FlYLz+S_fdsO(pd zbAW@_h`xM7Anzg3;U{v6yZ7T((>UA9BG}SGIs}cB3K2w`gx#KQT};%>4zs_bu?3Y~ zxv;>N(&3nQ_m9ii$8~yoG*(tTC};_yx~<&gDQrp+f=8|qyvxT#XZ)-$20%(!1_lDK z^FEjDXd%eAy>?A4sNLB~W+7#o6>vp9-n&MVMPiqc0sT=py&X!_%xCf8iz;-79@xE?X_ci$$Y%Vga{- zPb=)_YKjB>fXc=&?>!UIgjUUS(6>(Qot0qMd9OorH-+FZD#Td8ikgC_oGJ47&L82j zoHtVpGupERVAv4o)Nm8$Lm*s)!>By6;Zj0am%1EM;pQZ}X#q{JJ9P7PX(;OGDP7~d z67K@4t`AN8&o8%Mx%H46&s<-{F2jIi<+G?Es0M5jfr`@A*?G4d=NDS%4RD}GiIJ10 z$Jv)9gWi$v4Wak6*SiB`h1xS*qd6GpGZzx{N)x-0z-q+5zdxlW(GvCOqVQh)Hn8oC zx~v_djA}0bzVlts(1YjYF{G^a@QP-Nnfk9z5Cl-6?Af*B+{osdgSo)o#673ImZw?_ zPVF}-;u$Ky7Ruq8`&^B?n*8e{pR2)e1Oz|6(=~B%^tjR+wob`p;~X8>p8Ej@7wn~V z7{B*>oNx5vjY&9Hs9|{1srzcrLJ=JP8V9!e0XJoNQ-Ju-5*78D3|rz}$8jFT!c=AmEFEo9CHLV5N6%ici+d};5+sdJb z@HnkU0`UlA)ZOj`DU_XQNNfR&bd9h1mJ1a$<~+AaeFNjy%Q&cWE=y%_PA%5fCiG*1 zja{$k=i(w@XmAFxx;wF%$9{deW_2YEictP;bckqz1 z1(AEhF~1x`w>Y)@ZV%pj-e1f~90&$On0WLJz1&N0bK`LbgC{} z?b6R5SDHD{Uj;;dW`4XoQx4q}*uQ$)>^c+~e+pZ0wBElap-Cc>0vi2Su>^W&B{EGX zD2Y=9UB@tqo`OAa2FFt#$7TfQ!Yv$9%lowBHLHNkS>--;a#=ZzRway`cfm0u#qq=S z8(`KeVY|?dkw}`s=L9CQhi0_GoESn}`q#Oq3yq<^S`T}(2x*UA;@mV+I%+>Jnox?d zjEc^h*DhWO_fZGdnOu2b;7zjSR)}C(uzmtmkl$r6nSb=3BQ5OB|9aV66^A2|zKm;6 z$Q6&|JJ9@H^I~8jI$DVcwvoARb~kY84aThKvwa8a1*8YWW=d}n8KtoCufmaa5oqYi^S)x5|*AASdeQhNnrXO@HCs>C}k|)j=yh;1^5Cg9vDXR;%~7%>O!3$-Y_D?Y!vWd$J2PnHirw*!^dGvvR3=3#?>0n5 zmi#9bFU;uCK(ag${jwY~)q1e=a(}Lnc*9~9B#pSGHFKrsI!@M&$7*?}VMRY2f>1AuEA@NE2utf+kBcwjo|HR4^ux8Gu%#v&46Wv9cdPIT`$K?R zzF&t}8q|;ZE?U_z2#664!nF4kx2{?oA{@6}WcbP@z7R20f(;JJ(7!6W;gbaiu7r+V z@KF#duMoH(fC6q=P(|*!S-bWZTiklU;K2CNfmg48BB+%}cVFyz9iM_qLJ`n=PCNb3 z3;upLajIS%1HpJi^JQW6`goubPHfmTzV4l7W9{)7o9#V053{U`8sBWSp_ZwjS{a%ak|-f1Tq@ww7tNk@O(g414VeUs$Cfu^<8*&)bnWkRU3 zz6ZAW69y5zQ*8Y zy=Vpe`C(Somf_Zf)x_8D@wF660gQ2j2p_H}wZKVD{Ua_CD>r^N?}i`3CpL|POK z-off58MBtQObY1&{10{E{!l-v^t7s3eOzP|Yb`~pj%E=y-?FgJMU;Hjah7prT1aur zbld|&1$&--x`m_?vc~*FGk0$6LsnXf$Csgu)alRXnm|)#NVh|*Evg6GBloTe4m2|{ ze~y9RuNlKBfy+6`hK+*NW4ZU&_8_-bTA;^y5*PvV5mrOz%W>Lbn~Eo4Y~(-9j3z&I=T2pMcjgK8Xw}tH3&2CdXn@?kw`h zq$ECGHgrUmwp8Q3F3254^K;?^Mg%0iDW>F(pFjrKD~I7IoOU5>Lq86h{34lJIw$7O_#emL^a=bB*4};*>F0RRunTh7~&@|6RPR`E~@mH2PNOeSVAF^vCCC|*8PoE zrOZg8paIKE?T3NrSWnO5h*@Io2WY8ozOe#jTH`5k*3b8L4HFss&LRyTj9cdDu*ZE0 zQ=oU4Tkj^75-h#8bhQ&?fq3&Vvacx5;;c3j8Qvwryydo+en|>`yIw9PjSZWZss*2kAwa~-0#)n3oCH6t(YZv@gEZtq`zdz~h1qo;;~%H4;Y+uxf@ z{PqEQTk(!lZgNk=MSM23xV52IcS5<+egds2@1kmlA|VRy1W;3SmlEQc9E%biN=3})b`=eOm8 zr_|CM&o4Y)Y=Nqi@KeA)4q>?lc!Hvww2vo$h7_#4UYC%S%1$> z>ALPil7C21Q!(Nv*HY$Glp2-#vj5;!g+O_48Fus#o91us6co<4;|}iGNGozt#AUiP zf|kV*=eeMhm(qY41blu!Vo2n+)>pS1(g~j*<`JDTCbIL>X$S0s6NxV>-h&obRFNwR z&X4!}$@ckJ`z$Bf>G(SS7iDi5S5@0>57QytC7{x<2}$Wtq`Nj9(jeU_As`?~ZIEt| z+;o>nxur|GySw3C=>42?K0N>DocD{r4Q`h!=5?((#~gDE>tZYdCfSch4cS$SW<8}} zW^6w>_%Ofij1%Ul5UXmgj#)FCl;H?u{Ddx8ySKE$#H*itjjP-u@+wjts3+==?$h}pNjy6qt zBNaaiTe9D2M5KVTlPV03{j_hDhauRl!6YwWZGYcOo|}mQj$Y951x8N7;Ch{cKa*le z7a1^SvNE1&f%@xB#KbYOr@iv-00wq}?Vpp`o1 zSIDA>w?b1uiT_DF^ej49a0W@-yq1V9o2s!dter5h_vp3$f7qJ12t12}w<4F|)*2=M?@P}9XzIj47lq=f34W;fccfkx{E} z2w&an;2_S<$uq3V4bVwTJbcBsTQ}kG^0z%8PjC1gv__aE?3@W-Q&#aFGm38R(7`q( zyRlCe1E%{fw;rM5+rgH0thBsre!J6%W&gZK)uLIUj#Zk`JWL0^Qa^xf1645u_ z^I~e#GBBqJXQGe2W%?RCrWdBv7ocp&hjzx*ITZ{dZO(*ZssraWx3iXLBNjni$QAtd zdOg>Lg!nxxau3lNn8|?kB*v#ih1Kjs>HmeKE_3?>)X2Qqny87Z>16 z0j)1cS@7v%dw^cNTZb^d@wpuP)u+|e_*}J$%D}a^G-WAP0WT)I-$i%5HmCo``*>_< z?W-=UAr)=q#Ob#C9|2eiLoZ4H{{%Td!q6>jq>!e{2=%f`U<-mNNr~TR25^}C6bGCZ z;K+UW>v;6U`Unx`!eg-c#Fy>;S`lDvEnglQ5MWFrLfQF=AL?kW9Jb|Ae(8JZz&Upr zY*N6NCST{|M&O~z8AJ_+02psLZ-$O|h*Ivfp(z6RV6=VvdokdWH^I43JA`!ewdvSqoMM-OKYhYfHoQ&D z!rnBlpp%|nou+>8V`Yj3HvJ&D0ooKX-=^dj=rV-c7-yei_3^{BP6rltKcVANY#X(s z62q7D723;%kcrFu_$GA3m3B6?rzxC-XEzL0edBS0MydDKTpjV(AG?NslF_x@l@LPvX9xB5~aQREz^Ch%kh%Ysw(cR!}7e9bo?Hh zUS=+=Pn9TVqqm#!X#T*8;gWV};lVCQ+NEf}cmyI0HW2PboKUnxO~IjWXTdOgCI5DK zo{;RG^ZQ~yqqxMx+5|I4gFVe|G}d%WB~u&d?xT?>3Y7p6a#!@r~ z#BxwlpmbFI-ryo_DEl3q6m|-_7eb=xBGTo|ME3LB|YmSQUiAVWGR~J3n#8{ z;cZfS>a+@8O*m&xgw32G>a&VLbD^s&PSkv@0cOx%2t{`9Vt_T={N!d5w zg9#h7rH)d*42FyjGhf~0rY%OO%L79R&Lgic=U-??Yr_C2v{Ybw=Omr)#buY}$_sQR zB5>IUlW>v2j!lJFWTpW|E5@%moafuB!r=p&4A(AeWYs?*QVVj|C4Q~hTg7e-KL zHgxuDs{`449A(w<_j#2t!4v&P=evbhm=Odfgi@iY6;(r z8_q}THM4V}K8M0JnQALWXs5g#)KV(TXlGsHnuL(136`5YxhF82aVII^9geW5b3%Kn zNGeKLVT)G zSfTP4Yl0G83#&roS^XfH&F3V{zJeT@3{*4Pu1j#`o3Fl4wOhyMx?}!Yl{M*26_P=k zmRbL>^J>fi*aurKu z{9=|0L4UvKMXYvgI-hRWv6zhU)n*T-1I4zpp%UWrmrlDTON9y}8&r2mcm$@?%5Hg= zXmjCfpC8`Z%RYfoH?;^f2SSA?Xu3poNHB^Y7>Ag(gf6ZMCp#{Q0t|f*1XKSM}&4Z!e$H=8;5Q0}1QxqtY<+*0P2&{YGTxnc_Fy3z>s7 zi>iCF<@8$7QPa4%s6r6!-iSG$oEz#jqlW#A?=adYRMEDkD%D(>jL$DUs3x)$%hHYc z(=q?Hj%Eigl zyoaK9KY$|t;Y}M56lr@lGR6&>H<+-93*64*@2!8LUgzf1gzHfhA^piLpcDK35@7p^%(w{^xtb`Ai z*OkYL1y^3WIW2CHy`QK_GWuFRI(5EJW^a%gZ~q|QeV%(dYUr_+i*sC?Y%Tp15aG{Jm|4Caax$4G zmCs+Vun)8&$9hbR$IePU*P?DcTRl1diC+B< z*-}9K2~NGs8q|Ka=Iet0f=g^8KtlV2%Yy(@Y#sx%aa}+QWv%b$C^n$2Ma|OoDw;G} z-MQzuQBCsW8hWg&bMgSaU)@k;d-V>JftJth*qW{9h@)I=Ub^O-|FXdLCws}Otn)R` zgAq%}yEeC#hr0M&e+CIQ>bd|aSK(m78*jT|w;*RMZ*mJ#3{x=Xgv+-x^aHMmWX8_r zJ%{~JQ~EBCwL8{Mr@4nPg%LjWx^hcM209wYjtk0b59`_cU(J!5tMP9l7a_Yl%EpMB zZImL3`>izW0$eQ2FYTt0Guqjv=uZ$*u-$I*%oSDT+-Jkng^+n2CNkt ziC?Z9pQ{vavE|+7i0k+m*rgbzDu0>t<;*~iTywnUQsR1J*66p1$Xtd>3elRaSW2(>U%vV0IPD6@A3m(zh3u1Xf;{0$A%j+K zM+bwND;b79ymeE_DPts#DR0a3T}KcjI|xCSsPaPGoecTh7yh|BpLlpFK!#0a`;*&l z(>U=y?O#4M3?E4vrnJ^k<#MFVYrebbnJ*vnyR9>(5*Lpnm-s!!b5g|3-gjs3EwE#k zHXuN5_`J1e{2E6w?7bOuYTZ|qsj;Tmm71J_0!v_~k(yp=GOtmeKGnLQO6K66gK2u7 zg`W~-pVX&sosSOnRG-a9XOOP{*xUP|71RFcgdKKpJF6l}z3l>Zc$;SOWQNx2Iyxn} zb$yrXBJIm9P5x4Pl}q!2SJ9|jyP?!Ft^M4T(hi?P?dKHj{n|wKH(xQK_ZMV5*>c_s z@a$A}jN}t=Jt9N*KsZ0 z6T5dk9~U=kHO@Z_=djZbe&-aCV?a99O5EdoPBV;Aa#EM}s`3Xz?zLjwha%DK4)bZQ zj@hc66b8tm7v37H*0Gz;yQ(tV%RR_`nTX*TL)|Qqc2x(T#+*W^rs82sOILjf5#Y?^ zCA;Xk5T*3pFYkPx($QSTy3%_gEuwfG2F;|Nm{xtSB11AFKe-K#&cW<`EqO4v)*t74 zDgcI%rnIuZoDF)<%mZ?ncz zhT`anb&rKxu=frkjyKt@d08rnrgTW2;YMx+FSLPm2KO|-F-4pH%JsJ@1Ei;4f%uAHq?U1C0dB&Sscr zPE6VcjoWNALi{XJxw}^l_*_8ctti#~Oo{n%ZuJR8`eSGFk+ZOG{<`&&jd_kkcg1z_Ys%ep;v}h&aKj5<#W@1k zlG@_+44G1#r*6b_T;2N*9B_K4_vy?CbsqX=6e$PeFvp!E_Z9n~xl$StM^&C(S0X zKqwqYVq^L^|+?Pia;L`V#~GJGrpT=mk7*#Jlz#Cd}pxUN=c>|;GrN2U3SV7VwR)QbCy2Li=xFR|bU$m4-uAaq z88vq$^l0l@Z?)_U_u!2QU; z4CtRZdcc5cA^Y}E0)`f{HemG!U)x`uP&JMKoNJ-4)ygOVam=#)(l4L6KAOG_j9@V#)<*{R_Imgt1I|BxnF5HHirfEJ}iyFqnS{Da7U`>5=#ia4R8Im>4#Y zDsz4th>gDmr09>~hz>#6<6oEZKZlv56iPRUEV3!c*DL(3gpkNfm( z=&SW7J{7`LkEe$S;wV<)=Ki*X%1tjfmvV0d}>FHl5y{cEV4j; zAfJ$8unwG-mxl0jp&=|@Dn;h;s`*`{jJ&BF;Kt+dJg$sK99d0*=g*u_6ln5(0HlHb zXQ9yJ{w-7f%ZW~Zis4?t%$^<;{p94s72*!Mk-&NJXr9|jJGMp^8$tuw&Om2PwNU?g z_;;tjCp2_2?A&^92D){n@BhmDApJE33)be@@X2FfzX}_2?RijgfHSB2u|3gav4TsJ zqLt+1TG@nqekc2^uKuajT2%4jQ9f)yy){Q2vkQ5Z8Z)&+ND(KzYzFJ&?a@xZ9Svvra$U z4p)O7=rwX_+{bVx02SLd6sSYTuLt7&Yt?uz4O5hXs&!3{qp|q~Ad^e{pI{@kD8s7)4|s<;ze2A^N?rwPN{idO6Kz7k?~E$|b}sKl4{9U$9c5>DOS| zLOycP!X^Tm5gGf&w_j4i=CN>GLUom+-u1?=d`YzmFrp?nwK7E3F&5N-rWJqlJnT6# zO}f~jbBxZ0`uqsuIoXLTJNq?1{GojVMKH>VnV?mKM&#h*-RAEh>K78iKe%o`j!<#= z3uPEuoU09gcW3wa!^bx0ErhCdQGwXE>IIJluS|AnYMvwYgn;0E-8k6@x=Sa{83JH3 z(UOa|vIOrGDyf4>U=K0#D5Bb>!BIyXVfg&>74jh;?ID;`cP+4LyW_zI&t&$grrJI zXX*Umbd`qj!>~N5@ay@M{r3kL>^PV~<^GC+lEq~m`tN-+H(m!E&i;1(xUMQTlS;8Z z5!->aDC>l6x=32{`4}-rJamUvVK>Gl?DfsdsTesjiQ2I9pV^S=&Qf*fS|Q`BFjUte z0sKrII5E8^?dJrH?ltMHlBUH(kvj)$l-%W5i=U$%5fT@=U*nfdKQ}xWCSUA37r14M zbvT$1?|%lDx(sC@Ui7tP&^Q|jGN?>N4_+0pwxA7sAWj+Z@Rp%mWizuq3ITg&2UJCuO*H_pp_~Y2{C`yDK-L5{FZhB|CvuTay}A82QC-ROX%N>5fzZkkwR|HJ4?g_ECv!nafqgs*Z~3;a=rGZUjV15P z0*kjJ0Yr_j+T7k!{t~&CoU83RgFg^NDfe9T?J0t}kk&h|A{Q@g>ZN__?^2>sA})RS zp9!;gg@8yE&8#l9$8XpopYvKXRA&45PJrQaO+f$qsgO**@r;G5U*{-Oel@kGO~}7` zg}seWD~Mdpj7@4~SKz&&dc$-1q0gWai!;G+Z!31Th~ZoMU-5I{y>(0Rge$sEF`ob6 zwfH%M;0^ue(^XbP)satS%LnvEJXWL@8&gQQ4{OTVL*yCrEciMvhO!2~35(*;keSyr23KqkMz$@*9J=QqiP;he}pZnRF&@l3ZWqGd)KFsA5bvuw5tI zsQNZuTvEBd@$6!hNR7p1XpSI7G@9-jGe`r=KyV)B;vKz>Id`5Hf-}XB zU+v#~Xfe9p)zQV$z~QZj#j$kn1?!a35XAo=3~pUIThHt{N2g}U-&k78XY!|3JC_p} z%I4f|k)3k@u$qIj;iV-8I7Nl}s5ZKfi}s||QU^lF98MpDLmlcLgmMV{&6loZ1=970 z7rI)jRRW20;ZdGT`)^}kaUBn9AnkX6Lt5YQE?xCsjw3Io8GB}Jxpe|vY53Z+y_@_l z=C1zp+xi;C0t)ppnXUE6e$AGeAfcsPthQh1EraP={2dHHl81>Q1reNgge@}vNis(N zN%H>TTU;BLvW^ocxIFK7DUCY2>?3X$3 zPN#H^?*Y1WN)&C!*uen0NA2y$w~HZ%>yxi#UYI1lsAy{+M2m`}e|a}co#V|kavqei zhW0a&x)5F;*OFj}7HXxmoT*<;{T64kqqkQthA^(3Mlwn1%8>TE5`_@=ikJu}TCPu0 z%t0@`i{aUeJU7fV`*yuuMo;^tj3*1P8V_STD&X)Uj zjBvjbt3UZ6Mu-u=_^e~GQUp?(sr7FK=bdpjo-X75?+a`ZKPtEl+k7hUzKc@|-Oj_K zo$-*!9%@&&PSmr6!qb*ZaI%P{<0VmIr8DEp5x^vw*;cV#oj+)GH#G`!?@lahchXw7_S{v0)eY03n4HcNEbKinyQ1-nLMXUc~8e0k+_jQsmpOTdSV9p74=r?cfw5iX&edI_7F zRp~<)saY8>z#G5IU|XbspInOa@>_-r+if``S?uwh?9$8QmkWK4)8_te{zEt#?4X@1 zM`hgIpuRCoUK3blA~5 z)2Jb|)S4dv#aq*x*YO@;18HSIKXp{m_xR4DU5Gj8rZ-U%{)qxZeyLg{B(qWQ(66yQGDLBDXDN!At%axnr!njO#~6 ze@fj-hh)Y)`!f6pzvP|^e%|i|zD^c5=2;4yw<0` z0A4DD=MKcLWk-l9IffZ!;=bg{+avW6>WlcVn5Cj7;6T(kb!27b-l}rZGQ2^RsIKiJ zWTIGO#V|7<*>Lu{>7@D_T*tA$#w%xY82d_e+Jc zn^2Vso=%FDR@>kK`-3K9-J&q4j{^hcX@~m}Hk46{k9t@ zPw6QhtJf<9u>GHsLxJlr-tcd^ITLswh9T*p2wU=>%CqEKx@ZW|`uB}9=F5{ zzPmh4_{V1hGUeAFy^Bd^lw#w)1`VHtXQba>f?LyFB~$UDj2c*06vZ@P2dB4^#tmHe zv@M>2Yd>#QZo!0Z7h;~&BSi&>vDxcSKy`fkv=paXRaoJa-$%8oj1QOJNyPaN>5nhc zjHx`3ZzxD|OU0~NQ?uBAuoeCK#NOnMC>f=M4}Y~vD{Ty9@UdCxyY&R9w#pzqR2u3z z^HiX6?S2s4)&A?RP*-;W%pH;^@5~MG8`nND5rdnL$>sg>$V>#c$XrLBbtKCdMg?8_IuDy3+yHxO#yTPm^$w>1Y^R6moQ;>q>zQ+ zk3D~iGwyePlFonMMTR|rsKvk68v9J&hvK!DksX+_T>OxWwTA`~^;dGmJ5o4iTX?71 zk?nSA^0pN-f(A_W=@aF`u7U2Rw*QS5g0gVz!Lu#+M=qk*Z1nJ9?rV9kAK^7!t1*O3 za>L8C?#g3qS&K;Dyf#6Xui7P$6OD(-|XkkJ?< zDII5b5-dgI@HA3U3PQrSKjtn;kjz~dL2l(Zs*8mbx25nzmbB<8heq`gI}2D56&wyy za};4`tDGe>gph#PqlLqt)d-M%69y}uEH)vl;6619rb*hYk`czSyxDx|VWIwNc643} z?)1FQqw|a7hVjNd=H*EWiiDE);*P~j^g`wv+FCU|)2lW-2u_1msEjlG!fMRoX#cs^ zs6^zm@&|XMtBODpzhjyK8Mi#wU`$xsJRQTSdSvzlwIv{R@K~qcn)_?L1WEn1`r{&| z`m@2FME(VQ{yp~+xRl}6+=wQ|bxxlKeMpvab_o$cYo?@`Q6Po}Miw?Bp|srGd`-_k|P6pVI`(_##x4)3q?^L&`*}!#K5(oRJ!5e8mUs377?F zM>a`CMvDmiPP5d`Z0r=-h@!Vu8>sj{skbs`SPN-<5tQFbqb$Yap3X6>srS1pFb#o} zUTc(C5X&Z=AaG@;z>9cOx%N9onD;xq=9vH`YH`4zv#IuMA#2=IK($5#v;Xe(ciANW z1B?ALD*U*V{+qXDh78jkKk8y^SMGh&?t=nPZ?%GNM5`tz^hF3xTrKtuxPsMSQ)O^V zi^LkW={16E>ks4O0S-|vdNb}0?cnXfXX;um{gjdrtqy@)62%cj3;fDA*-C-=rUP#v z1W1PGKCc0K;zgc?a^#CpnZ!%ic+Z9cM>zVvD)dGB?%)Di?HHSw%!6B+7oPKV?0iHj zSxAE7%k`C$Xnw{GQCaFZYCA4KiA=5XnUp}{$tOkg1 z@pVAnj|5|S&Pa!nS0{WgQ7GRRn0935*>QaQJ4f2<6Sf>73*ZqnK7nc;iA~bA&errq zPSX%o2}k%xNg>1fFm=-E37!18%miiDH8^;OSYCN5zh_uNZL19+^WrGVyxP%(|3w6k z8_K>DoMn=jfm-_d1N;eH%%L;(HpF{H3yTh}Uwj;T_zV|atgS;DmBA(QBD!dsCn4L8O&$qOPBQ;$*Fpya}jl5*OM)jtt9)XphVkCEF4} z_4sPE&rT9R%gkIf6|_c2<{sNL4B%HE@Wrurm9eZB;eW2>>Sdjjt|`$C=X%{MQ%X|n z@e5^z*^z4rWM(-sSSp@Gzqq%;9@T}HJ9=hHF%WuWGeB6Rbmwk9yOoYpgGP+X?}8I+ zs2vq594>P8Dju$}C0*23B$+nTL6RFF@uWv5n5L&h({--e4}?o)trirA@O0;9SaEDe zfbk>`dN)orkxOlK-nmMAvC9_bl=CYVgC)j)h?}S~`F-FlkX8nnE};8byjCHlAn`Dy zixp0U3fpRot*^Q{sc--g6dyT@v4FS3`y9T;PfLE7W`v*Z;UPuOlfdDK>OMo3oCF9@ zvg=WOQXfqNCuL?O z0L^}rPB2Mm8DCd|bvP?5@asLiiIU<^IK5EhSe7TC2aFC6;dt9438>=2ODT4E`D-0~ zT!WV_ru+nGeXe89ta!I|zg^xEzGwQ{AV;R#{2XR{hlHls-3lwGvP}A?qhhG}4+7Oo zrcasF6yMTMF*5Tlg4SNpHT4lllC;^6f1EPhRC#Phs7_$O3;?mI$Kk{On3n+{#a3G1b3wcu(Psd%6U~)4SMfSjNB%6qcAjKJ< z+ZzNvZG85wyp_@H;E%Y}4pfW43WGLwhE}j|Q_8oO8Ki({MT`u)z? zuJ){XzJF|Fah*6Oc{}vr*-H?6gz%39UQ$R--D5Yz-E26%8uYhJ`j2!R9Dofbbhxnl z-n0GqA)kR|P%RM^)JCRcNCjWOxsx<8Po{1#>7vgZ>`7!|M!-Rb* zL1k*$!rk(?@ui~PD!X%FC<)&ag^X544IUlm(Yrh6s$cu|dtY~XOY18?H{}f;V#>Bq zELdB{6Rm!w-%_YMNTSjMPxhUysnhcSS4{EPBw~*n&mBhl-}4rro7T`>T;c^F6(vI2 zp3{IJ()~MtQZ&=UM*(qvkA4WIp#1fq5xB=ddGW`!OAX)!*FAOqR-nkBFegkWROEP| z@X2o;FI|^p%!%OukUBD0(fQNjp!VtO2B6Zc_%0yYABO?({#B=5eWm->x9{uDR%Wg2 z^N+}fmRr17;7{1E;sD zkpFHjvcG%7U;&sXBrE*d`WoY6^pS0#obn0t!2gbU+J_Z*ZN|XlMiJOfr<-%J^7|1s zFMmZj*!wOTvj;8wN;vs`Ttl@*F7*$S{NJ`CITgv@Ih9igKqk|eq2^cS^2$tdN|s5w zxw_&0J|P*6V9%dW%QGooO5-bS`9p2pJ8gXW%W4RH2ZO2Y8KiPra9b)6o506JM9t#b z8VUB&pNU_z!(zbf0MTlEj)%ag?`;q-DyPf3wHVQPa9!fqFfMEG{CZq8 zl&qtrh2(PL(&p`+8{ds%qpRTWCkOoYd(-r#`Yji)aVS4cY?bV^KD5f{7tQ3sI^0kY zn~ls00&&diR`t5jm~SmW<$#4tx;*K;$apmU9o~ahb#yw$Xn>&F{_h2%yx`(k{ zUX5_?kSIiVpMY}CPm`6EPPA=lu$g?#iH*Cuv!aZHnc}JrYafN<;UF&GR4_Vm^a7j7AVc$O^NqZ9jZ%xgGyR4O-G#5)UaVfXJPJ6q)o{)`f=4$#=iTfsqEj|? z2f?`*q3umSsW`lV3)gKy_&X0+nWFe0@m1>TNFG$xibCF3!dYPM>$=hzp5<) z8!RTvP$5PTSC#pa$-Ps~opPVrB4c-pbaDOs>o{Ft918og+vrfF`kiCxOiDCNXQ}1E zQt5)Q{$Mf*(xy69c8AR#W1W0`&(UDlYR(TJvf?-@#C%m-@#5~cze!xFnZ4|94fcXE zSgY#4p6hdNww(KGYxzjs>;BRpgAfydPFw|M=7m@KKLVq^imw*<`6q46-=_1|CcBU9 z3CJW@GM#LD!i2A#~T{`ZUf2zHfEkpPPZn6<*m6C=5yq@~>#}HTsVgQZCtPW_0c^3Oir?(gFVC zWLF_!O`OGAKKf+^S3_Mz2>I_42rF-j*;~!+fMJFO`;{AevWJJC&Mx~tW}+g+>nyVm zME7(XxwVP)G@gGfY%01xn+-rBvl%+$mIE4g%_M~<$gj#Eav>NbUb>))%qSW8A zaq+S)p~{sm*d}#OV_vt;TG@ZDsPQc}foR2|zh&vFEJ>KRAi3Y|;XPhjjFSYr`29iX zBs!2SAZq(#fe}rsbefm8rl_t+?gmkO2zWHHUB3w$Z<;Mi}T5SuDY9I zla5pD`Td`JQnx;px`=Yu3=rTnGd6gxujZF%Z_?xY@E$z$;QAcDjmhVwpG`y|YMIe+ z-d}&3MmvFU?b(^(e7j$@5vLavGl``bB1Jq(cHO{h*RA;% zbhhDJ4|JAalqnBjysVeULd?Mis)HJlUYM{nYE(e(q8#{r`eNK8y0PJ&9Ih5??Ab*Y zkunAFY4}EGh*k_988J`UQhabBP3|shih#S-b5OKX(Ey-C{+g@G1i|*)sKG+MXv*}W zA!kHQ(TMh~2uP`rAj78jTM~43&id6TXJb@duF+73_5jg$IH&8dgg3WD{ z()P*{i#5Ee%Ju5n1QDS^EM9iDztadUgCT!0m)VM*- zFaQ|N_|G@uQTKx!kP-94`DRN8DCpMWv83DsX$Xa=X1*riN%dg)64W-_^O$I`R0SG) zc3dy^Izfz?s&zR*?)w9d@=44vt7%(Vd2?fCG zI(VK?N(<1Jc}>hl4FUS{O3%-+Cy(^yKLVQ(UVx!5hR`2oktgtR&xhpY|9W(wF`Wz? zm^7iy)GTC8ztKa&G#5|g{uNebCAZp@Sby@{&7ls;TKmBewE|F5P;bq3f`2te`XdV| zU!mXOpoQx2?&7P%@|*N^sE3D9B}A%a5zu;jlwSEuSW^7}I8fsJA+-Z!bVG~BdjKSw z=Dxr@%l~raf7nP@lsU(V%~Qa95QBTY$M81c>e%tV`@+Y7rY3BWTMnX$vi>nH%ijlNyQ3rQ1nmc4s5nveXQ zwJvGtVxh`-d(5=|eDlldN^}sQbN7@~kQe@ro$I#cle>;XEk zfKC9vkI7s0=@Cqr+)jsotq8D&?gsx-!XBS9@HkfcgV$74-XhI(AS6XmB&u6)V395& z4iD3N9JH9$yY=T!8K{8w|6C`$mx$K@-@J72T$6L!x8vyehAF7e**3>fYP2x1;r2$$ z3bwn)rLhvYh8gkxR_(uuNv}gL*DtJ&mbop8W=|ilMk$#P&PDq8JI3UXl&5qxDd;e{ zCaFgt%wP-=xPrw$w4*-Yqshk17a(ZcUI0&VKuMNK@o+1-O;!g8UKwGnm)k(x`8_3t zz*+(4;?za87He?T?3HkCWkLzCv1l0nLyWpbrA88O@uDZ?Va7W@07z(;B_IIBU&&-s z1IAl)7QP+_php0>2v$Gz-^dT{kM$u+qh5bUj`$*`lIgJ0P4BUa$8I@4i`Cq` zx??k8+CC_1(XkTkz4S1@xRQg2zShNre;Z28xd>zD3WkN?Tu54B@u6Yy0QSzr&nvQe zwI5}Tw(qYjc()ar#6OdxWNrfEyfoF8#vxg+%U{ceV+97C4K>x(Su%ir!D*H27{eg8 zV5nHsDeDuMp=TF+n~3mWB$>Ed=)sRqdP&?ekekh^Q49gM(+>i!k;`P~yL}zK=kd2* zRp!W92l5;yKU`nA6gu@m<6UMcuhM*ux+&ms@v})pWTm0T@s3pTNzdA}7ke|1*cjx| zf_-nCet_djP_MjqCTyQtP=o6^G=33q#)>zbX}X7naY(!kK|;k@|9-mFCjo0^1o7m5Sv_<>-jT>jWMdG9H;RaQ9cFQLd*TAFEjey?>gs87GkaaC zLtkjPfW*&_U!t3cF6d_ZPQ9Lbtn7X8FL@cuyTK$Cj!DWZpT1b!LY;9q0nF#}a&gau z=TPo$7|;x@u431p^b>ULN?ed8cO?VIae5Mx^CskjcCnZQF1m!H(&0HaDrz zZ>ilLQ>p0n@9|81CgmXOp1Ie%`@WK*CDKrzHwVh~#R)jvg?rfF$TWYu(h?Y?yW(+H zu5Qd+s&J>a#3B~3t%?nLBeok2b!^G;Lw$VlORhEM{oh{T1l5VKddzhF>z#EwJK@~@ zp`>UAG;v0pb_!L)u2c&H_U2STqr4pufddplrhyq?!MZMB`+rpT0gpdQD4%#so3U8^6{5;9g0s_l&HOr^ z{a?hD6nm5~KbE(6%ce*z=zgMS@qDLSD_EK=Xp3)95$x=c@|}!NH{Yn#a@s%=O=q{h z5^a%r`!OU5yA+m()iMbB2`NPiQ*u~dRcUi^AsnLL{OHo|(#yT_I<=%~J{>s&$SahEjA!W0HlGFiD`esjBvX+5`Zk9`Kd{L} z4(Sz^Bm>>NxCc&7+ryH2_H#9^(eP!x`CgbgFlqup*opX15?do}3 z80l5c{CmqmUy~Coa@9~Yv=JcI+aI^MJT8QW!xcb=gMLmm7)X_)7$GHira;4SE1WRu zV6dT0hjz*ncJO6mfggv$Ew^JAZ;8Way~{@npeH90eI;Hwh#hb!IF^a~V5uwn_V%Z# zF8ykfLd&LeN>?QxUr($#H`z@6_)F<83A<(KT9OX~KwQ!Mi7Ood?52EAi9GrLYtM5* zf&t=bc%}>(9xb-ojDhTt6EjI4;kYEY7L3qPzNVKNPyxA}=U?585H4=51Xk&4XX zQ27kKhEqUDIj6<8YwE|!2}ML&eab5zg=;@IjYY4B2^S$5Xg9a~@`Xmo+R>5bb9)K1 zzAlV<6ec=e|pCn?DKz_PAOhc73y`>`_IGBA_)2+{s zsmySY>xW0-!DR9;E`X)xi$0=5C3~SS5HA41<^(+f6}X=KWSM+0U}>%27wXcO=-Wak23EuTHV#O1a|ZwbJ)v91&?Ed!$*vCP6B=s|cpc`x~Zud$T19 zeshnDIWb348Jp}v4PLOwUDvj9RXABb>!%>Zg34#TgK#sV-$HE+Q2WyXJx3VO8&tlX zsvC%qN`F<)e7c8^#xSta?#rHT0;U3LAqB-gh{=ji_y9n89=aPE6HpR5%wApp8kYjt zgr>Ygvz&j3e(oVZ#5gk6ojbY(0F1iLFWsHX#J9yV?iz28m#^u+)l1HraX_1f4dqpJvZ1CqlSdH7Ll&zMKauiQX^#@K8= z3T_VL)lvi6h27aHM86wWig{0lDK=06ZHki65^_(}T1N<$_SL@ky{92w-_5M^WaevB zcX(Jrp=RC}atI3$HGajKc8fd3B*SfEBI4(*z67a&?3ykK8zwPct$kZsq!ahlix-f6 zshBP~2qCQlZJ{(L5$)OW*(4dqd!1)L+mj^Q(4kuDfR36R=YAB>A^X#Zwy?EL|F9;R zV;m7Q=h7>oQgb@-`eNTe;yTa$pm=fXoBI>U42Apl4UVWfp0ndXsybea+*{Na?(w*oX?{X~?+K;_up!K+F4+6^Tr-0)} zgLd!#URAOqsSBi2MTDc+dB1xxukJtZR5{jeUSnG^1>&ky#fcQT@=IB^`u`|<>$oW2 zZhaJ_JET)YrG{=LEI_(p=nkd3yA%YZ29R!$8l2e zXb|y+axQ4gW;k8%+aD!LR*A&qSfyAHjs%US>4SJ+bXwb&Nt`4EK6DZH^sL%YxX+%M z_zj<*D`JS~*Wk${ibV1&99RUfg&MN47!jBoL!xRCyEiwA&L*&oC=93e(oU|^QNGLW5{4)SVxQNb%U9*Z$+T$5Kz->-+(~p zk7wkXh?lE)zQ;oC&aMPn+z*=2jZbOc=gYeLD`j%lLvH+J|O zwHig}#m!vb{bo0!g%39=%B6yz3y*KL>>)~I;PE50w!-Mmbo7SA1;3kZ5f^#IN~+j3NbA6XtSRmA)rl(N zx747aJ^Stwg0MvR;HCKW0P97$)TcNc$QnwF;jbKYOjyMe)~n|c-1zxS%~^!FkQ{X! z&r%bI(Z0AQttv~#z>F-5dJ^!W?z}@|?cz47sApl4c+=ElZQa_(Oxs2q3JprRWc0Cy zySzLHZ1L}Q-LAKwXp5I%ay z(M`(CxIS~$Y0GUXaSVvycfFv3M;U*#6a+vj`!7AN2|)yzOlA;S9aB_T-qy3Tr(nA8 z`s{o1(8j!eiEanrk39i~^_pz`pn?I%rG`+$`V-OIoYQz5NHj$jX=cqtKhDgQ<(B|| zqLlJ3lv$J~d=j$3)mH3Ki|8P;PfV}N^;wZsOvv0-Vgqj#Sxk$DQ#4<&RMPl-9_5@L z+;+~^tm|mQ86ioDA8-s_F4lOCMaJQ-Z_sjR(xVHCn{3}TH(n0JIceuNrmz0~7-UR? zZ>ZG#o;m%zkEt)y)D&|?m@M_{_zQB7W(6U}Z(4prb|)^fC10H$kZ9n}OsUSnfFtPO z5}ug$relP}g4_)mLZ@KE3Ntj2BNXj!aS|2tj0J zBF?=mBtIfMfv@iQh1SL=1?IS_TbrXxI*bl+%d`BCS*p@+4}1Q1n)(x|A#0R8$%s0L z8HB#SHmGYm^o`Hy+k9aGKX6nAoURf@mepTup(@k#HSLP z3WXF6l?>V@dn3?S%ABB?N?EiyEbD9+v{}_By1tuP;H3`sgmi-W6UTuaa`Gr z-|56VO-B$_nkQi2nh!^X7MDj6cemnp*v#z)lFFIoVXP0ZkXjpaIq8DBx4ard10aG+ zyChuRmZc6GY5GW>h$e2XPb6OV?Y%Mq6+7?00T@Nc=65_eTB4Mz0v6vqrj=8y7|BIkwVCA0aYNlDr@W@4sS6&jhIip` z@7Iwz+@5ab5KnS7lR`hKXB$RVx;vQVtP#-I%Y?s5KmG~Jej=>Jl8UlK)fy(6Eq)n@ zws>uFY@UJ?!dQV82oK;Ri||;j7P+fC*B-Im=pcwQMCfBQ46{8+S}!D6oQfdt!Lide z>=^L#E`E{((fh@m1s!SVFC&D+}z_sd8h99*_U|y|D2sr25cffRHesA6AwH<9L zFWck(;)S;Xil|#H8?%PHNwd z{-Ir1BULaeAQ|2)z`CLzcYla!SW&$${3pE<;T~Y3l%wqDTNpr`tWNFI^;&Pmt-%MsYXKcE&_3NL+GkbV4;_jCIwbM_f72ly z6o?xi-d*^y4IcPTbG(94&&jIwsHX02(jQ*R4_Lth);VHoh(gKd4JpObk34d2BI-{} z;{>O?jXYFu0lhiUf<^5Hqu*=94{bpco7-$=1TPA_eGKG~rs?c}fGx)+3#i5G>$D47 zEjoPOLH{vK#2|zvQJh6HDhxha!5H}#+IX5H0oA1gb4cZi`IQmGYy2`C`U%{la6J_% zeF_0hOK)hb= z^Fl5?yFLhqjg}73s8BD^U-O`3_SAl76=d-o|;^-*E(ei!F80SAs+eXkIJaZiK@LFb<&lHu`M`(9Io zpv2}d=c;s6*emVMKgpbJjvmgtA98^Gcxy=n5?5b?m_llOb01{@t0IU)Bk>dOFiTHF z25yw>vDy?_dGQgrtxQ?5XIPYDiY{!yOruDhv6@9@-A5zOio>;x>K*#VnB3>plUKVn zzbf}^VH`Q(I}1#nnLJC%4r(UFpv}iAVn*e*nk@DsQfXYd-)bSQKj6O#{Z-wYh7|+| zh6(yTSgwXg{g!5B_YSRRs~mL^`9nT~mFv%j`bgjDJFuT9OwO^V5A>rzNUW@*!VNv< zmTXXAD3-v&ntl5W%puQILEd)sUx1<}?T7XEKa4<{Qjcj;!gs8!RF*-NxMHN{@>~%?l^;lM!RPU;uBA|sGVoGPbEV3 z4ju8C2CUy>C>(UOZE1Crp02*t0iM~%DsIuVd$|_VShV}H>~ife{$t|MMzyl5)G3pl zWe5hc#n9CyzAHTF>W9=1t(BGfyD6P)2kW0sjrN>eX)V{Mc}Wo{AIGdd-CZMv<6Z7} zdiyUKILMFcS;-4?g(J1g~5S?!5Mrh8VM^;vqW_>(+A`+)r4KAsShJ^_^B%2~oOk8+V% zUSogzZyr@ekAPLs>jTTaX$WUe=f>zy6Ft(*$LT_w{VCs2eFDNZH%*H zmsVxDD4%Nj4r+YMw->cKDnc;)QyjxPFaI7-_}IDT!VIY&c6KMYUaK_Bly|==oL7?n z?znW`aA94=v*u6P2M;c=!QnLR>*z*b&5*KCuffUsYng}&=dekW%NMig+wzF7sh*?6=Q09!pj~S9wb_;4 z(k&aO<4V6PkuQ6rV{-#t36GTv!<`?56>RNBzB4c}vs9i}lmmtE8@9wexC5 zz1|-0Z>?&^EGX(l!{lZyl$c4oyaaK@;HPR1lQ|pO;cXp*i)S?}J4O+@uH}b+EtLg?>83jVsZjT+yzQangZp>qsH6~-$xp4i6$zTV zZIIp|7leD28Jf+;8g6tU!Z_g=mOwGnQE)$<#g1!8yh)*=DGQfvj0OFiRp|T45=#L` z7QzlqTh*ZJct1CF#|rU=H~b1^$0I^}IsVwXS{2?2xl4;36AsDw;5@^n5&gl=DO1a3 zHR|a6b=5*ppOWWT80%}&DSan==f(Uo#&S%a9|QBj`RlVC`LnaN3M>aG!{6ph@uPFR z1ajS0Tz*K_JiF^TFX0gBEzw4g?}nWZFEB6u6vnm=WI9dX%|BH4i+IV{XDaa0Go6cM zyc-{y{7c|FU8OURRRn8fmy2>F`brX3mzKjs+3v-A1!S4Lu|3wWq7VyK)#nb~bc7*6 zNp-=4R3Wb33KC}ZMbCJ%noO+!@bktAoq7pH-~Py5P*4&f+!#pi1F4wTINQ2%xE9MN z*kkj`I8WK`>ZVOyiF~QP;nBB0o6+DoFcT&UA$UX7*jk`x zbk&tFCnDIT6+^V=@Kwwl8qhb-+oF~u$0j2_A^JQ^rBZ86ZQKizNMhpvZTZQ;{e#Bh z*~d>!0-$fuo)t<%jdyJyM9G0Wn^ID$jf%!eErj?dvG{vpkK(0$R`(>;H6r^aWE~7Q zp4I3s?wLprANm{Hyp4rZntvH%;%(M3V)8L_nK+y$Icqv_Q@7pSLNuKG8XzUeZ;4c;TaS2Gp+4;ynZ=&R0Vu zymeiRa^2q*VA12DhU;#Io+K8pzLp0FG!3ELk4hE3mX6hrkKaP2tm;&m?45K;AY2S z?D+zJszCV478Q$Bu{$~}YpvChF$n(aHxfk9h1Mek7ozh$6uz(%ucK=715m76Ky{Zy zKnP`@)h96XZ=?|F)}PYDbEtM^eb9O0xh1mS)ecz_oFG9iaM?i<=X-EE>5_C7YC<+0 zge|UZI!@4V34nsibf;g3um?Y-rszWF^FJ>bYrgn;y2PuE4cpT_*%445D`oeG&ryKr z_XuFJ>1D+0G z0*Sod{dZ82pKFizcQGMh#fGNziqJ-%)pyXwH|KH5fP0n#4o8Ji2Qz@_7JUJvw6aA$ zDg`)df+7z%3)Ya`P9JILaX~ePxmS(^6jOt*vgQsPEuS;C9W7HycoGD{W9YID)}^2# zBDYU(Ed$|uj~O1kzPvJ#heuy%-r>UAWH_=b@J^LlwU2+HXkv}ZY#D%6YJPto8u!Hh z2kfVcz;x`wzBI;QL8SEM{-hGMISNmFZLGkA)GEq70NBJ|NB`hh1*piT?;EH{;d=&` zCjhP%$wm8(o(90afL`Zt4NZST;fIC-9)eHKm(0h`s9>=x)5~@ntt>1-i>Da8T3E1J zUN9Uwm__UL>tw$d+9+PkI31U8bG?5)lFi*H*owm|JnccTY=Ed#=__ymV6s>n5cz=W zZubKjy8uQOZad1nMgv}mL&gIhe)~oyNA3IqyomnvH;c9&Fb5BV2O#Uy$QOYMBSeOm zQv~h?vrW6nBdr??iS}HVH2(ZL$okjZRVIwg?~Ua17(0#%3Y_e1sajJ7-FsPMIXb3& zkrd_N%dOo0b4$WaYrucM`t_}n>7i#TQ;+}YAh7xuIDvhTz?}P+`wFWvoXzBII}#vF zRv6v>*SH#b6x;C;IS2j*h*Ae4jNe0O?g$J2THlvVSsztpx63hML{LV{B~2tQzlkkc zH(&}YlOLP}4j1@8eoLyM$H;AKW9Spmm9A?bo@ayd=09+LUN8o5z;_Du;Qp}nI1u6TDr%; z=$YA&l0oL6$InzlB8f-#ZjJ~mKS#PbR>40IvAc;5L!1eIy+*J#t@$eltDt z)l@70Ngm`E0!s_lVw|x#Z}q<@AxlX62{Ht*=rP>?~); zW3fpgvR}No7RYt?^aQPH5A8cB@QrhjSgnu+Xi?o0x;EN*k!%~jp;S$19m>DcEu%u_ zGNHj(+D8$}IBjzYL69Wb?E1MN{nn2qJ9oNz1Zs(SJh?5t^r~r%gB;XyZby?k==^Rl z;s>&?QH96ihW?ozxk#L|xEEnX`a;Gl$3`~9Y~`EJr%WwJTmcJlmKkeDNFvwI2~v2e zH7r!W)fb)W{2wFPWjC=4XU`c;nt&eIdgZftSKB*(k1V5 zy$J0_Ca~yIZ}_?TiX}c%g?XW@ecHq$pT~@c!s`fq_v0$DfECH?p)hFzJU>>h=2LEM zy{cz>{kyd%)#MGa+T^>h)KFv%1|JnivWrYkioC*&BAr|AJ$zYb{FeCob|o_tiZ6Cu zf!RF!2hY5`%(GX#O&~Fjy+0>?R4Yp>(r><8W_Ay?3k8T4CAT{8<_(uPCo z^f;6#_;<}=YQMSoXv9VxR!g~9#%*L)R^HI?_-{M8tiRHO1AK2A1sI$|F5I| zST&`3LGQyQj)40!LS30{hByGyn-Rx`e$+$*$PIYQT~szF37yNQ>Yl8jFRViGx9z>K zTNJ0;y)Hoqni4VdihXuLbqXE>I)^c>I=y$ybAA5_Zwd(TZ*JB@j1TN9YnyB?Jg1*d zS1BJC)lfM$N7I!#1 z>-#Dt_Yc_Qu>61U-g|1ZDxmbgzDC8jr9<4(4BL&NY>p!_u~L5aNeN>`AMUH9c|ro_ zc)qXV?B_v-@y^rJWX+Jf+&EL$d%40Fqm_KusBim~5R?n^PLSS;_OOmgd}F4A6n~83 zq9bWFh=OJHX!Yrr61JM515@In?tXVrVkW2j9Qyi`Mi{>>m8bq>J97Tt64Yb zs!vqun$Hi1q5N>ubeq0{T?FV#uZ z$Y%FVp@tsIOXeprsxbdzkFRa!QWEO4bY4Im~SxPDTgX$APke?MD#ul!cZ$*UJ=Fi>t);Q(x z;ID?Dn!2qg1knb=SWkTRQx@g+_0zx_=S#xKKTMP*KxNGBM;Th?Ta5G`J#E&G18)aS zmeI4$63?AliSJOwk6vP6ZnQe>2|uzw?<+C%8+H_hwap(qf$^I3h@Np1Q2KeQ>v^!j zcofmy{UQW)^nyQZYDP7~{kq7oK?G#y8`Ij~vKug)4%@oe%e~fK8a-)U-2o4P2|0Yj z!xAZ!diX=_u&jkUGsRH6GZtY13t0A8*K{c@7WLzGCK}glwf4}ownYqzUC}h1x@7no z#mgQqN_yP^uLyEFxf6Ng^CKGks@;HzKN}wIv7$m9;M?=sP(i7Kz37%Stb=Q1e?Mp# z#Z!-K1W)u zUM~l^k?`BYFoT2UMf>4FAHySwGzLTxsrii;z`i*R-w;>xRM%zPk@!kO=e=rG&FgPk zG9M@{8K~}Jh$M8r7{EIoQ|dxFL?8kw(U$@$Bu~Kmk*I$`(7rT)gw(=!#R3d3qobkZ zo0KMv2Vc4~i5N_|QP!qX2ixRL6srX;M#AmNsQJd%cScc7@xvfB z$l=>=)>)P(pKnv!Jc3_h9;9CdhS{BYMjwR1lhng!pv|voufOO|80TNfLAJtY;P>aE z1UtT8c7>`Yci#rU+g2CZl)vvk1sOOJFMgRi%SaIxs!Tj*4_vecc^5BBp`Vjg`c6e3 z-CgRK_Z(kX0P3^xIs#L>r^`Vpr2{g5vIu~HtF+6hSvkXULWFRh$C1 z$0cBkcII!PZ?K0Up1P z6-M1c=1~!?kBzixD-8~-XIq=C_WvLm(L`mm{{$0#GkNjSJU0goC(sjh*Z3G{->{L^ zMxs45pzVZ-QjMHC>WhhqB=40@PBg-1p!O!u&SSltX2!v?bVfP^eu(?kx0|OSC89xX zK>{qcfk*c0TSuW0+WX!K2cM`^63{4K_`V4I}Jgc7FlT zot?vS3LU0(*9#0#&(~8Ix9UB*iLgCYge|@=tqmS5~+Yn3Ifg1jGHrXf0KoXg0tIw!VXU^A$%Oj8~~P4RwKJ2TUc{ zKEFo?w0dYl&X1@_e?{zm?tS&D2ud?d1=?3}0k*w1A`>lo8oK#{Y>A{)b9;%^P(qA* zf740yR2Qf+VN4{mAyxc*kE9t}id+vq(&610$%^+)t;Vvg?3y9zO`iBvo z559{7Ho$m4#0wVj#m#_|=riDVEhc>U_fMi9b3(0hGQk#@qtGu;Xl!_EXjWG$`e;bF zDLjsg^$DZOZ(BM?C84~E69YU;tRz<6ig zVV|^hhmwhL4xNyF>69}CwX$BBMQDON2P6EtF`i=fO1vU3a_Fgcr-eBWvDh9|CTdRf zQnKrU#SU{5MaV)^2XElq9EJ2`hFx!CE)E{iYiHUF6^kF7-mO(?DfelW6#jWbwx*-? zRRU~lzPNEAi9E^O>aHh%yKIutsb6pC0j*{|rwfr#s8}wVehQ!~dNI!=7-qZuVJYq* z-Fq*#lboL0SvT>Xoy|h1_XqLEjYpf5hUOBlx=Ie)wnh*9qVdV-hOXwI-bX$}BKKwI zENzjAZb5Ser-3;V0t}U@*xs=g^{PdA14jaP(f}lQZT|od-Uh<;MIRW8vUW-Uy9jNM zR>WijuBqL#zubYNBEXbntC*f+p~9H(%x79Oy>Kk)*fEf03b??bPmEXk0>2w`5B6(A zs`XI54U`ZWgI((|hYx;8fTQly4A29cWC%1c<7c|saj4z144(*qnCoJZJ*~TNTNOPj z973O6#hFYBJ*oqYM^g}eb9j(!=%Z=yo8Gkn9?70o-C804Pa4iAuI7UNT>79#pC?f) z-yCRKXSF)AI3xn|wylI9t`Qgjy;w++h>B{GKX}a69WJ5Ob=KvRiezyZ_Yrr%_-mKz zvAchZ;xZEQZaJ=6c5Qw9agGGRtZE&_Ymto0)r=uv5~F56pJS2jc3~J=b_Jh1+G4Sd zTv2h79C?4!+RU``5MvvNz*`Zn>B@i#egMk>oy*WlIwjU-SV^J1zm@+!<)+Hbss=G- z7TtPBnrZCj_Ac(H27EqeHA$Xm-^DnB1RQl-fA5H2MuG3&r5?Si-@DH{k8?OY)wJw` z6sWySEod3=tR@N@=5TkfBaF@W35`bVQ^@Q~!Q68J%;fdy8zW&~h+nn>xJ9&K^G)9` z1`#P>i~VI(YVJdx0h8$jOeV+se}6I^x;Mpr_k{KB9D@JA$siw_lSxisQ*p|S z#D0q+R}Bb|Wu4wV;>09n*Cd4KPzt@HCJA1^WFr(ZB6?l*@z5qa`Vs?RW9};s-I6B0 zaFsEk>|u7>8Bs!~=?uSF^0DEEJGE6*VkalS-0+guHz!^}NO1;*meET8g1SUvHn#c4-9 z-2F7->>Osoe{^y32SsN0cZ|_xrxWq=qRtg|I{e}~9+p`@H~8)oCyMT6^it-JZWfY@ zs>%8%yyav=VvLd(k%fh>?V6Nb2a`S40hN;fnlAPK^>ls2hD20KvY}Zwr?1^<20xJu z{?xq00O~1mLWK-Q2KD%LhKK*4bZ!YCT|XJ*fMnA}EsWoMzgFm1BcROJcq1}fJ^WnGS(3mbSx&{ZsjcHQ0nV3KX zW~HGGQbsibVuU0*xq$OsMR+aA1Bwv5K(7w35=$|F_tgXcXIPYB2o*`4xo$to z?{0e(M9w{zh{}j${`A^{F3idIB_!a}U+UWArn>Ntv7c+uCtWMcKLjw8v^5p;EM6Nv zrs?Y^N>We-c4xFdq42EXR`-$_Ox1I8c+&WuSrifCgrzso7Or;e8 zIEt$)M5|ERpRF+fJY{yRd2tMEnZ`+twoqnM`%<+<$*;Il^ zp@uoyQ_>>Dod3?Dh4o|YV-kW+VJCAQL{>6;TAVylLsyv`#g3nMc7v;qTW!7J>380O z=z1erv{zD$26y>G78}_HwMDVE@~%^N^AjdRV!IXIy^WU5I0E7g?Nx*Max`hHCB2`| zge2*Cr&~>5JTT4E{W14mz~u8i2N3aF#(xhHXG{jeV|?I#ku%j8pnEH3YD!H?7O3tI zsu*-w-q2hNecKVbgb3YY3HuK|k|_y~CItn7sDwRHwzAoTe}WBfw_HiP>0rDGEDs?E zi|4Aya=Pv2k#Ap#6=eUMSBp&^8FTM-p#i?<`5J5@rP}s6Tjj3Ja|s=qp`^{{k_jeC zvH7kqeb)nmMe&D`Dygs~w`aWMD#$9!>cRgD{)~-#@&5#r;1#JPXBHY*ZF6HdQo9<5 z-!a54^lwd=D>8(I1?fq+Y|AqR1DX@JU}nt%iU zUwZXG@L)a;cqt^A@d3oNuHNlwdbkGl@_75BcWYJoc(Qd)`D=M>nU6FzKn4jM@X!CS zF3;IeW_qlHJWRg2+Ad86 zDshC{x3GO6^vmL%C%JyXOD)=`2LqlO5NlKzo;A?Jr2&w6maz)>}0LGs)~co_ZoWSyaB>Pv>ClDuZv2;;6I)XO``;>D zZyyU@hR3`V*MaH4emE_O)s6=F_c__v+0zJW?!x|uaNYPduhM-4IoYAZOkUKdgbt&% z<-UwX>cjV{YxFV-K+VH6uJb~(_86ny-sCsbod6#^so`2j)de85-n#P;FFZs@H zLrMqvSoJR!1QG-1e(vpcV&p}6b&+1T82K1n9l;o=50Z*Ghi9=GS0{&?6&9Ym;BKE! zsb${dX;~#_Bpql&;)0S=3C2F%eU}+gcQZvB`Xz|y(DzLEox2*L!LjY(r#i*6QgMXW z+7>|>K`em2?R43`n-f+-npPR9aXWw_Jv=pi$<0A<-l=JTcLm<{>l+`yemvY_Ekg$+6i^g>T5w`nsGxh!;5Wc-R)RipSNSow@oOpPgF?&F4I?jj6<83Y@w5 z__gD($1Nj+y9UwpYVsL9f`|Wyg4ZEI2GhMiihNyzp;@fztK%Ha*o4(qi-pAVko?Tw zBk{~bS8c3o{;!#6TwP9aN9yT$sni^1XE)8ny?aGDJ&b8HO^&`k4N}n3OKtg)q1^Ax zH2-srf6`8|yFaG<`ix$5m`B=7RlLBt$Z1b`vVw*g(nU_cu&ME?xs+d>cCqTy{QLXE zFm_jY^z@8oimB$0r1yW8x!=?~!xa?&^%xWSYdauT*zr%8LYKXXpNW$BATYd4!(GV^zri zON*MUc<5>;V_|#D`uUGJ5}Fo;JFO4&+=HKbKR6dLp^64N?WuIlgif&FbsOwWTvO^w z<9W(ayKeTBF}5LIf_&stV0!B4Qqu6xuT{ATWcoIB%Y-K3g*z{9(l?A~3refaUHY0w zkw;4KVE#7@7^EVJ4GZ=+j`bXs1@bNR4ews*fBboux>Z6=ZaIIXtZ^+M=>@*S5H;USbjjU!$;tp0U7Ah`toaXe&ar#9Elp{JZQYOU*QN)Vq zxA;nlPjpK^o+_`+9TaS7F9F#q7P7FH?@i_{h{8^l1bN@+uunsU;=eEKBCH4~7&1uD zadTP=m^_PBiM+6RS1W*4*jmzQ-S7~C7?w$NpmI6Z=3KU z$|8o8U9H8BLA4We&}mTzuOGBU=0V$?y+USzrqqzxi<8FLv0(Sb)n1kFJDwkhb_I%R z%!ln>F*+R&v(0IVF*!OC-0Bh*TNsbPoo$%3dd*wQRz#h1i@3;gx{fY1KdqQ zswB>XPpbX2AP9)?G$}s=&F2r_eMx*%hGOKAT+G_9rQ)HH$qy9otCw@B+TrfOy=lHR z@)*zG#~<{_YCZbi33AJ#R%@OLgNnQvoiP;FpTevIGzASi$RSdA;rPff(n(6J?e7!r zK0n(W7wfwEx*|^v9G1fMfU7z-26fgRJD_n2;&* zi<1y|MYy}zka3LKGOrq#&O$sjTj@P3=su*)G2PGuQ~YbZ7Ts%5Ae^D(36>rp04MzN z>#u5UPR;hE78?t|=CgtRa=NzM|H0{^!WdtPtqes0`dnuo@16PY{0O3<9!T1`$rAnK&oQyac~`D z=wToEvBr2EGB0%5tcFN6SgT6l=rOHq^cgP5qviW<1hAQ(#FhV|oc z#!~t=$B!?S%WG8q0omn8d5ce?06c!s)B@yOX>G^*#oicP7^l!HD)fTwmBHcu%$lL! ztgDnK*hx<6k7z`UgAg?-&(qe{VXMi=oEQjiWsV|0FW2qQ&_?#vC~hqNC>#EArAZvX zGZ~L92e@%y7&IT7K?IorNrsB1{IV}Fg6Y0QK70Tl-tn-mL_by?JctCFL;2ob1HFB4 zp@C2BwLGp~zGenNu{oksCYs7mSL6nD2&DmBnS_yeauGFvyiT&s;xg)DjS$;Rr=gytEknY$y#msH(S?#+OmAC z`Y#`Xtu?M2tUmy$a^X4E3=~!AtD#3Btnl&<*k%)Pk~ju{2xG2|)PI)4{M9|&D~!AHVv<5KM7gld_0o|{LaACQ@`C40T-~pa9WOS+ zWQ@kx_P6jEuXa`<6=BPhR*xALbAyjQkz3#7p{MJrgH9;Nr7-M7#vTjU76;gV`9vWu zLbZz@ZCHJj;gSd4$yDFmz>#Olpof8g8^w0FpI-3g{L;^~Sa%Dmu%KFr(Twg;e8r9& z^2!a0OxGw(iJrUJy7k9s4pDu8pK^RA{)yom9xNWmWM%uhbjg3Vke7>30fHUo_EtMQ=Ex-vKy$R0~y~@*TN`whHu#;w#I5B zf}O&h^iS1=Z*0DP8Pvkz5F`*sRJ6v{V$V?73_`=g@Bt_##XuztNj|$Da zJ=Sr*CeqDbM*Zo=CmSFP8Y#_nSYk;rqJzO-ZF{k&$Tr_GNjXXQ&6EBb`!`uK5W<;` z75!x3O51oPt#zB{Oak6-NNj4!dIV`&Yci-ft&*_W-XBRV;M4LOa-NLDsq%+OX)SEr zh}bKus|>1lzl4AO*8%G@hXYyi$inVEQ+?esM3ZEL)DZ2yymG1lec4!feUm}O%)G%+ z9v@~U$sFRf@qv`E|H>Uuw1V4k!fMkZuful@u8wNMvi4+T%01sMz zFTia4f7hQK?$9qz1djZhf-Dy0)YBmKZsdTcyt~`ml$lQA=6r>#Rn?;~--~Zv&9{uq zOSrKXB$Uqm+p9O~w_jBx)9hhUQveZ1$tKmjKj(KM0(+Jqf15g%H&iX9)#I26CNuDM z&e7SssF_rAasU0p;qh$`ea$pKrMvG{y2SQQU|LGrInkul@K8f*EyANxV97w0>Y5Ot z6ghu=+iHF9fG#hbDb1ypBv?*W(1lRhutV$vl}YU906*~ejq{ZlkU_?%g=Zj|f&C)r zQFy;zYlYw8vmUQ{tSg@!#JQAWK2kfYH9mSiQLO9MpS{W>m?OGE1k%dsceAD)Gmu#; z5sr=I7KzeFSKjC&T_NpVYrs)5HW9lzAA%;gO{I|YyGPt#j=mn@xj*1`!pCwtvJ=|4 zZ~BhU`n)xuLtur5MUP)eWhL+!(QEFcDtH8H`5Lg8xQ}SF755J`#(0*bMmShjJ2ccW zBWQvBjgWy&3>8Qc^+>{}*{ojlyAwU}V_NP&G!o!H;%A{+bWV8z?!)l2r`D1K|duOPc;U{MB@Yg${2x zUFp8w@8B+rcdf6#vKYtTNTewzb6!eO$C#S;11DJw6$GJLh71mLJMv^kX|K90-Z=*- znNE;HYBlD&gu)k(RaT!4;cV<1my||zEmGtWI=5m71<+|+lm#g9okYHhx^Hj!g|jhp z7)F{e8mlR84bVA2Zcac7MNq2VcW~I82GZy(LVf^Hh?rDihU;M zAnTjmo24iu*zGxwcU{Q&kLi~@AiqD@q`KlNSok&YjKb9{9U6>JHB-Cd{T*MYny#1j zpU;Lig|<19&zY=FE5?QGDV~?PwBO&IyuRn4F(o4gi4&3gsjXU}{7VbqsA*fL188EZ zfhcc75bSsfh`?+Dc|Yl0&!gV{7e;TM8Za-okBC78p6{YEj$!_+X~q%i7||Ob`ueAv z$m0yFB$#LrM%0$`Zqr_|PeD=!$L3>VhtXyJTIC2|JqA;Qh$q+q?B=ac<2&Wn5-I&9 zr`^!m!iAry8xX+gEs~?`DnNGD8SDs@cfY6IsM)mgFTO~Q@FkkjBh0^1^-#FRk!u?W zi=pc`*1oc~NM8L-PJ>m*Zl258(xAiG+ia;%j(qb}=toT*b=%R5=8M*6khVMcu=)XV z3Pw%jy>y6gQ=YW-_OSvWJ`Y7O!)-v<_hsF9dj4<^ zZD|0AN)QM?{l!3K+4 z7}#hS@9e($(qE^SR~yyG3x!rneVG~~GW5u78W1D{;?|ta8fXh^Bv9j=$M`fB1oOB^ zOX8WNzVzK3l{ho-rywb2-(ji(`z->!vcQiy@!wS2JO11YVM3T%lJ9T6U|bV}1ck&r zR9|t8ECQ=&n=|yp_d#6%q%U1PiX8)D*(3>tiaM;X0Teco?^F$Wz~udZrH^nrAffm{ zJo^|ML|%@{unF~5CZsM6Zu2>{UqGukn92WCXVF#R3HCjA>RFB$#B*h#7fXM{IQ*IT zXL}llzCYY@#c@U4aT~3DV5>U%ylhza^t_DhzR^Fx8Fi*yd^~Q(=zRwYCvDiNxEdOX zXQw~&#YGVbB%l|khI7fLJOCGh9NkK;^Mso0h9^qt! z9GLcb+E;IafOt*KesW;Ib1o)7dnq;aDag-P{)?e(&|Y9=&PpkosL@WdcHPI7m@A`l z3UZYD`f@K(kW`@`bBmFJW2@t#DW>-@wQaBvnH%cz`S6F(HQdeUv=ns$7$8F|kR!Sg5YLX?tD|j^ta8j0Y9q&U{aXul8}RUqFzWm3glF71~pt zZVZWa(v4X@U+8I$v$X*)&U(cQ`AYf2S9QCZaBWf!+Oi)`9P)A_x$lo+*2)-dH?N*B@l@r zNBhw|x8i;a=czflNyorM8saqUCo6fSh_Ev@p9EKwzc&s_H!lU3Bn}yYR{>p{m6J_h zsh%M#%vTBr%bE*@vD;UWIJ2f?8B(BL@=C1lh$&42E0Omo;(qw>DvK!C=T0}n6C6c|$^Q01AL6&4v9Nqp z!F^i8xq5L2)jiQ5Zz1Qs9<97PD~Q5gCT9>fe{o%tp)VV>DCaaVmybZ_OR&ybzfP;oUf@2r zQJFfIY;5C`f<>EVC=Jl2@7Fb)h|$->sQ6{xi^!fegK>B`W)D*8vvQ@Me$s#lBKJWA zVewzV{3h-PHMnm70_nMdTHeGvzdv&(iC z`?)D|W(oai?7=|=M?z_EEUw7dNZJte^#XOP2K5E4jx;-h=)XnmK2zf9M{4X1#@~H_!3_F#1wZ*vPJUXSIdso@*o@F=Iyzs;4agC^j3 zVLh3lhnPrmnWLM$V1%{-cHCu zPs(U|Pbyju^-!`bHwl0;sui5Lo25A5_f^0hBA$MXYTbclt2#*T^nNGr!=dOtMjp`X zY0a?7P`Jt}Abf=EDz8=p2^0G*i7Qm6)neO#Lc^UCUt?&(KiS5~c=94yv?+su=DgPE z(!PN@{ia{%<`Uu{bFtCI+RM2SGT;a}_URAOu|Ecy+Iu)ape*+xQ0563)ADpa?TZI8 z-{2ip)-6C?>_-B{Q2?G}U-CaVAAqXDuz1m76ZZ-$c_l1r8r3Vbd7-);?W)7^rUW{G zrcOp)IW_XL#7Kep;ByFF1@qH(N9#?4DBwzG&By})s8=78z6 zO;Suev_b$ojVvkXKiU zYn7XDyd6r)0;A=#&eq{d8gX9UR&AwS|39ew&c+1Pgn^8&rIeW39e2ahPvu@}G^*gp zWP~Bv5S<$&xmEr>Y8~{2+(1WK?RR0WqLSzgw@rU;O-O*93iaMqLTT)vlUbP+?cHx^ zSxD0n_qJ+t6nXRFIA-eSfMb>XPw)cQ=Lx1(IVbC8AV}%6TP$JK0f0CXBjF+0ZMu*% zW#cvjkut_s$NMJS^AHP7@~N<#oOZ`Xe*^N5Z~iaN-a0JGE^7M*0SO5~=@JwqhVB*- zQBaWXh5@8OI))HXT4HEW5os8@yM&5iehVTkt{yzl3EHXYUADj z5AM|lg`TW#tXR4v+b4!rr*iv2o=pPGAv-YN7q@A`0lq;HIJv34-$jIaO3IX6B6UA; zOv@EH41!B&>2lZc0o990f61U|(y*@&8nVWC*(pJ5)$7L}&ip5wdcD3sqc}Yd@p?`L zr+B#;h6iQ6#)ijqZF!XVEphE0Jt(3LL+E#U*H^qJ%(I?(EF6b!Bi0{5y z*^RtDNHpiT_yE;h%YMZ<0_S&DPVj)mw44bG*yc?_L--vz(Yv)G!fz3Ul1(xA^=FNbjk&R zL%j=l%`-}cR1GeE>DrL%0y);T7bV$*gucCOLx$zCpI6Sp7rs7(oJK{uhP(zwzQ__2=-b;DaXgBtDW&jkE%5z-YWFFu_}2WmL$*cspHBR zXZkMj$s?nFb=+fZZ zo7exXT}98-f3&hm@Vb($Z$>PKvQeEOlFOyR6aoVJJ<&IgZ8$Ow>+SDhL)|P+gwIB0 zRSC*+WyNTFSx(1(FrAjrz`R-W(+0DKyZKF;x)o}gbV}tGQh3fr!^Ro0piSqm22?{i z!kizTHvSxiJh6bLP+%Ggia3PtU!-48Vs){5d@{ij<;kR3sD{XB8T3|OD`HsWp zv+e)(q$LjX@KTzFBjR$LOG&$R5#rv5F?#_Mm zFR(T?i6(xq9qn9@ma1V(vvDrr zH-12J^8U@8js^i2s3_NsuRXUzlIIZg*Ns?8+wd<*ra0$Ml2__m93cX88iGB9gxJs} zpU6`$)$Pb^yyPRJE>j&RdN?|~WY9KhIreDS{y=4iOXMWyl|MqNF=q4$z(=3T@`Ab; z)ALubB6)%@X9W})QtE2})HY>9?k~dh&NpItT>(fbBY|vETW^u&zn4@}ld)S@<))^S5efe6X9f6G!0DC`dpg&$7z?>hy(HXU=cMOXSquzvk za16>X(hXnTjJW6Zmhuu-7_jt6v4@ghes!}%2VR)GIH@&zF2lEA6i^ zq*0SbNwZ6(Z1+_cZX{5yKd9aK?Z34fYm7b247UyKU2U=8H=aE&J4r)g zwP)!x@8bg2DVsoh2GRzc-Un4 zujz^nn=&)rFa7wuIi@?bl47_ZymRs~dFWu$PM>7?(_3Lv!1Uvtk}773I;UOz+2_C7 z++(O8-H)$b#Lw;&{U#_WQC!K-kX|KR z8n;qwkjz*2Hm`8vFr|C#8eQ1E&ds2gkH*30K%F({XYJC6<4GH9fnC5}Pm1<~x^3Y< zCkT(O2&9zoP1n0cpL2dM$<@(tWR=~|2-W6Wxe`c{WTibWfU?$C;6?QyOAwZKhUu;E zq<))!`@rdKtt}^3mHE`vXCiqCB&p`sP4KbLI-D!SrrETpQQZ3JUZ}1VQq(2k4^IwI zkp*-RNMCh^o#tDhXGZx}!g%ent15K^I(e zt9pxd8qPt%P;1hDA(IbK4+aY;`*u@e`KYr}H;Bs{w)=Vf>?M(?L(!y(UD*&W&}u@7 z4^?WD1hOo}q-QY24+9`7yR-3=R_?7ozL7>W@ zY8iH3mtk(2b|C*Y$F!>aCg(hoS>c(cCcId{*J9EVWs!p@1Pi4Ex_ud*G8*4 zVYDIn$vEuYW2_%+(XOY()=2{ZQA4(S(!N~JpZ9X3 zH5Vy2jx4*_LOdovJ2lsMug&?+;ABM8rz|kyar+fiCQRb119`z4UB)cPBu3p`2ShRl zUjEL0Z-o{64;mRCMg@PstzrV3M(9Z?Shnnof>$E#p*6S&Du0&|Gx@AJAy45FDbq5~exaGBvFd1_N=M}HbQ=kRbX;+Ri71La^Xlv!8Cc`-5-%$MHSmD_>%BJhlD^hY5f%S8``k`~JZ`5_w zo4Z}Xd-5*Es~;_8X8L)9+Pbr@pgbjOo%d*qYvTYzruCZ6k7td2I_~qA)d%(XK{L}^ z7bVqyup=iIvClU%b6yKKd&97`C3-jn-$h0&vb#NX_Gp6>Y~bgor`$&@ZqZ3zV9P>= z&E2=YP6o`#6Vi>xQ3iEL=<3bK?wU>ZFm>JQ%?YXVwq`SAxjdz>-KnaM%L_XNZHQk5 z*G#dEPk+3V5g(beEgQL}49I!4DxUGd!CZ4I86gc#8N^ zn>{{jlLdV2n`0^Fj?Z4xT?5?g4-Q_|dZcA{TG`r$+6PoSFqSYII3fWuk)vH{&cp)oo zY^#>N(f^*P%y2X? zj#X4;D(5v!ub=7epg3s21Xdph046cRmeN2YqN2j`hj+ILwIl5V5Rornn?Y2h{Nog$ zGS-Rl?0v!NQH6Ahsu|OO0f)H6<88~Q#oeXvJyQWs5Lx6OJfH$X&b{HL4aZsI#fa5xLXx1;413!SBrftdrgWx$$Tf z#ZW@ML_6%1pL9ja_SM$)RQ{A!E`!wvv>Yt17}cb=9B`5tc}#!74{WSNhvo|`VKa*< z1|gb_JhD}dJr?P%zzwpbx7ZIb^|Qh|qO54*PKGi*bW;Zn9!m+*e8B>8lc9T#Q&qZ^v`wlWbX5% z-Cck{QQSNcegJ?z?;5uIfhsb8A&LnB>X1?>+=mDr9K;KknF=fs0+^pc03}(wms|4~ zWkK^af~*mE)V8tcmzI!!nIBmFmD~5q6loya=4o5}Y8Xl^dATC2Wt*-+%p{-fmz&@k zIGtGm^RNi|;ru534^|u=q2#3dbCsKutv`P$8&i_^G*j;lz7>$87#pnr;CGxnfyW}U zB?3OLj|RZ6ZTJdxCkcOPtq=U{s-i}I&nck!`5)NFwruJ}r#1llNO>qhD1;d4RzTB4 zNg*7Cj9R;Pp6)m6#xNg4(&^K!jF|rYk^EJ^mmMuXYQ&x#+Yczx5~E6qJj~xZOA1#= zdprUEmrxx{xX%b9HQ51(9M4+?EMg7~sf-AoN#TWKym|!_-*OqTMC+U>vbpy zGHZJ-2>Q02;&h6F`1N)KTzcGr|4`pVRQeODB&p23LHFf9!KD{=iiP~S?~Ko*eVG%T z9La^P-{HSlSAXZwinl44>Q^inkHhDEbiz-ON=9JaC`l-!H%n`hIr2_@$uE44Z9cw2 z?xW;-1Hs<11cuSDy?ONXYwX9^T>)+D{=MS&3NDXWF4N7)F3z71D|9j8LP5pF@DTed z=xF}_;Ix`B(1*1pRgclqS6Q(9y9=5u~ini@efVD2(pZq0y zOzQ7~^=B~pjdj9SXODD6E?0f*-*kvTF1K+Lg-c_(EfP{f3{N#%!gg0n1m+)J6neN) z(6Cpwd|7gF==k`g1=;Y|-Xq7Cph9-qk@Ffw-Z1uW7DnAOq6w4M;lha16m@2iOaGSz zm|vYCg_(>je09rFBf#jm>iOL5FoKnqWPnyiH>(LL0!r4-*+(CpLpr6|>NFGz@14-* z8E=9Vau^;ROP-MaJF9b-7T@_| zEzx^D7bQ`x(-pF44O(aJj>-I^kI4D6ulM@019uHh)`?{IhOlRmq(FzMD(W=?gbo(u zXFXH{#Jd<9tz{j9S;zl6xR7fuL{lR19RWz^ZGIUqMpHlX&j6Xu3@~aPWpN~OQ9yg1WaDKeWU9`i4lIWJbVUJ2j$4P{V zq>8I0rA4E zp9^oR`Zj!Cw@}VMR4S~#yQ!djksPJ0DFC&4(*LSfk1~731NLMS{V?6QfFJvqjk1fzXrF5Y{uSHEyy9xZT4~ z&tbyKwr*s(=->a4kn~GzFfxF` z#bdk;d1B-3JBy5=wXS-k0z+!|pU2;q$6<(gA`|mE<>DlrdX77(*GwMF+r3jWS2efT zYr6{>@OkaKTYr<*VnSVp*l!sal0zPZ+!>~u#5(V=pi>jZ_Lrg(EfzcRpEyg*jY49c zhB@Ohfx4;$_ZHw%W3;RG>g}))z6>t<{*w|k@|gvsq-(l;jKqCHVNT~iBtn7-TTPs?sedR)!MhCauYPyoQv+}qvl1HE3H z52}i47J^JPS8qgUuoX*5_)Qg?*>Q#RiNUq+URn`)msFP-w+wjkS&oROcpaBPU)6ai)@oU8X4=8Vi(VweY&W0@d?Z z5nVcdCE0;2_+?Ig&Lq)d_Ey41(KMi@(S09o02ZgbGxr6Vbw)ntFr|6 z=XBFBItr+9iRrQ3VrYGHavz<;Y*7AX52!1Id5FqrhF&xB4i-lLYX4aUF-Yzeb*M`h z&kXI}#B}Ye!)KdG$2TIT-6ivl2I4Qd%cdt7f6YuHzkfTdHKos?l>8`sGdh?2fl^+J zlR)tOJA8=3vw@R4ceK1!m-D=CjEJlly(hc+V+jR737xI@hyH0;XG~Ls6^dM`XBhCb zUAOlYsZzaPuz!Hd;xduh+4pIhuR7FBme2~s1qt7 z)sxv^xV%lAIAs}HoOS`izQ!$L(vtvUBofe=1=+>+sgpYZIj%0^0pkrQ$|AE4&S)is z)gVFU8T6)uxW?y#D?Hb~z6VB%Ce~aWTR(1oXJrh1Dwh0A6>|yam)lnHM{EOeG|QHN zq){A$6m}wBvCr_%r_T3qK@~27J5dp%ctwD0el=&miJsft+trd)-Fo0CWM{3m)aQYL z&R54%Mpf27Lu$wm+}p~s;Bnow^S)5xsK&K>bE1oDRMO*OpvQ*5BH&w;<9v~a8J)+L z@y&~`$Z}3JzPhSwb?VmDzcA?8l7k#Rh0-q0S5?k-^2S2!pA3YAg*<=yQv_@=C&7_s zaXNQ$WRU)w23WP0G$0UdGPWFqX!nXDmzKQktA9L(!2G{XsqU-Gth#hn-5q?1<1<^F zQJ4RE?Au4gnEtpw@{im)H7F!Cj1P2L8I?8_LDb(<^S<&tbW4uxV zL7>@+f8?XzX%NxTLs=O&7)^x?!6`2?x^8vXIs7wrhNPnf5jMzegnbFC1g#lP(Cqc=O z^6q zOezV{&$HjE8?rEvX|WYC3B=BZgzfGkn-5JWv-;aRoPCp6&?3-J4BYgHH6t#7hI*&Z zR%lWvIwIRht>GOw6i#)#p%inE2!mnI| z5Q)U$NiAA~c!-fME2)3Lp1`aYbqgD>%KpOX{8j;h_ z2wU`x&pQp_Mzd1R?imR%$H65^B9;cT6W6H2{oA!G)4Mr5VIfQ=e)%}Av%nN{)csdp zoOb$`pQc1S{bonlfP0JYmZjn0Ae_Md&a3;=q|nFjy0B?u1}>7xL!QY8Od2aQPQZj^ zj@J`@w(5^%J2u((g6tz)x&jIRzFmErFO+Gg_Z$L!?l&gwjg|#gLoUO+T-%hN-lJK4 zv?nK{snzJYV6^sIcJt)^?|0_VOhX|Zwgvy9AzifUsGIXYXmo-7Nr>5#k}|??{UFGy z22=PNTcG)zt}%jHH`Zs32;@foKqX`w9a=XF=YE-181-*rCH|sGM{tS*IQ0(Rfjt~# zP(4M*KW23R8_WZ!^(%>wsLm5WUt#&ti;9Q9Cb9lAY7GQh3#GS#)LaS(L1rAR-{}m6 zrkG7HGy(sOG~UE-p)IE6V}m*7mws{|m)ucc3kU#Pq95`#5MPg`Y&o1dBddeL#4IP% zJe-=k2&dasRO|w*ccvx^+Q+z&B;tb)Br+fq#`BM8I3x#)mS=;o6A@uGz(E3W{um&9 zx;W&y*6y9O^gZ4iAN3;{ge!QEhnzqPy~+me*tg@;plP&RBZMw#Rq4$n-3;h|F+!m& zRcZm~@GKPC(&8eNw5|6T1O!{De6SxWk^5V-+0l|MV~nERLM1_(6Tqpr003JoGXq03 zdnQ^6hh+RlwNCXR8iE0c#)2?@u2eC)gU?B$6jPHp9uK%Y#sm&fizN9S!e4*sVAv=Z znVN&ZUX^E3gV7*wtVUSCb&r?m&ID`*PT!2}zi|fj!)R{mYJ9c|WOIzqePT%+;37^r z#$4VsoW#aE*kBg1*!zUn%}%R{?uaWrJO3x~Cunf}U30H-pM}2Tr!-^#Q8clGe8brf z!GzD?041hsWx%+$+Ec}z1J%|87x+Qf`q$-FZQ(Z_NM$M&$Hrr^bTkp`nD zWthZTp1JX~$u;XyPKo@Y{!>a{34%T}KlN0LqNeHsG~l_$Q-1OD4F*o&hx~4oE{t)0 z71=D3;cszt7s}hWKQAxdJS2cZSV{=MRi@Cos)MTab%%2gR+=MY4N!n0&8h;JDG*!K zx7>{4D@T{9LYYU?J^HmaqSF`Ax>n`Q-=^QEOK{Q7pH1YqiO}?lYE8^9^<8v?Z$wPV z8?zpo*%zICXQ2D^8QZj0jGJUZY9sWpeQTRzt9i)Ferw|wNKVPIjOi>LfkXIPh_;wi zV7h)7EfD#l&FTb(URJ==9Ho8TP`B|cTix#$=8MhHpx)Ly{vu>M+6ERuThmm}0B9vs z?rJQFX|Mk&!J}ewKhwW?GypsK#?MXEG>q>6rzPWRoiad1OCN$-&(D-Yoexylnc|pzWeVDDa-P!8oQ{Z+~R`zpP>L~1fhV*%LSCO>yWD{3OG6P;y5^&pON za-)sbx`upk;#Sj>GA?J=DvhFvz4Y>zS_bdATjG#z7Zr3AkNYVfk^N?zVU3SC?-5S%Zo?{SVXQTGHprJr* zi2uT2*OLQ`yL?FlB48AC63AEQwY8XOfA1VUs8Id>n+6HU{a@ULBX5DjM#)*f!Qp=3 zPf^!3ONoIeyS*Tj3)eAc?xy*^w!Q6@A?CL}K?rx8)w42^JLzRlHz~$YCrGjNqTP&4 zZdvi6Q{m}iU_%ne7i2>qYMKfeS{8OO@-LeCNZv?MBSL_U7?G}fx7Ic zW~JdM;zYj-X}SN-HxVK2>dq422th#ehE`?>(JDi zRe8&q5sg1)Fo?c4-)rb5MDt^#sGbk^Z<`b48w?HRtPkNoth!JWJ*agbDu6>oevJ>z7h z73O%U>(viAA6l~weI{zOj|lpP^rOOJ+Z;MpKVZXV3!fSO6?6g+yi=dmDGz-n0NT+< zIoEcKL2I^hEIX?#KgMl>xhKx_hp(FJ)aS-gl}(pFHWe4HOD^~i6qc$9Na zh3LRhXaA_kjKR&aMlng7njw5l2P;-Te41sG)&;k6ThrNu+_~CwIl*STZ%b+)f=7^uEJS z&+rjFSEpU?hVPA#n7kEFU;A9e-cr&dp`ImYxyct14LvGTTT~k+@_Zwcwfh3K=8ZFy9ZQgl|*P%sd-qvE{A%4w3d7ys@;p~u*!IK zY~PsW%7b*1jwrog4|;P6&Su_yed4(%AZH+Aou~HHXXTs3{_#8VSgJI;&uTNJRt7Y) znLeBehK-QtF6G{`=1%Q9X<w>SMGoUq2e;(Q&PgE<%zM*QL*<`e9ErPEBK-oOi-h&v_?pe|pvv0uR*G{uu_ zPgp&1z9(Ler%9gnU`-X9TGMGzLq&NQhS^?(yJf#LNIDBE{qsoaGx1~o&z^0; z7PX3a@>wj5={ox8v8-^qN!&^T#=JI?DE(OU9G4%Vk|YD{?%LHa0FI zh_2Fy9td3 z@fWg*BDFHl98;RIyx<9^wZyD<%wbqn`++WHrfdwYj8f5H4S`bQ+`&IKf-e(2OC)0` zh$dTC_!LbGW+SY}A+*Zf6xaYZQMN29PYb@?_^^Xk0dHhi#weQ0{r)fJL zyHq3#;NG=;z@9B}fsqp4L)9gal^+K--)}xA(>K4VZ8x#=SFtDotB)p!dq%uBOJx{M zSMvcA%*a}K$ZLc3&92Iti?V~>zMxL$Dmx>Pb* z^q8z7$NPG?ieK`Emd~muayL#{Io6qRV+)+54tN5Yb14;gYCL?V3^Q?mWupb|?|oZx z@A+u5`g+94PqD&mrJ1T2gh+O!~p*ZHK`+0U82oOJTPSlA5h~dcC(IpG>Rv3qUZBK zixBq!pAsVw(wE)W?Bo`$Jp?k+vQtM)u@8yXy)QO`>5Wdp>cd+OYVT?l-LDYgIlyle z1R7d3*@;G}Ozqzn!}NTqR#@_bm|@;ZFM|4?kem6pI{D~hU#+icVGj=LE{lmJsatfG zBCB2;Ow;LKKU=SE zUgGJG0N;f(7-<>MsH+>P>U8n@BcOmogi^FX5aRt^IJJ~RTa9NhLj7ukB4!L=F7wIf7-rC>3DT0Y9=n1fULV`_I4?L`mUxSzZB09?*<5q>sA&dnlN)&};+$q0I3p zHQ*exX+<0P1(hfg@$cY3g#aQECDm57qfn5mCJfZG_5sgI|0Z1r$kWrIe;(WpV!Ji` z_&|<&(%B&jJUL_~J|HxI^53ETu-CCG`_8^HXy4D8Q?YEBG*X?1>`lvjXTKsP+d&Ehi1#BZg!waL4 z0%rJ~%7F6ZQM2IuqVS>#?oGhXDA?WtooWAkX8O9p2uMZ@y2Ww0znsPuu3YH*=Zvb^ zm<08nU1+~Vb#MoK;+BRf@^|U)$Oqy7ifa9|er!9i<&>pL4M(^f-UOh57}N zs4o-fzzE$Pr{>$4Gyb!(cdSv|yob@3B{}v0gzqO=^;;TsPx-ds<%3TefOz8{o-5*G zqNc7}eo%|mQ~)gU-_-;-poMTLH`6MzH~?+AU{}KS9zxIfFT?8~dWLN951jzwpIHC0 z05h|~`Mip1z`tlJfh6z(2DgoNlNr_3-yF6>C?dFDx2x} z#q9_6<90ZW|IS_1ef58N7N91sn!yWaEfXKa0hpIkV+Lwy_!#qy;b;iJyEKGhjz;pr zCDs7jZJ3|a7%**dulz^)-?@D#(;to*tlOQyAKdzT)=+CUyNr&L^2;5J;ml|G(6;VU z(Ulo}e5oDQrQxRC1G~YxSUSm@3Y;RE8T9WJ@;L<+&Gr-73k?|u9%**0I?Y=Ph7%T_ zf3r~xaZmvz?J}L*pkrOUM@Tb);?-1Rabu%9Rc7a715Xzct`LN|D|$nucU{5)gc>CX z#iG<|;~k#qJemGrVDU<6C}4!Sb+(@EY~$2K*r63?$40B4Iu331BrL=rjZquINW+yI zs&V{Jp8nI; z-tu`Gz&`2;8>d`)h-C^(c7(~tdY$Y`IQpz-e%_&&;3FG~t#GKFyfc+Fb~QDJ2r@-J z2daAnt3O)@cX%#!tTzkyEPMs(4-m?}!G6WaaqYwts5WOu`$Fscv&AZtuB__1NO>6^ zwYZU@ijkyjQ`w-LzRzDQj@lt%Uy^&<+ieTr{Xi{%^>5jgA@veelc;19h?W?^G0?I>&$$<8jqy(Xa74u?Xpm>kgqgdNO55 z-m($_DHmvWm_cNBf96xLL`A9X-@J^jJqUT=w|6nI-awlW(aaOz?-rqQw^Nk;l!Yso zTOa^2zFP2FU)VeCW`RL&%7ut%>3YGfXuNNAS;wKD9ZWR;?nKLx;{^;uLX0~)%yjm! z)8N%76@dc~ecQ9$>HONjU*WcnguivLAS_0uRw_mtYVEbES_m%pPysMu3&nz%tX4TE02?kJ(`zi{^SV5?9V^*&vZpUFh z0t~}|IP|sdcJ$UW)2FH1Ks6ADlQ?vx%;uo#dN}&E*O=_OgCx9YcCU*S>XWwWhrmgu zcejuVftz}EwNB@I?MX%38HJdDKMaZ(oo~<|E+{||5eWLSi|0fqGj70$V`lh6x8R>o zwNLiFi0~19*DFkQ?oAe_VS(61YlO(d@V%o+n=0N&`e?LMgV73NvnE?7st@M#r#^Qh z^Rz1q4$(6b(&Br0$4!ml{!WrapyKIS`r0Qin-wznoAq#ka`J`h&3lT|i!#-P+A=XG z9LQ#VU0cnMh)$rmGzP=Qk17#D?*$O=n9Wf_oXp7(Cv1wq_Hlz#d5ZYxw8sjB6 ze(B~!TfA%rZICTC0nmgf`aNCCuIW*P#m@|u!a(HQ>>S%>q&=6g1r$j#r6RsaCH3nc zPGET0b3f$HX?+P%DE@I_?Fk@5o{hfb^#;ij4sNO0CJU6-qi|Jx`UFY4m7U(kH?HK;SxDO;^V#maDwhSDoVF^%vZO{Fx{Hn z-`oh56hVw?_?13>l~8rT4`BN$7C5!a6BhRtRCYoN)n+$`a$PO5*hm^V=uJ8UNSd!c zqlZRygn6C`_`LhTv--5pClWYNM`L+4^@%*=uBoL(1GeO{kLFz|*c-cp0Gn%n#}N_^ zW3t)l5DV_i?R(EB_2t-w_c|8)gR!LKEazAm0Oem9|KxO=X8jjR_;0Y^UUFqr@ksD* z*Mh#4*o+5-Y`+p7BkKZIA)yHU+xa_i8wuq%GzsL~(SF+3@*#Y;Yv(8osHuhocuWCt z;XE$$(UEq64-7w)EE@#Gp8ap1%kOHPw#fxM&U*We94i?h^8KvCkW2})wW70> zI2<|Q)9#GY8^(Bf9Et!`LNe*X64Vk5U50#!TCvAn8~2q%3$qWMZuAzan%p<17uy^J zKL5ij!a16j5D^tCB4BcK{s%7heBOQRFcpS>mtyox1R;92#fb>TV;BenJjQ=yEit#a zEp{#S--O4tb)uhMD-!mB4*tFG)rgQs1fa&6R`P&p70mmy^hMMl2_6t&6Ct8)SHIwC z!LDJMgy5ng6SAkI0%XqAu69VQdY66nrt9%ff^5|xj zu4m^_Uh*|e;p`weBM1>ZM>d6cj8VJb73^{&NQ_F|!x3z_Hlf^A*2lA1&k<+Ta^S_a zdDj%#>3_gQkY()*G-kFFhbzeTY~4g?Kf4T^D0l=aHa%e%DyhOqg-h*H;m{_oB&JCO zp2IVxBqsMCfrvV4m&W^H(?C!%IuAG&iMZT%Y}5>wH}*va?J*qk+4qsiYx%B!GQ0kY zK_6aC2B^Tc^kP-EO0a1WW(R#K@Fx2|s?pGt)R4e`L?Y|!`j}2etsQBX07T0@0Ay(y zj`3tf&G3Duf`U;0_oHIhjINWMo5-}>c;XlDC*t5!Q^ALp(f|R$1SeUaOmA!?7o*|D zGq^nC4jd6AgzwMyV$Vs;S9|yRyB*OFMOy-k|^kzw^tHwbFxQPH?#suoz}h!Ck=S? zIgpbBBI~so(O&AVCMv1=JF8qOKeY?BwZ)emfkN^!$uJraRQ4b_e>1vZiU0X@Ugc|^ z$!OV!lx!_PZsH{_m;a>GJOS{HUYyQeBamfKfGtlMHHZA*4K+#+uQ{8OGomh&YdL6l zq2vxnw=GwbwkCCh=^a!-`P=ZFd-+e*m_ooHQyx|#lwOYmNOH#W!rK2pwzkcW(DsbSm$}9nD=1fv2 z`desYs}s^iT2F9x@ZiKbQoXZm&sai|YT$PCXh7;0BKz5_Z4rN@m}&;yE_v{?RAO`Q z!Kjv-_}ZXI8EQ|js5fr~UY{h~O5RaPS7#O9XWc#F*a#5Nl%*Pq*7VgjT|I#EbmP$#89h2v^(35Cw02*ndaH*917eP4q&!7QNs(Y<~oc$k(ZuCEw z+L^!SZOMav*X!m3YRbX-WdFD2Jl$gI@NG)b4(qccePFDEh8;hjyUo%GRiZ#Rw)moS z)L$K2qwW_2E7;S`i0&727;U=y&7%QMH|)2=F^op*wpSigLu@Mv4JJxu2l~JrY44em zxch+{7%Sjb$)-nAy0WZUfzKCHwIi=raIhSAve|lV6yJaP&3aCO5~F1t-dh-Oug!(~ z6wUP(2n$vfk;*yW!Nh#9#d!3IFKdT%u{#C!3E8~m8!j z-inVy&PbJ04&bEvD(SP)Tt9LtkzVAL*rDuhFX3ss2&HwQ zLwR+u#ef2~aN|`~%jM+hs(OnSSoyoz)#xAHbN`>a+&QCAd2ZlSA_{0z2!48KElW_v z*D&~i@(RHNzX)~~e#n0joaztSxRQ7@47-j{BH<4`y_#hG_yt?pxB%RZQzh(_&nnz zSmq$9Yx?B&SoN^JDsZ9;L52C~E}$wAt?&i|xPdp{eEWN%Qk|e87B-dGg3T%(+~Vy< zYgz70e5P#0-fu(gVM`^I?q{Xe02Q}9wOs^^GS0I3P+)2@(bG?cp3dJ=Yd_8RNoLB+ zVD8=*{AGPNSGg#X?^*W(yg)cjuruDsCKsP|KAO!fb^uWG_QqL+*VgH>1OB-ar|Cz4 z3qYhj=B0C#;pRf^j^$xMNP~%BQil!1SlLAHb5mJ3TFz?|1%ZeYY6W+1~G<*yQfpJYU?qO2aq8 zBX%AM_M1zXQaD2ox+w+(%E%B06K2P+n?RV9Sl`Bn`{+M#+l)lp1F~~;1$-j+{>I2T z=w<~bG;{94)TYUc?Zyb1FG6$z=-Rr02=`aEG<6x(?0`wbBp%4HWwvx5Grj&lRakKv zskz%E$YUBP9@Vt-qXA`|OZr>V%HylC((TpaHq?y+OE6H!DIb!a>*;ROmqEu@{oC!* zA84Vl$9G3A?OsjlV=!>4bQemH@kFn3mdzxHTuY7YlR~T1Vh=-}IHf>OA^jm~a%>V9 zm&g=7VReQQN2oLsby#nNFjhO`*D1 zfSSeGbfi(ufQqv0ZLQ2(f{H~A4LQ`Y-1>=EP6m3q-In=G*x2Kd zCg9TI0UM?8QuWX`2LIp{lxG+Qt%LqZ^_Oo=rKV#&ZlH??O435fBi4NuW1<48?g(wK)5n96UiHxHSp(-kwk5CPj`B?31rafkb(ZfS|p zR-}xbb@>UJ%-7#R0>4yE+Hu}~pM@ov=MsJX>m=4Dl&hn?FSDRZ!8Y0N?yA^ zKW<)^YUCsjvS!>A+aOTpAy#SnUu1;yzP0hBmLw3_bSKehUu5n_oUqGh$=V|W9+9NU z$$gzTs$8RTBx3IF_fiIg*Zl^1J_*O}e^}<0cAQjG&z-bfx2(sU>QrOiiNP(EQ_K6F zlEib_*B7Mlrq(1@o;`J`NYTUNk47K^7!-wD=91rIwsKQ>w85|Nt_4f`P;K~PfQ9$T z$i_*hcD&>F*6$?Gw$$^AdkWOG2R_3R{Q5x@imb86xt%#OE*hJ8csahZ#$09b?c<|Q z@?yr&app`jauJRmOutEkG=h9S1P$p-G{9uO33AkFnt#ikG*bK=*Nyp&tu@+8J-LfU zU*P2o8eG7d1b_17>HRJ1sOx6t%+gNBx9e%{O!|d{Ni7jsSc*>fvkQIGkf+fpv{Zz}WfNWk~V$Z9Y zk|G=O{Wi5XEt=vxAV+^`ltfBt#M7nWO*A%j%q$Jru6&Y=V5%31wQ#YSq?(k$p4Qw^Maae^U+es zP(>uEQAI1&SW1g7rg;zd_ubI>+r&D3CnB!?jf?-L$|}D2FRE-QQz==r2uVia-60Zv zYL3;L71+M+@aD>N_X>UR-dCttyGt&tZg26W1xVxC?xH{Ufw9cx;fGbeAV}6$c*8NU zF?Fuq?LsD^TzUo__)^Rm<}eT35~YraQH%XMfMq2`nMNh=b< zS{*vl9&A?Smwb>H2cOvnDt@f+don}zT?{V$ZY7rLCkV(U(G%-`C8WdQ@u>b49^|Bj znl7-honD&doY&Xp;X4un-Is}Hsvp@u5DmLD-MC#^EReia!0zeQE8F-hq)=*-Ex5~5 z*K=Yqn8PARZc6F)d5MSH_*yUO)M)-IzGkI|Dr*(kyBJh)JIOe#tHxcq<`%i-2Bs5? zCNJiO&Y7WhX`a4C-pn0#{=sd0kmUWgg3-um(N*KzMsw)5d+K{a-9UKvSu^q_e@R7J zY^RiUBa>z;-ybJG)39J7Wc~218x8?p0k300f^w=k_j*eFR|_bHm||+nMPCMfm>zfP zFfC#creDmIZBpu{VKuKZ;HbzLrE>S@`<;QM<&P|~TQRMawVf<#W%l>J^Dr7o)F zIDtsOske=MT=2@g#egiL?E_YUY>}XNUy@r`dQH1tbC&De+|89EER!+?i+GQDs@cQV@ zUNee&PanVbFiuHJ7wS2-tLE}7EfGqKza9Jn?~}Pc%u*{~ZzduAz9L;|Y{DDJsQwG> zbhE)-!?s+DgPHLIr!?z$i88VDEy2k=eChq@GuZ>77)>ft^`NSP67~?onAR>C<=4f7 z3MyU4(S_|f>Nv4UQ!p6~g;zPSF_pxgmwC+!hNMRQ()!Ok-zR4DzIZNvJv#Qy6CY6> zE0rXnyU<*<`{7w?7#hM;=?}H`^6FZIP}ZjdGx?6KQ?f(~6iiejHplDBN?5*Gm$i23?yQcQTP`)D^wdcd3c&7reM9VXnnJtdKr>c2yeA;pwK4V0*N_vlB<)#fFh-{bcN5IkZS4$x zh3>w4qP(vshPeMY`sK9EHzSxP!cYUR&67#CK(uQ#XR7n_;2jC0?!HsfXM3UnOOs|^ zDP8XG3r~J5Vxxf5PqtX)VEN{-ruGUWyvEIx&aB)dEK_IyEM=bp$f|ZbY!kD$o-#8! z@n?@-oNi!gS895d(yWOnVedihgL1m5b(8Pp%BXL7&~1$bW}ddVk?xOCGF_-=ta~^Q zJO^scz(=%lU>R$U0fO9rdhP@X>@S`_+AGX{X&Q6?i@;P|Ykrs(kb##8 z;v^69xIfFZR9T|IRqv-y=L}TUVoJe8z8JccWIlTj%Gh-#0RC#SH{&k=;-}S@e^)?3 zw)#IRprsl3vY=oKsei}~O1@gPnvZ(N9d~`f5Y)}Zh+uQ52$lqFx*cmbjk4L6?rA#9 zRd4s`%Qa-KwK|o45j1|0?RaF({O2+O+0QkiMezFX77ZA0mW7;S>&f^L4;;(-=pCxK zhg%}+DKySQmm6_FuB&YLZ#BDr3P>|J%zYvFIe9VY(7xm(hThX&3kuAAJ6ZtX2P!rLn+!q@|s%FqLc(Y1U;{aM)Qvdu`J(1H*i1 zb-UhHbj{n2p^Q>WPv`)u=Y%RgPioKJ>+s~QLyTA@ZAt;3cKnWJ$iW%~jk|YfwqIbnTVC2F=mqhM^(HAq5DBYQHj2)T2ilkzSApu^iYD8>0i>RKXO0M_~xu1 zF2y4s2Ckk0Krb(8M-o9?-TC4EpG>24yhGZf}w;!8{jVds0Z#{y=MSm2A>X zjcra=V|uLhp1O;*U^`VeZ!TcuUY%Scm}RjR!oHnqq5Ae?j=x>tGv7}0m6xnVo+>!P zgrmEzy%cR@Nn|Y$_4K)=!?5|%ZmA%n%Og#eaH{+uCLIp%)XTY$P}!~@C_>Km&$xg6 z%tZ;4@V7X9qjxWH&+62yDH$JL9%C@qWoJ0<@amCKJxzB(kc-tV!F;{X;orRqIRajj zeR~{Fa_dm!@_Rc@s(W|+YiFLlr>Q+-P}waX+)}i8O4|p#^Fm#)m^{f|kmrlKc$_*;H4V z#JOpbz1EQ)P4Vr_NdLqUmaUv!u-yVO-M7PX>Vl4JhG|2g?2zDZ=2*R zPj}uhaOif9tBry}Ov-~gg!MxB?t@`dQaR}M@h!N&8>yInAWvkYR!@jcZ<8PTLc{?Y2o%BXOFr0J|?i9gNo8+ zm`UDB;)c%G)e@Fg-=}hk)BXBzYd1(3b+0^t_?}5{l+weywFsdYECv%JyXV1gZ_!=X z`%+NJLxUEqz<+jpI4+Jm-?BwTOI^j<@am{P;)Qizc}QJ#a-JmfJ=U$in)$*v9&N*67-$1Rwv3 zV1}bW<9C63V;)X&G+O)HTw>V_sr!pfWMR?!#`+Iw%D=7Etz{CQy;U`Z(&jqEk1Fn_ z92#qXcA1|p2tOYyE*~>9*1~l6Ufk3Vu){mbKxR}gi$umlqV`TNG^#E_v?MEm)YaFs zd5vF(r2TNGQsPMYXQ5d~WlT}Eu|zzBWHa%TSS5Y68K{_zSdlDw77=>K zZ1L?aMqm!a$TAKTz6@xUMF-wGuisSd1z>z&ZMHSFcDXFOTeWralwe-6SLnOV3y%SX z>wQ?vR?gh<;sQ-U*r(#_Eor;vd{J~2RL7>eY(IPF8`0oFzrwvC7}=RO@t~25x0wq~ zCoT`!-*m9Vm9=Buh!?XSMuE$k5M^sKB>WU) zlCf@{jV$Y`S)9TJ2|1A6LWA$j_evbn%oF-DH`n}RrS)o$%ovMgjQZLf9d+>XKK{DCohXp?bV!O&;x#6_M>P2iv!&UHT6Xu|9BfVTfI3-lT=v z4x+%fG~I7DOxw4yFSVd+>l=Bo_2E=PB?#aHUyTPvC8^`15{A}DKMVhnl22b?3<44V z7)oXmM1&m$;qZ>)e_0i41Ephg-!)LEP6)(hcHDXZ#I<_coU*~(tO`i+RqqNGR`ZV>@Wv; z{OO}#Hj+ z$V=BUcbo8ESZ@tKwWRl(*a55_u?Nwk*VbsysyI-4uN!H3eEM%v

                              F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR385/images/cplsetup.png b/previews/PR385/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR385/index.html b/previews/PR385/index.html new file mode 100644 index 000000000..7b9171488 --- /dev/null +++ b/previews/PR385/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                              ClimaCoupler.jl

                              Coupling CliMA Models

                              ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                              • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                              • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                              The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                              Coupler Scheme
                              ClimaCoupler.jl allows for independent development of interchangeable component models.
                              diff --git a/previews/PR385/interfacer/index.html b/previews/PR385/interfacer/index.html new file mode 100644 index 000000000..5376238b2 --- /dev/null +++ b/previews/PR385/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                              Interfacer

                              This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                              Coupled Simulation

                              • CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                              Component model simulations

                              • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                              • the current version requires that there is:
                                • one AtmosModelSimulation
                                • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                                  • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                              Prescribed conditions

                              • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                              get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                              +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                              +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                              +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                              +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                              +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                              with the corresponding update_field! functions

                              function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                              +    sim.cache.area_fraction .= field
                              +end
                              +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                              +    sim.cache.T_sfc .= field
                              +end

                              Interfacer API

                              ClimaCoupler.Interfacer.get_fieldFunction
                              get_field(::SurfaceStub, ::Val)

                              A getter function, that should not allocate. If undefined, it returns a descriptive error.

                              source
                              get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                              Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                              source
                              ClimaCoupler.Interfacer.update_field!Function
                              update_field!(::ComponentModelSimulation, ::Val, _...)

                              No update in unspecified in the particular component model simulation.

                              source
                              update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                              Updates the specified value in the cache of SurfaceStub.

                              source
                              diff --git a/previews/PR385/performance/index.html b/previews/PR385/performance/index.html new file mode 100644 index 000000000..0576918b6 --- /dev/null +++ b/previews/PR385/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                              Performance Analysis Tools

                              ClimaCoupler.jl provides basic tools for analyzing performance:

                              1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                              2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                              Flame Graph Interpretation

                              • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                              • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                              canvas

                              • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                              • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                              References

                              diff --git a/previews/PR385/postprocessor/index.html b/previews/PR385/postprocessor/index.html new file mode 100644 index 000000000..1869f4da3 --- /dev/null +++ b/previews/PR385/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                              PostProcessor

                              This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                              Diagnostics API

                              ClimaCoupler.PostProcessor.postprocessFunction
                              postprocess(
                              +    name::Symbol,
                              +    raw_data::Union{Fields.Field, Array},
                              +    p_methods::Tuple;
                              +    lev_slice = 1,
                              +    datafile_latlon = nothing,
                              +    nlat = 90,
                              +    nlon = 180,
                              +)

                              Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                              Arguments:

                              • name: [Symbol] variable name
                              • raw_data: [Union{Fields.Field, Array}] variable data
                              • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                              • lev_slice: [Int] level index along which the :horizontal_slice is applied
                              • datafile_latlon: [String] name of the regrid file
                              • nlat: [Int] number of latitudes of the regridded array
                              • nlon: [Symbol] number of longitudes of the regridded array
                              source
                              Missing docstring.

                              Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                              Missing docstring.

                              Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                              ClimaCoupler.PostProcessor.DataPackageType
                              DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                              A container for storing the tyoe, name, data and coordinates of a variable.

                              source

                              Diagnostics Internal Functions

                              diff --git a/previews/PR385/regridder/index.html b/previews/PR385/regridder/index.html new file mode 100644 index 000000000..533f2405c --- /dev/null +++ b/previews/PR385/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                              Regridder

                              This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                              Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                              Regridder API

                              ClimaCoupler.Regridder.write_to_hdf5Function
                              write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                              Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                              Arguments

                              • REGRID_DIR: [String] directory to save output files in.
                              • hd_outfile_root: [String] root of the output file name.
                              • time: [Dates.DateTime] the timestamp of the data being written.
                              • field: [Fields.Field] object to be written.
                              • varname: [String] variable name of data.
                              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                              source
                              ClimaCoupler.Regridder.read_from_hdf5Function
                              read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                              Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                              Arguments

                              • REGRID_DIR: [String] directory to save output files in.
                              • hd_outfile_root: [String] root of the output file name.
                              • time: [Dates.DateTime] the timestamp of the data being written.
                              • varname: [String] variable name of data.
                              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                              Returns

                              • Field or FieldVector
                              source
                              ClimaCoupler.Regridder.dummmy_remap!Function
                              dummmy_remap!(target, source)

                              Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                              Arguments

                              • target: [Fields.Field] destination of remapping.
                              • source: [Fields.Field] source of remapping.
                              source
                              ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                              remap_field_cgll_to_rll(
                              +    name,
                              +    field::Fields.Field,
                              +    remap_tmpdir,
                              +    datafile_rll;
                              +    nlat = 90,
                              +    nlon = 180
                              +)

                              Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                              Arguments

                              • name: [Symbol] variable name.
                              • field: [Fields.Field] data to be remapped.
                              • remap_tmpdir: [String] directory used for remapping.
                              • datafile_rll: [String] filename of remapped data output.
                              source
                              ClimaCoupler.Regridder.land_fractionFunction
                              function land_fraction(
                              +    FT,
                              +    REGRID_DIR,
                              +    comms_ctx::ClimaComms.AbstractCommsContext,
                              +    infile,
                              +    varname,
                              +    boundary_space;
                              +    outfile_root = "land_sea_cgll",
                              +    mono = false,
                              +    threshold = 0.7,
                              +)

                              Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                              See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                              Arguments

                              • FT: [DataType] Float type
                              • REGRID_DIR: [String] directory to save output files in.
                              • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                              • infile: [String] filename containing input data.
                              • varname: [Symbol] variable name.
                              • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                              • outfile_root: [String] root for output file name.
                              • mono: [Bool] flag for monotone remapping.
                              • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                              Returns

                              • Fields.Field
                              source
                              ClimaCoupler.Regridder.update_surface_fractions!Function
                              update_surface_fractions!(cs::CoupledSimulation)

                              Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                              Arguments

                              • cs: [CoupledSimulation] containing area fraction information.
                              source
                              ClimaCoupler.Regridder.combine_surfaces!Function
                              combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                              Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                              Arguments

                              • combined_field: [Fields.Field] output object containing weighted values.
                              • sims: [NamedTuple] containing simulations .
                              • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                              Example

                              • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                              source

                              Regridder Internal Functions

                              ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                              reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                              Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                              Arguments

                              • field: [Fields.Field] object populated with the input array.
                              • in_array: [Array] input used to fill field.
                              • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                              source
                              ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                              hdwrite_regridfile_rll_to_cgll(
                              +    FT,
                              +    REGRID_DIR,
                              +    datafile_rll,
                              +    varname,
                              +    space;
                              +    hd_outfile_root = "data_cgll",
                              +    mono = false,
                              +)

                              Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                              Arguments

                              • FT: [DataType] Float type.
                              • REGRID_DIR: [String] directory to save output files in.
                              • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                              • varname: [String] the name of the variable to be remapped.
                              • space: [Spaces.AbstractSpace] the space to which we are mapping.
                              • hd_outfile_root: [String] root of the output file name.
                              • mono: [Bool] flag to specify monotone remapping.
                              source
                              ClimaCoupler.Regridder.write_datafile_ccFunction
                              write_datafile_cc(datafile_cc, field, name)

                              Write the data stored in field to an NCDataset file datafile_cc.

                              Arguments

                              • datafile_cc: [String] filename of output file.
                              • field: [Fields.Field] to be written to file.
                              • name: [Symbol] variable name.
                              source
                              ClimaCoupler.Regridder.binary_maskFunction
                              binary_mask(var::FT; threshold = 0.5)

                              Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                              Arguments

                              • var: [FT] value to be converted.
                              • threshold: [Float] cutoff value for conversions.
                              source
                              diff --git a/previews/PR385/search/index.html b/previews/PR385/search/index.html new file mode 100644 index 000000000..d16cca7ca --- /dev/null +++ b/previews/PR385/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                              Loading search...

                                diff --git a/previews/PR385/search_index.js b/previews/PR385/search_index.js new file mode 100644 index 000000000..37b7e6971 --- /dev/null +++ b/previews/PR385/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\nif !(@isdefined parsed_args)\n include(\"cli_options.jl\")\n parsed_args = parse_commandline(argparse_settings())\nend\n\nif isinteractive()\n parsed_args[\"surface_setup\"] = \"PrescribedSurface\" #hide # necessary to stop Atmos from calculating its own surface fluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"parsedargs[\"dtsave_restart\"] = \"5days\" #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" parsed_args[\"job_id\"] = \"interactive_debug_run\"\n parsed_args[\"monthly_checkpoint\"] = true\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nif !(@isdefined FT)\n const FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nend\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\nmonthly_checkpoint = parsed_args[\"monthly_checkpoint\"]\nrestart_dir = parsed_args[\"restart_dir\"]\nrestart_t = Int(parsed_args[\"restart_t\"])\n\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator:\n PartitionedStateFluxes,\n CombinedStateFluxes,\n combined_turbulent_fluxes!,\n MoninObukhovScheme,\n partitioned_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# user-specified diagnostics\ninclude(\"user_io/user_diagnostics.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"components/atmosphere/climaatmos_init.jl\")\natmos_sim = atmos_init(FT, parsed_args);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D boundary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"components/slab_utils.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/slab_seaice_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_from_file\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_turb_ρτxz,\n :F_turb_ρτyz,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation, :toa, :T_sfc),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name == \"slabplanet\" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks =\n (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n parsed_args,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = nothing\nif parsed_args[\"turb_flux_partition\"] == \"PartitionedStateFluxes\"\n turbulent_fluxes = PartitionedStateFluxes()\nelseif parsed_args[\"turb_flux_partition\"] == \"CombinedStateFluxes\"\n turbulent_fluxes = CombinedStateFluxes()\nelse\n error(\"turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes\")\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each surface component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if turbulent_fluxes isa CombinedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate fluxes using combined surface states on the atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts\nelseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surface models and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n update_field!(\n ocean_sim,\n Val(:surface_temperature),\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),\n )\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface)) # TODO: change to SIC\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\n if turbulent_fluxes isa CombinedStateFluxes\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)\n elseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surfaces and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n ClimaAtmos.SurfaceConditions.update_surface_conditions!(\n atmos_sim.integrator.u,\n new_p,\n atmos_sim.integrator.t,\n ) # to set T_sfc (but SF calculation not necessary - CA modification)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\n end\n\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent\n\n # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_ARTIFACTS_DIR)\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa = (:regrid, :horizontal_slice),\n precipitation = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 50), units = \"g/kg\"),\n toa = (; clims = (-250, 210), units = \"W/m^2\"),\n precipitation = (clims = (0, 1e-6), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n )\n amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa = (:horizontal_slice,),\n precipitation = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedStateFluxes\n ClimaCoupler.FluxCalculator.CombinedStateFluxes\n ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedStateFluxes","text":"PartitionedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedStateFluxes","text":"CombinedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","text":"combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","text":"atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR385/siteinfo.js b/previews/PR385/siteinfo.js new file mode 100644 index 000000000..93df92660 --- /dev/null +++ b/previews/PR385/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR385"; diff --git a/previews/PR385/testhelper/index.html b/previews/PR385/testhelper/index.html new file mode 100644 index 000000000..db53e682d --- /dev/null +++ b/previews/PR385/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                                TestHelper

                                This module defines helper functions, objects, and constants to be used by various files in the test folder.

                                TestHelper API

                                ClimaCoupler.TestHelper.create_spaceFunction
                                create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                                +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                                Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                                Arguments

                                • FT: [DataType] Float type
                                • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                • R: [FT] radius of the sphere underlying space.
                                • ne: [Integer] number of elements used in the space's mesh.
                                • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                                • nz: [Integer] number of vertical elements
                                source
                                ClimaCoupler.TestHelper.gen_ncdataFunction
                                gen_ncdata(FT, path, varname, val)

                                Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                                Arguments

                                • FT: [DataType] Float type.
                                • path: [String] location to store output datafile.
                                • varname: [Symbol] variable name.
                                • val: [FT] value to store as varname at all indices.
                                source
                                diff --git a/previews/PR385/timemanager/index.html b/previews/PR385/timemanager/index.html new file mode 100644 index 000000000..418259a67 --- /dev/null +++ b/previews/PR385/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                                TimeManager

                                This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                                TimeManager API

                                ClimaCoupler.TimeManager.current_dateFunction
                                current_date(cs::CoupledSimulation, t::Int)

                                Return the model date at the current timestep.

                                Arguments

                                • cs: [CoupledSimulation] containing info about the simulation
                                • t: [Real] number of seconds since simulation began
                                source
                                ClimaCoupler.TimeManager.trigger_callbackFunction
                                trigger_callback(cs, ::Monthly)

                                Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                                Arguments

                                • cs: [CoupledSimulation] containing info about the simulation
                                source
                                Missing docstring.

                                Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                                Missing docstring.

                                Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                                diff --git a/previews/PR385/timestepping/index.html b/previews/PR385/timestepping/index.html new file mode 100644 index 000000000..d3af24eb6 --- /dev/null +++ b/previews/PR385/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                Coupled Simulations & Timestepping

                                ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                • step!: advances the component model in time
                                • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                ClimaCoupler.run!Function
                                run!(::CoupledSimulation)

                                A simple outer timestepping loop for coupled system runs.

                                This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                source
                                ClimaCoupler.step!Function
                                step!(sim, dt)

                                Advances a simulation sim by dt.

                                Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                source
                                ClimaCoupler.coupler_push!Function
                                coupler_push!(coupler::CouplerState, model)

                                Update coupler with fields retrieved from the coupler.

                                coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                source
                                ClimaCoupler.coupler_pull!Function
                                coupler_pull!(model, coupler::CouplerState)

                                Update model with fields retrieved from the coupler.

                                coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                source
                                diff --git a/previews/PR385/utilities/index.html b/previews/PR385/utilities/index.html new file mode 100644 index 000000000..2f7a7f7f8 --- /dev/null +++ b/previews/PR385/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                                Utilities

                                This module contains functions, objects, and constants used by various modules in the coupler.

                                Utilities API

                                Missing docstring.

                                Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                                ClimaCoupler.Utilities.swap_space!Function
                                swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                                Remap the values of a field onto a new space.

                                Arguments

                                • field_in: [Fields.Field] to be remapped to new space.
                                • field_out: [Fields.Field] to remap field_in to.
                                source
                                diff --git a/previews/PR4/assets/documenter.js b/previews/PR4/assets/documenter.js new file mode 100644 index 000000000..15dc682b9 --- /dev/null +++ b/previews/PR4/assets/documenter.js @@ -0,0 +1,264 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) { +$(document).ready(function() { + hljs.initHighlighting(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR4/assets/logo.svg b/previews/PR4/assets/logo.svg new file mode 100644 index 000000000..badfb58df --- /dev/null +++ b/previews/PR4/assets/logo.svg @@ -0,0 +1,138 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR4/assets/search.js b/previews/PR4/assets/search.js new file mode 100644 index 000000000..71ebd87ed --- /dev/null +++ b/previews/PR4/assets/search.js @@ -0,0 +1,251 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.6/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                              • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR4/assets/themes/documenter-dark.css b/previews/PR4/assets/themes/documenter-dark.css new file mode 100644 index 000000000..f866234ff --- /dev/null +++ b/previews/PR4/assets/themes/documenter-dark.css @@ -0,0 +1,7642 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close, .is-unselectable, html.theme--documenter-dark .button, html.theme--documenter-dark .file, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after, html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .box:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:focus, html.theme--documenter-dark .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .delete:active, html.theme--documenter-dark .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete, html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.delete, html.theme--documenter-dark .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.delete, html.theme--documenter-dark .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .button.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, html.theme--documenter-dark .modal, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .button, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .button:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .is-active.button, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis { + outline: none; } + html.theme--documenter-dark .button[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], + fieldset[disabled] html.theme--documenter-dark .button, + html.theme--documenter-dark fieldset[disabled] .button, + fieldset[disabled] html.theme--documenter-dark .input, + html.theme--documenter-dark fieldset[disabled] .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + html.theme--documenter-dark fieldset[disabled] .textarea, + fieldset[disabled] html.theme--documenter-dark .select select, + html.theme--documenter-dark .select fieldset[disabled] select, + fieldset[disabled] html.theme--documenter-dark .file-cta, + html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, + fieldset[disabled] html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                                that is identified by id #documenter. + */ + /* a11y-dark theme */ + /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ + /* @author: ericwbailey */ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #e74c3c; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark, + fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], + fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag:not(body).is-white, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-white, html.theme--documenter-dark .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag:not(body).is-black, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-black, html.theme--documenter-dark .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag:not(body).is-light, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-light, html.theme--documenter-dark .content kbd:not(body).is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag:not(body).is-dark, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-dark, html.theme--documenter-dark .content kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag:not(body).is-primary, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body).is-primary { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-link, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-link, html.theme--documenter-dark .content kbd:not(body).is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-info, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-info, html.theme--documenter-dark .content kbd:not(body).is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-success, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-success, html.theme--documenter-dark .content kbd:not(body).is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-warning, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-warning, html.theme--documenter-dark .content kbd:not(body).is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-danger, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-danger, html.theme--documenter-dark .content kbd:not(body).is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-normal, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-normal, html.theme--documenter-dark .content kbd:not(body).is-normal { + font-size: 0.85em; } + html.theme--documenter-dark .tag:not(body).is-medium, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-medium, html.theme--documenter-dark .content kbd:not(body).is-medium { + font-size: 15px; } + html.theme--documenter-dark .tag:not(body).is-large, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-large, html.theme--documenter-dark .content kbd:not(body).is-large { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body).is-delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete, html.theme--documenter-dark .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before, html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag:not(body).is-delete:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, html.theme--documenter-dark .content kbd:not(body).is-delete:hover, html.theme--documenter-dark .tag:not(body).is-delete:focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, html.theme--documenter-dark .content kbd:not(body).is-delete:focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag:not(body).is-delete:active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:active, html.theme--documenter-dark .content kbd:not(body).is-delete:active { + background-color: #111414; } + html.theme--documenter-dark .tag:not(body).is-rounded, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-rounded, html.theme--documenter-dark .content kbd:not(body).is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .select select.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], + fieldset[disabled] html.theme--documenter-dark .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + fieldset[disabled] html.theme--documenter-dark .select select { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .select select[disabled]::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .select select[disabled]:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly], html.theme--documenter-dark .textarea[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white, html.theme--documenter-dark .is-white.textarea { + border-color: white; } + html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-active, html.theme--documenter-dark .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black, html.theme--documenter-dark .is-black.textarea { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-active, html.theme--documenter-dark .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light, html.theme--documenter-dark .is-light.textarea { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-active, html.theme--documenter-dark .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark .content kbd.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link, html.theme--documenter-dark .is-link.textarea { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-active, html.theme--documenter-dark .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info, html.theme--documenter-dark .is-info.textarea { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-active, html.theme--documenter-dark .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success, html.theme--documenter-dark .is-success.textarea { + border-color: #008438; } + html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-active, html.theme--documenter-dark .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning, html.theme--documenter-dark .is-warning.textarea { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, html.theme--documenter-dark .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger, html.theme--documenter-dark .is-danger.textarea { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, html.theme--documenter-dark .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .is-small.textarea { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium, html.theme--documenter-dark .is-medium.textarea { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large, html.theme--documenter-dark .is-large.textarea { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth, html.theme--documenter-dark .is-fullwidth.textarea { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline, html.theme--documenter-dark .is-inline.textarea { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .checkbox, html.theme--documenter-dark .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .checkbox input, html.theme--documenter-dark .radio input { + cursor: pointer; } + html.theme--documenter-dark .checkbox:hover, html.theme--documenter-dark .radio:hover { + color: #8c9b9d; } + html.theme--documenter-dark .checkbox[disabled], html.theme--documenter-dark .radio[disabled], + fieldset[disabled] html.theme--documenter-dark .checkbox, + fieldset[disabled] html.theme--documenter-dark .radio { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, + fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .content kbd { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; + padding: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs { + display: block; + overflow-x: auto; + background: #2b2b2b; + color: #f8f8f2; + padding: 0.5em; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR4/assets/themes/documenter-light.css b/previews/PR4/assets/themes/documenter-light.css new file mode 100644 index 000000000..57fdf947d --- /dev/null +++ b/previews/PR4/assets/themes/documenter-light.css @@ -0,0 +1,7630 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child), .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .delete::before, .modal-close::before { + height: 2px; + width: 50%; } + .delete::after, .modal-close::after { + height: 50%; + width: 2px; } + .delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + .delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete, .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.button, .input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .button:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .file-cta:focus, + .file-name:focus, .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .is-focused.button, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, + .is-focused.file-name, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .button:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .file-cta:active, + .file-name:active, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .is-active.button, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active, .is-active.file-cta, + .is-active.file-name, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis { + outline: none; } + .button[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], + .file-name[disabled], .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], + fieldset[disabled] .button, + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select, + fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, + fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #7a7a7a !important; } + +.has-background-grey { + background-color: #7a7a7a !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #2e63b8; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], + fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], + fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], + fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], + fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], + fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], + fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], + fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], + fieldset[disabled] .button.is-dark, + fieldset[disabled] .content kbd.button, + .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], + fieldset[disabled] .button.is-dark.is-inverted, + fieldset[disabled] .content kbd.button.is-inverted, + .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-outlined, + fieldset[disabled] .content kbd.button.is-outlined, + .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] .content kbd.button.is-inverted.is-outlined, + .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary, + fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted, + fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], + fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], + fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], + fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], + fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], + fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], + fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], + fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], + fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], + fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], + fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], + fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } + +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .docstring > section > a.docs-sourcelink, .tags .content kbd, .content .tags kbd { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .docstring > section > a.docs-sourcelink, .tags.is-centered .content kbd, .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .docstring > section > a.docs-sourcelink, .tags.has-addons .content kbd, .content .tags.has-addons kbd { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete, .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag:not(body).is-white, .docstring > section > a.docs-sourcelink:not(body).is-white, .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + .tag:not(body).is-black, .docstring > section > a.docs-sourcelink:not(body).is-black, .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + .tag:not(body).is-light, .docstring > section > a.docs-sourcelink:not(body).is-light, .content kbd:not(body).is-light { + background-color: whitesmoke; + color: #363636; } + .tag:not(body).is-dark, .docstring > section > a.docs-sourcelink:not(body).is-dark, .content kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag:not(body).is-primary, .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body).is-primary { + background-color: #4eb5de; + color: #fff; } + .tag:not(body).is-link, .docstring > section > a.docs-sourcelink:not(body).is-link, .content kbd:not(body).is-link { + background-color: #2e63b8; + color: #fff; } + .tag:not(body).is-info, .docstring > section > a.docs-sourcelink:not(body).is-info, .content kbd:not(body).is-info { + background-color: #209cee; + color: #fff; } + .tag:not(body).is-success, .docstring > section > a.docs-sourcelink:not(body).is-success, .content kbd:not(body).is-success { + background-color: #22c35b; + color: #fff; } + .tag:not(body).is-warning, .docstring > section > a.docs-sourcelink:not(body).is-warning, .content kbd:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag:not(body).is-danger, .docstring > section > a.docs-sourcelink:not(body).is-danger, .content kbd:not(body).is-danger { + background-color: #da0b00; + color: #fff; } + .tag:not(body).is-normal, .docstring > section > a.docs-sourcelink:not(body).is-normal, .content kbd:not(body).is-normal { + font-size: 0.75rem; } + .tag:not(body).is-medium, .docstring > section > a.docs-sourcelink:not(body).is-medium, .content kbd:not(body).is-medium { + font-size: 1rem; } + .tag:not(body).is-large, .docstring > section > a.docs-sourcelink:not(body).is-large, .content kbd:not(body).is-large { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag:not(body).is-delete, .docstring > section > a.docs-sourcelink:not(body).is-delete, .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before, .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + .tag:not(body).is-delete:hover, .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, .content kbd:not(body).is-delete:hover, .tag:not(body).is-delete:focus, .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, .content kbd:not(body).is-delete:focus { + background-color: #e8e8e8; } + .tag:not(body).is-delete:active, .docstring > section > a.docs-sourcelink:not(body).is-delete:active, .content kbd:not(body).is-delete:active { + background-color: #dbdbdb; } + .tag:not(body).is-rounded, .docstring > section > a.docs-sourcelink:not(body).is-rounded, .content kbd:not(body).is-rounded, #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .docstring > section > a.docs-sourcelink, .title .content kbd, .content .title kbd, + .subtitle .tag, + .subtitle .docstring > section > a.docs-sourcelink, + .subtitle .content kbd, + .content .subtitle kbd { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .textarea:hover, .select select:hover, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; } + .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; } + .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, + fieldset[disabled] .input::-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder, + fieldset[disabled] .textarea::-moz-placeholder, + fieldset[disabled] .select select::-moz-placeholder, + .select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] .input::-webkit-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] .textarea::-webkit-input-placeholder, + fieldset[disabled] .select select::-webkit-input-placeholder, + .select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, + fieldset[disabled] .input:-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder, + fieldset[disabled] .textarea:-moz-placeholder, + fieldset[disabled] .select select:-moz-placeholder, + .select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] .input:-ms-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] .textarea:-ms-input-placeholder, + fieldset[disabled] .select select:-ms-input-placeholder, + .select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly], .textarea[readonly] { + box-shadow: none; } + .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white, .is-white.textarea { + border-color: white; } + .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.textarea:focus, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, .is-white.is-focused.textarea, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.textarea:active, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-active, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black, .is-black.textarea { + border-color: #0a0a0a; } + .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.textarea:focus, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, .is-black.is-focused.textarea, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.textarea:active, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-active, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light, .is-light.textarea { + border-color: whitesmoke; } + .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.textarea:focus, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, .is-light.is-focused.textarea, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.textarea:active, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-active, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.input, .content kbd.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .is-dark.textarea, .content kbd.textarea { + border-color: #363636; } + .is-dark.input:focus, .content kbd.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.is-focused.input, .content kbd.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.input:active, .content kbd.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.is-active.input, .content kbd.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, .is-dark.is-active.textarea, .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.input, .docstring > section > a.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary, .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.input:focus, .docstring > section > a.input.docs-sourcelink:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.is-focused.input, .docstring > section > a.is-focused.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.input:active, .docstring > section > a.input.docs-sourcelink:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.is-active.input, .docstring > section > a.is-active.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link, .is-link.textarea { + border-color: #2e63b8; } + .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.textarea:focus, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, .is-link.is-focused.textarea, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.textarea:active, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-active, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info, .is-info.textarea { + border-color: #209cee; } + .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.textarea:focus, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, .is-info.is-focused.textarea, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.textarea:active, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-active, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success, .is-success.textarea { + border-color: #22c35b; } + .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.textarea:focus, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, .is-success.is-focused.textarea, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.textarea:active, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-active, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning, .is-warning.textarea { + border-color: #ffdd57; } + .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, .is-warning.is-focused.textarea, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.textarea:active, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger, .is-danger.textarea { + border-color: #da0b00; } + .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, .is-danger.is-focused.textarea, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.textarea:active, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.input, #documenter .docs-sidebar form.docs-search > input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium, .is-medium.textarea { + font-size: 1.25rem; } + .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large, .is-large.textarea { + font-size: 1.5rem; } + .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth, .is-fullwidth.textarea { + display: block; + width: 100%; } + .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline, .is-inline.textarea { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .checkbox input, .radio input { + cursor: pointer; } + .checkbox:hover, .radio:hover { + color: #363636; } + .checkbox[disabled], .radio[disabled], + fieldset[disabled] .checkbox, + fieldset[disabled] .radio { + color: #7a7a7a; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, + fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #7a7a7a; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]).is-hovered, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input:not([disabled]).is-focused, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input:not([disabled]).is-active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select:not([disabled]).is-focused, + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input:not([disabled]).is-focused:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input:not([disabled]).is-active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select:not([disabled]).is-focused:hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, + .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon, + .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } + +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537e; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1em 1.25em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #2e63b8; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.33333%; } + .column.is-offset-1-mobile { + margin-left: 8.33333%; } + .column.is-2-mobile { + flex: none; + width: 16.66667%; } + .column.is-offset-2-mobile { + margin-left: 16.66667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.33333%; } + .column.is-offset-4-mobile { + margin-left: 33.33333%; } + .column.is-5-mobile { + flex: none; + width: 41.66667%; } + .column.is-offset-5-mobile { + margin-left: 41.66667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.33333%; } + .column.is-offset-7-mobile { + margin-left: 58.33333%; } + .column.is-8-mobile { + flex: none; + width: 66.66667%; } + .column.is-offset-8-mobile { + margin-left: 66.66667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.33333%; } + .column.is-offset-10-mobile { + margin-left: 83.33333%; } + .column.is-11-mobile { + flex: none; + width: 91.66667%; } + .column.is-offset-11-mobile { + margin-left: 91.66667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.33333%; } + .column.is-offset-1-touch { + margin-left: 8.33333%; } + .column.is-2-touch { + flex: none; + width: 16.66667%; } + .column.is-offset-2-touch { + margin-left: 16.66667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.33333%; } + .column.is-offset-4-touch { + margin-left: 33.33333%; } + .column.is-5-touch { + flex: none; + width: 41.66667%; } + .column.is-offset-5-touch { + margin-left: 41.66667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.33333%; } + .column.is-offset-7-touch { + margin-left: 58.33333%; } + .column.is-8-touch { + flex: none; + width: 66.66667%; } + .column.is-offset-8-touch { + margin-left: 66.66667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.33333%; } + .column.is-offset-10-touch { + margin-left: 83.33333%; } + .column.is-11-touch { + flex: none; + width: 91.66667%; } + .column.is-offset-11-touch { + margin-left: 91.66667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.33333%; } + .column.is-offset-1-desktop { + margin-left: 8.33333%; } + .column.is-2-desktop { + flex: none; + width: 16.66667%; } + .column.is-offset-2-desktop { + margin-left: 16.66667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.33333%; } + .column.is-offset-4-desktop { + margin-left: 33.33333%; } + .column.is-5-desktop { + flex: none; + width: 41.66667%; } + .column.is-offset-5-desktop { + margin-left: 41.66667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.33333%; } + .column.is-offset-7-desktop { + margin-left: 58.33333%; } + .column.is-8-desktop { + flex: none; + width: 66.66667%; } + .column.is-offset-8-desktop { + margin-left: 66.66667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.33333%; } + .column.is-offset-10-desktop { + margin-left: 83.33333%; } + .column.is-11-desktop { + flex: none; + width: 91.66667%; } + .column.is-offset-11-desktop { + margin-left: 91.66667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.33333%; } + .tile.is-2 { + flex: none; + width: 16.66667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.33333%; } + .tile.is-5 { + flex: none; + width: 41.66667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.33333%; } + .tile.is-8 { + flex: none; + width: 66.66667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.33333%; } + .tile.is-11 { + flex: none; + width: 91.66667%; } + .tile.is-12 { + flex: none; + width: 100%; } } + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .content kbd.hero .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover, .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } + +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #b8dffa; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #9beeb8; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ff857e; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: #fff; } + .admonition.is-compat { + background-color: #99e6f0; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 1em 1.25em; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; + padding: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +/* This file contain the overall layout. + * + * The main container is
                                that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; } + +/* Base color: saturation 0; */ +.hljs, +.hljs-subst { + color: #444; } + +.hljs-comment { + color: #888888; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR4/assets/themeswap.js b/previews/PR4/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR4/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR4/couplerstate/index.html b/previews/PR4/couplerstate/index.html new file mode 100644 index 000000000..3f2b24934 --- /dev/null +++ b/previews/PR4/couplerstate/index.html @@ -0,0 +1,9 @@ + +Coupler Object · CouplerMachine

                                Coupler Object

                                The CouplerMachine defines a type CplState for a container variable that holds information about the field values that are being used to couple between components. Components can use a put! operation to export a set of field values to a CplState variable. A get operation is used to retrieve a set field values from a CplState variable.

                                Coupler Object API

                                CouplerMachine.CplStateType
                                CplState()

                                Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                To start with we can just use a dictionary key and value table that holds labelled pointers to various fields. A field is exported by one component and imported by one or more other components. Components can select which fields are needed by using the Dict symbols.

                                source
                                CouplerMachine.register_cpl_field!Function
                                Coupling.register_cpl_field!(
                                +        coupler::CplState,
                                +        fieldname::Symbol,
                                +        fieldvalue,
                                +        grid,
                                +        datetime::DateTime,
                                +        units::Unitful.Units = Unitful.NoUnits, 
                                +    )

                                Add a field to the coupler that is accessible with key fieldname.

                                Arguments

                                • coupler: coupler object the field is registered to.
                                • fieldname: key to access the field in the coupler.
                                • fieldvalue: data array of field values.
                                • grid: grid the field is stored on.
                                • datetime: time associated with the field state.
                                • units: units associated with the field values. Dimensionless by default.
                                source
                                CouplerMachine.put!Function
                                put!(coupler::CplState, fieldname::Symbol, fieldvalue, gridinfo, datetime::DateTime, units::Unitful.Units)

                                Updates coupler field fieldname with fieldvalue, the field's value at time datetime.

                                gridinfo and units inform the coupler of the format of the inputted data allowing conversion to match the grid and units of the coupler field.

                                source
                                CouplerMachine.getFunction
                                get(coupler::CplState, fieldname::Symbol, gridinfo, datetime::DateTime, units::Unitful.Units)

                                Retrieve data array corresponding to fieldname.

                                Returns data on the grid specified by gridinfo and in the units of units. Checks that the coupler data field is the state at time datetime.

                                source
                                diff --git a/previews/PR4/generated/simple_2testcomp/index.html b/previews/PR4/generated/simple_2testcomp/index.html new file mode 100644 index 000000000..d9979b788 --- /dev/null +++ b/previews/PR4/generated/simple_2testcomp/index.html @@ -0,0 +1,288 @@ + +Simple Two Component Test · CouplerMachine

                                Import packages

                                using ClimateMachine
                                +using MPI
                                +using Statistics
                                +
                                +# To couple
                                +using CouplerMachine
                                +using Unitful, Dates
                                +
                                +# To create meshes & grids
                                +using ClimateMachine.Ocean.Domains
                                +using ClimateMachine.Grids
                                +import ClimateMachine.DGMethods.NumericalFluxes: NumericalFluxSecondOrder
                                +
                                +# To setup some callbacks
                                +using ClimateMachine.GenericCallbacks
                                +
                                +# To invoke timestepper
                                +using ClimateMachine.ODESolvers
                                +using ClimateMachine.ODESolvers: solve!
                                +using ClimateMachine.MPIStateArrays: weightedsum
                                +
                                +ClimateMachine.init()
                                +const FT = Float64;
                                +
                                +if !(:CplTestingBL in names(Main))
                                +    include("CplTestingBL.jl") # allows re-run of script without restarting julia
                                +end
                                +using .CplTestingBL

                                Set simulation parameters

                                couple_dt = 3600.0 # timestep at which coupled components sync
                                +nstepsA = 10 # atmos steps per coupled timestep
                                +nstepsO = 5 # ocean steps per coupled timestep
                                +
                                +#  Haney like relaxation time scale and a length scale (Haney, 1971).
                                +#  Air-sea exchange vigor is governed by length/time-scale.
                                +const τ_airsea = FT(60 * 86400)
                                +const L_airsea = FT(500)
                                +const λ_airsea = FT(L_airsea / τ_airsea)
                                +function coupling_lambda()
                                +    return (λ_airsea)
                                +end;
                                +
                                +#  Background atmos and ocean diffusivities
                                +const κᵃʰ = FT(1e4) * 0.0
                                +const κᵃᶻ = FT(1e-1)
                                +const κᵒʰ = FT(1e3) * 0.0
                                +const κᵒᶻ = FT(1e-4)
                                0.0001

                                Set up coupled model

                                function main(::Type{FT}) where {FT}
                                +    # Domain
                                +    Np = 4
                                +    ΩA = RectangularDomain(
                                +        Ne = (10, 10, 5),
                                +        Np = Np,
                                +        x = (0, 1e6),
                                +        y = (0, 1e6),
                                +        z = (0, 1e5),
                                +        periodicity = (true, true, false),
                                +    )
                                +    ΩO = RectangularDomain(
                                +        Ne = (10, 10, 4),
                                +        Np = Np,
                                +        x = (0, 1e6),
                                +        y = (0, 1e6),
                                +        z = (-4e3, 0),
                                +        periodicity = (true, true, false),
                                +    )
                                +
                                +    # Grid
                                +    btags = ((0,0),(0,0),(1,2))
                                +    gridA = DiscontinuousSpectralElementGrid(ΩA; boundary_tags = btags)
                                +    gridO = DiscontinuousSpectralElementGrid(ΩO; boundary_tags = btags)
                                +
                                +    # Numerics-specific options
                                +    numerics = (NFsecondorder = CplTestingBL.PenaltyNumFluxDiffusive(),)
                                +
                                +    # Callbacks (TODO)
                                +    callbacks = ()
                                +
                                +    # Collect spatial info, timestepping, balance law and DGmodel for the two components
                                +
                                +    # 1. Atmos component
                                +    mA = CplModel(;
                                +        grid = gridA,
                                +        equations = CplTestBL(
                                +            bl_propA,
                                +            (CoupledPrimaryBoundary(), ExteriorBoundary()),
                                +        ),
                                +        nsteps = nstepsA,
                                +        dt = couple_dt / nstepsA,
                                +        numerics...,
                                +    )
                                +
                                +    # 2. Ocean component
                                +    mO = CplModel(;
                                +        grid = gridO,
                                +        equations = CplTestBL(
                                +            bl_propO,
                                +            (ExteriorBoundary(), CoupledSecondaryBoundary()),
                                +        ),
                                +        nsteps = nstepsO,
                                +        dt = couple_dt / nstepsO,
                                +        numerics...,
                                +    )
                                +
                                +    # Create a Coupler State object for holding imort/export fields.
                                +    coupler = CplState()
                                +    register_cpl_field!(coupler, :Ocean_SST, deepcopy(mO.state.θ[mO.boundary]), mO.grid, DateTime(0), u"°C")
                                +    register_cpl_field!(coupler, :Atmos_MeanAirSeaθFlux, deepcopy(mA.state.F_accum[mA.boundary]), mA.grid, DateTime(0), u"°C")
                                +
                                +    # Instantiate a coupled timestepper that steps forward the components and
                                +    # implements mapings between components export bondary states and
                                +    # other components imports.
                                +
                                +    compA = (pre_step = preatmos, component_model = mA, post_step = postatmos)
                                +    compO = (pre_step = preocean, component_model = mO, post_step = postocean)
                                +    component_list = (atmosphere = compA, ocean = compO)
                                +    cpl_solver = CplSolver(
                                +        component_list = component_list,
                                +        coupler = coupler,
                                +        coupling_dt = couple_dt,
                                +        t0 = 0.0,
                                +    )
                                +
                                +    return cpl_solver, callbacks
                                +end
                                +
                                +function run(cpl_solver, numberofsteps, cbvector)
                                +    solve!(
                                +        nothing,
                                +        cpl_solver;
                                +        numberofsteps = numberofsteps,
                                +        callbacks = cbvector,
                                +    )
                                +end
                                run (generic function with 1 method)

                                Define pre_step and post_step functions

                                function get_components(csolver)
                                +    mA = csolver.component_list.atmosphere.component_model
                                +    mO = csolver.component_list.ocean.component_model
                                +    return mA, mO
                                +end
                                +
                                +function preatmos(csolver)
                                +    mA, mO = get_components(csolver)
                                +
                                +    # Set boundary SST used in atmos to SST of ocean surface at start of coupling cycle.
                                +    mA.discretization.state_auxiliary.θ_secondary[mA.boundary] .=
                                +        CouplerMachine.get(csolver.coupler, :Ocean_SST, mA.grid, DateTime(0), u"°C")
                                +    # Set atmos boundary flux accumulator to 0.
                                +    mA.state.F_accum .= 0
                                +
                                +    @info(
                                +        "preatmos",
                                +        time = csolver.t,
                                +        total_θ_atmos = weightedsum(mA.state, 1),
                                +        total_θ_ocean = weightedsum(mO.state, 1),
                                +        total_θ = weightedsum(mA.state, 1) + weightedsum(mO.state, 1),
                                +        atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),
                                +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
                                +    )
                                +end
                                +
                                +function postatmos(csolver)
                                +    mA, mO = get_components(csolver)
                                +
                                +    # Pass atmos exports to "coupler" namespace
                                +    # 1. Save mean θ flux at the Atmos boundary during the coupling period
                                +    CouplerMachine.put!(csolver.coupler, :Atmos_MeanAirSeaθFlux, mA.state.F_accum[mA.boundary] ./ csolver.dt,
                                +        mA.grid, DateTime(0), u"°C")
                                +
                                +    @info(
                                +        "postatmos",
                                +        time = time = csolver.t + csolver.dt,
                                +        total_θ_atmos = weightedsum(mA.state, 1),
                                +        total_θ_ocean = weightedsum(mO.state, 1),
                                +        total_F_accum = mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,
                                +        total_θ =
                                +            weightedsum(mA.state, 1) +
                                +            weightedsum(mO.state, 1) +
                                +            mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,
                                +        F_accum_max = maximum(mA.state.F_accum[mA.boundary]),
                                +        F_avg_max = maximum(mA.state.F_accum[mA.boundary] ./ csolver.dt),
                                +        atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),
                                +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
                                +    )
                                +end
                                +
                                +function preocean(csolver)
                                +    mA, mO = get_components(csolver)
                                +
                                +    # Set mean air-sea theta flux
                                +    mO.discretization.state_auxiliary.F_prescribed[mO.boundary] .=
                                +        CouplerMachine.get(csolver.coupler, :Atmos_MeanAirSeaθFlux, mO.grid, DateTime(0), u"°C")
                                +    # Set ocean boundary flux accumulator to 0. (this isn't used)
                                +    mO.state.F_accum .= 0
                                +
                                +    @info(
                                +        "preocean",
                                +        time = csolver.t,
                                +        F_prescribed_max =
                                +            maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),
                                +        F_prescribed_min =
                                +            maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),
                                +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
                                +        ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),
                                +    )
                                +end
                                +
                                +function postocean(csolver)
                                +    mA, mO = get_components(csolver)
                                +    @info(
                                +        "postocean",
                                +        time = csolver.t + csolver.dt,
                                +        ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),
                                +        ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),
                                +    )
                                +
                                +    # Pass ocean exports to "coupler" namespace
                                +    #  1. Ocean SST (value of θ at z=0)
                                +    CouplerMachine.put!(csolver.coupler, :Ocean_SST, mO.state.θ[mO.boundary], mO.grid, DateTime(0), u"°C")
                                +end
                                postocean (generic function with 1 method)

                                Specify balance law

                                # Set atmosphere initial state function
                                +function atmos_init_theta(xc, yc, zc, npt, el)
                                +    return 30.0
                                +end
                                +# Set atmosphere shadow boundary flux function
                                +function atmos_theta_shadow_boundary_flux(θᵃ, θᵒ, npt, el, xc, yc, zc)
                                +    if zc == 0.0
                                +        tflux = (1.0 / τ_airsea) * (θᵃ - θᵒ)
                                +    else
                                +        tflux = 0.0
                                +    end
                                +    return tflux
                                +end
                                +# Set atmsophere diffusion coeffs
                                +function atmos_calc_kappa_diff(_...)
                                +    return κᵃʰ, κᵃʰ, κᵃᶻ
                                +end
                                +# Set atmos source!
                                +function atmos_source_theta(θᵃ, npt, el, xc, yc, zc, θᵒ)
                                +    tsource = 0.0
                                +    if zc == 0.0
                                +        # tsource = -(1. / τ_airsea)*( θᵃ-θᵒ )
                                +    end
                                +    return tsource
                                +end
                                +# Set penalty term tau (for debugging)
                                +function atmos_get_penalty_tau(_...)
                                +    return FT(3.0 * 0.0)
                                +end
                                +# Create atmos component
                                +bl_propA = CplTestingBL.prop_defaults()
                                +
                                +bl_propA = (;bl_propA..., init_theta = atmos_init_theta,
                                +            theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)
                                +bl_propA = (bl_propA..., init_theta = atmos_init_theta)
                                +bl_propA =
                                +    (bl_propA..., theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)
                                +bl_propA = (bl_propA..., calc_kappa_diff = atmos_calc_kappa_diff)
                                +bl_propA = (bl_propA..., source_theta = atmos_source_theta)
                                +bl_propA = (bl_propA..., get_penalty_tau = atmos_get_penalty_tau)
                                +bl_propA = (bl_propA..., coupling_lambda = coupling_lambda)
                                +
                                +# Set initial temperature profile
                                +function ocean_init_theta(xc, yc, zc, npt, el)
                                +    return 20.0
                                +end
                                +# Set boundary source imported from atmos
                                +function ocean_source_theta(θ, npt, el, xc, yc, zc, air_sea_flux_import)
                                +    sval = 0.0
                                +    if zc == 0.0
                                +        # sval=air_sea_flux_import
                                +    end
                                +    return sval
                                +end
                                +# Set ocean diffusion coeffs
                                +function ocean_calc_kappa_diff(_...)
                                +    # return κᵒʰ,κᵒʰ,κᵒᶻ*FT(100.)
                                +    return κᵒʰ, κᵒʰ, κᵒᶻ # m^2 s^-1
                                +end
                                +# Set penalty term tau (for debugging)
                                +function ocean_get_penalty_tau(_...)
                                +    return FT(0.15 * 0.0)
                                +end
                                +# Create ocean component
                                +bl_propO = CplTestingBL.prop_defaults()
                                +bl_propO = (bl_propO..., init_theta = ocean_init_theta)
                                +bl_propO = (bl_propO..., source_theta = ocean_source_theta)
                                +bl_propO = (bl_propO..., calc_kappa_diff = ocean_calc_kappa_diff)
                                +bl_propO = (bl_propO..., get_penalty_tau = ocean_get_penalty_tau)
                                +bl_propO = (bl_propO..., coupling_lambda = coupling_lambda)

                                Run simulation

                                simulation, cbvector = main(Float64);
                                +nsteps = 10
                                +println("Initialized. Running...")
                                +@time run(simulation, nsteps, cbvector)

                                This page was generated using Literate.jl.

                                diff --git a/previews/PR4/index.html b/previews/PR4/index.html new file mode 100644 index 000000000..f697a2e4e --- /dev/null +++ b/previews/PR4/index.html @@ -0,0 +1,2 @@ + +Home · CouplerMachine

                                CouplerMachine.jl

                                Coupling CliMA Models

                                CouplerMachine.jl provides a means to couple climate model components from and within ClimateMachine.jl and Oceananigans.jl. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                The CouplerMachine supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                diff --git a/previews/PR4/search/index.html b/previews/PR4/search/index.html new file mode 100644 index 000000000..a33fc2d34 --- /dev/null +++ b/previews/PR4/search/index.html @@ -0,0 +1,2 @@ + +Search · CouplerMachine

                                Loading search...

                                  diff --git a/previews/PR4/search_index.js b/previews/PR4/search_index.js new file mode 100644 index 000000000..d345463d4 --- /dev/null +++ b/previews/PR4/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"EditURL = \"https://github.com/CliMA/CouplerMachine/blob/master/experiments/DesignTests/simple_2testcomp.jl\"","category":"page"},{"location":"generated/simple_2testcomp/#Import-packages","page":"Simple Two Component Test","title":"Import packages","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"using ClimateMachine\nusing MPI\nusing Statistics\n\n# To couple\nusing CouplerMachine\nusing Unitful, Dates\n\n# To create meshes & grids\nusing ClimateMachine.Ocean.Domains\nusing ClimateMachine.Grids\nimport ClimateMachine.DGMethods.NumericalFluxes: NumericalFluxSecondOrder\n\n# To setup some callbacks\nusing ClimateMachine.GenericCallbacks\n\n# To invoke timestepper\nusing ClimateMachine.ODESolvers\nusing ClimateMachine.ODESolvers: solve!\nusing ClimateMachine.MPIStateArrays: weightedsum\n\nClimateMachine.init()\nconst FT = Float64;\n\nif !(:CplTestingBL in names(Main))\n include(\"CplTestingBL.jl\") # allows re-run of script without restarting julia\nend\nusing .CplTestingBL","category":"page"},{"location":"generated/simple_2testcomp/#Set-simulation-parameters","page":"Simple Two Component Test","title":"Set simulation parameters","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"couple_dt = 3600.0 # timestep at which coupled components sync\nnstepsA = 10 # atmos steps per coupled timestep\nnstepsO = 5 # ocean steps per coupled timestep\n\n# Haney like relaxation time scale and a length scale (Haney, 1971).\n# Air-sea exchange vigor is governed by length/time-scale.\nconst τ_airsea = FT(60 * 86400)\nconst L_airsea = FT(500)\nconst λ_airsea = FT(L_airsea / τ_airsea)\nfunction coupling_lambda()\n return (λ_airsea)\nend;\n\n# Background atmos and ocean diffusivities\nconst κᵃʰ = FT(1e4) * 0.0\nconst κᵃᶻ = FT(1e-1)\nconst κᵒʰ = FT(1e3) * 0.0\nconst κᵒᶻ = FT(1e-4)","category":"page"},{"location":"generated/simple_2testcomp/#Set-up-coupled-model","page":"Simple Two Component Test","title":"Set up coupled model","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"function main(::Type{FT}) where {FT}\n # Domain\n Np = 4\n ΩA = RectangularDomain(\n Ne = (10, 10, 5),\n Np = Np,\n x = (0, 1e6),\n y = (0, 1e6),\n z = (0, 1e5),\n periodicity = (true, true, false),\n )\n ΩO = RectangularDomain(\n Ne = (10, 10, 4),\n Np = Np,\n x = (0, 1e6),\n y = (0, 1e6),\n z = (-4e3, 0),\n periodicity = (true, true, false),\n )\n\n # Grid\n btags = ((0,0),(0,0),(1,2))\n gridA = DiscontinuousSpectralElementGrid(ΩA; boundary_tags = btags)\n gridO = DiscontinuousSpectralElementGrid(ΩO; boundary_tags = btags)\n\n # Numerics-specific options\n numerics = (NFsecondorder = CplTestingBL.PenaltyNumFluxDiffusive(),)\n\n # Callbacks (TODO)\n callbacks = ()\n\n # Collect spatial info, timestepping, balance law and DGmodel for the two components\n\n # 1. Atmos component\n mA = CplModel(;\n grid = gridA,\n equations = CplTestBL(\n bl_propA,\n (CoupledPrimaryBoundary(), ExteriorBoundary()),\n ),\n nsteps = nstepsA,\n dt = couple_dt / nstepsA,\n numerics...,\n )\n\n # 2. Ocean component\n mO = CplModel(;\n grid = gridO,\n equations = CplTestBL(\n bl_propO,\n (ExteriorBoundary(), CoupledSecondaryBoundary()),\n ),\n nsteps = nstepsO,\n dt = couple_dt / nstepsO,\n numerics...,\n )\n\n # Create a Coupler State object for holding imort/export fields.\n coupler = CplState()\n register_cpl_field!(coupler, :Ocean_SST, deepcopy(mO.state.θ[mO.boundary]), mO.grid, DateTime(0), u\"°C\")\n register_cpl_field!(coupler, :Atmos_MeanAirSeaθFlux, deepcopy(mA.state.F_accum[mA.boundary]), mA.grid, DateTime(0), u\"°C\")\n\n # Instantiate a coupled timestepper that steps forward the components and\n # implements mapings between components export bondary states and\n # other components imports.\n\n compA = (pre_step = preatmos, component_model = mA, post_step = postatmos)\n compO = (pre_step = preocean, component_model = mO, post_step = postocean)\n component_list = (atmosphere = compA, ocean = compO)\n cpl_solver = CplSolver(\n component_list = component_list,\n coupler = coupler,\n coupling_dt = couple_dt,\n t0 = 0.0,\n )\n\n return cpl_solver, callbacks\nend\n\nfunction run(cpl_solver, numberofsteps, cbvector)\n solve!(\n nothing,\n cpl_solver;\n numberofsteps = numberofsteps,\n callbacks = cbvector,\n )\nend","category":"page"},{"location":"generated/simple_2testcomp/#Define-pre_step-and-post_step-functions","page":"Simple Two Component Test","title":"Define pre_step and post_step functions","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"function get_components(csolver)\n mA = csolver.component_list.atmosphere.component_model\n mO = csolver.component_list.ocean.component_model\n return mA, mO\nend\n\nfunction preatmos(csolver)\n mA, mO = get_components(csolver)\n\n # Set boundary SST used in atmos to SST of ocean surface at start of coupling cycle.\n mA.discretization.state_auxiliary.θ_secondary[mA.boundary] .=\n CouplerMachine.get(csolver.coupler, :Ocean_SST, mA.grid, DateTime(0), u\"°C\")\n # Set atmos boundary flux accumulator to 0.\n mA.state.F_accum .= 0\n\n @info(\n \"preatmos\",\n time = csolver.t,\n total_θ_atmos = weightedsum(mA.state, 1),\n total_θ_ocean = weightedsum(mO.state, 1),\n total_θ = weightedsum(mA.state, 1) + weightedsum(mO.state, 1),\n atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n )\nend\n\nfunction postatmos(csolver)\n mA, mO = get_components(csolver)\n\n # Pass atmos exports to \"coupler\" namespace\n # 1. Save mean θ flux at the Atmos boundary during the coupling period\n CouplerMachine.put!(csolver.coupler, :Atmos_MeanAirSeaθFlux, mA.state.F_accum[mA.boundary] ./ csolver.dt,\n mA.grid, DateTime(0), u\"°C\")\n\n @info(\n \"postatmos\",\n time = time = csolver.t + csolver.dt,\n total_θ_atmos = weightedsum(mA.state, 1),\n total_θ_ocean = weightedsum(mO.state, 1),\n total_F_accum = mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,\n total_θ =\n weightedsum(mA.state, 1) +\n weightedsum(mO.state, 1) +\n mean(mA.state.F_accum[mA.boundary]) * 1e6 * 1e6,\n F_accum_max = maximum(mA.state.F_accum[mA.boundary]),\n F_avg_max = maximum(mA.state.F_accum[mA.boundary] ./ csolver.dt),\n atmos_θ_surface_max = maximum(mA.state.θ[mA.boundary]),\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n )\nend\n\nfunction preocean(csolver)\n mA, mO = get_components(csolver)\n\n # Set mean air-sea theta flux\n mO.discretization.state_auxiliary.F_prescribed[mO.boundary] .=\n CouplerMachine.get(csolver.coupler, :Atmos_MeanAirSeaθFlux, mO.grid, DateTime(0), u\"°C\")\n # Set ocean boundary flux accumulator to 0. (this isn't used)\n mO.state.F_accum .= 0\n\n @info(\n \"preocean\",\n time = csolver.t,\n F_prescribed_max =\n maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),\n F_prescribed_min =\n maximum(mO.discretization.state_auxiliary.F_prescribed[mO.boundary]),\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),\n )\nend\n\nfunction postocean(csolver)\n mA, mO = get_components(csolver)\n @info(\n \"postocean\",\n time = csolver.t + csolver.dt,\n ocean_θ_surface_max = maximum(mO.state.θ[mO.boundary]),\n ocean_θ_surface_min = maximum(mO.state.θ[mO.boundary]),\n )\n\n # Pass ocean exports to \"coupler\" namespace\n # 1. Ocean SST (value of θ at z=0)\n CouplerMachine.put!(csolver.coupler, :Ocean_SST, mO.state.θ[mO.boundary], mO.grid, DateTime(0), u\"°C\")\nend","category":"page"},{"location":"generated/simple_2testcomp/#Specify-balance-law","page":"Simple Two Component Test","title":"Specify balance law","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"# Set atmosphere initial state function\nfunction atmos_init_theta(xc, yc, zc, npt, el)\n return 30.0\nend\n# Set atmosphere shadow boundary flux function\nfunction atmos_theta_shadow_boundary_flux(θᵃ, θᵒ, npt, el, xc, yc, zc)\n if zc == 0.0\n tflux = (1.0 / τ_airsea) * (θᵃ - θᵒ)\n else\n tflux = 0.0\n end\n return tflux\nend\n# Set atmsophere diffusion coeffs\nfunction atmos_calc_kappa_diff(_...)\n return κᵃʰ, κᵃʰ, κᵃᶻ\nend\n# Set atmos source!\nfunction atmos_source_theta(θᵃ, npt, el, xc, yc, zc, θᵒ)\n tsource = 0.0\n if zc == 0.0\n # tsource = -(1. / τ_airsea)*( θᵃ-θᵒ )\n end\n return tsource\nend\n# Set penalty term tau (for debugging)\nfunction atmos_get_penalty_tau(_...)\n return FT(3.0 * 0.0)\nend\n# Create atmos component\nbl_propA = CplTestingBL.prop_defaults()\n\nbl_propA = (;bl_propA..., init_theta = atmos_init_theta,\n theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)\nbl_propA = (bl_propA..., init_theta = atmos_init_theta)\nbl_propA =\n (bl_propA..., theta_shadow_boundary_flux = atmos_theta_shadow_boundary_flux)\nbl_propA = (bl_propA..., calc_kappa_diff = atmos_calc_kappa_diff)\nbl_propA = (bl_propA..., source_theta = atmos_source_theta)\nbl_propA = (bl_propA..., get_penalty_tau = atmos_get_penalty_tau)\nbl_propA = (bl_propA..., coupling_lambda = coupling_lambda)\n\n# Set initial temperature profile\nfunction ocean_init_theta(xc, yc, zc, npt, el)\n return 20.0\nend\n# Set boundary source imported from atmos\nfunction ocean_source_theta(θ, npt, el, xc, yc, zc, air_sea_flux_import)\n sval = 0.0\n if zc == 0.0\n # sval=air_sea_flux_import\n end\n return sval\nend\n# Set ocean diffusion coeffs\nfunction ocean_calc_kappa_diff(_...)\n # return κᵒʰ,κᵒʰ,κᵒᶻ*FT(100.)\n return κᵒʰ, κᵒʰ, κᵒᶻ # m^2 s^-1\nend\n# Set penalty term tau (for debugging)\nfunction ocean_get_penalty_tau(_...)\n return FT(0.15 * 0.0)\nend\n# Create ocean component\nbl_propO = CplTestingBL.prop_defaults()\nbl_propO = (bl_propO..., init_theta = ocean_init_theta)\nbl_propO = (bl_propO..., source_theta = ocean_source_theta)\nbl_propO = (bl_propO..., calc_kappa_diff = ocean_calc_kappa_diff)\nbl_propO = (bl_propO..., get_penalty_tau = ocean_get_penalty_tau)\nbl_propO = (bl_propO..., coupling_lambda = coupling_lambda)","category":"page"},{"location":"generated/simple_2testcomp/#Run-simulation","page":"Simple Two Component Test","title":"Run simulation","text":"","category":"section"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"simulation, cbvector = main(Float64);\nnsteps = 10\nprintln(\"Initialized. Running...\")\n@time run(simulation, nsteps, cbvector)","category":"page"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"","category":"page"},{"location":"generated/simple_2testcomp/","page":"Simple Two Component Test","title":"Simple Two Component Test","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-Object","page":"Coupler Object","title":"Coupler Object","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler Object","title":"Coupler Object","text":"The CouplerMachine defines a type CplState for a container variable that holds information about the field values that are being used to couple between components. Components can use a put! operation to export a set of field values to a CplState variable. A get operation is used to retrieve a set field values from a CplState variable.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler Object","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler Object","title":"Coupler Object","text":" CouplerMachine.CplState\n CouplerMachine.register_cpl_field!\n CouplerMachine.put!\n CouplerMachine.get","category":"page"},{"location":"couplerstate/#CouplerMachine.CplState","page":"Coupler Object","title":"CouplerMachine.CplState","text":"CplState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nTo start with we can just use a dictionary key and value table that holds labelled pointers to various fields. A field is exported by one component and imported by one or more other components. Components can select which fields are needed by using the Dict symbols.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#CouplerMachine.register_cpl_field!","page":"Coupler Object","title":"CouplerMachine.register_cpl_field!","text":"Coupling.register_cpl_field!(\n coupler::CplState,\n fieldname::Symbol,\n fieldvalue,\n grid,\n datetime::DateTime,\n units::Unitful.Units = Unitful.NoUnits, \n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is registered to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\ngrid: grid the field is stored on.\ndatetime: time associated with the field state.\nunits: units associated with the field values. Dimensionless by default.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#CouplerMachine.put!","page":"Coupler Object","title":"CouplerMachine.put!","text":"put!(coupler::CplState, fieldname::Symbol, fieldvalue, gridinfo, datetime::DateTime, units::Unitful.Units)\n\nUpdates coupler field fieldname with fieldvalue, the field's value at time datetime.\n\ngridinfo and units inform the coupler of the format of the inputted data allowing conversion to match the grid and units of the coupler field.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#CouplerMachine.get","page":"Coupler Object","title":"CouplerMachine.get","text":"get(coupler::CplState, fieldname::Symbol, gridinfo, datetime::DateTime, units::Unitful.Units)\n\nRetrieve data array corresponding to fieldname.\n\nReturns data on the grid specified by gridinfo and in the units of units. Checks that the coupler data field is the state at time datetime.\n\n\n\n\n\n","category":"function"},{"location":"#CouplerMachine.jl","page":"Home","title":"CouplerMachine.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"(Image: ) Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = CouplerMachine","category":"page"},{"location":"","page":"Home","title":"Home","text":"CouplerMachine.jl provides a means to couple climate model components from and within ClimateMachine.jl and Oceananigans.jl. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The CouplerMachine supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":" CouplerMachine","category":"page"},{"location":"#CouplerMachine.CouplerMachine","page":"Home","title":"CouplerMachine.CouplerMachine","text":"CouplerMachine\n\nPrimitive coupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"examples.md\",\n \"timestepping.md\",\n \"couplerstate.md\",\n]","category":"page"},{"location":"timestepping/#Coupled-Timestepping","page":"Coupled Timestepping","title":"Coupled Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Timestepping","title":"Coupled Timestepping","text":"CouplerMachine.CplSolver","category":"page"},{"location":"timestepping/#CouplerMachine.CplSolver","page":"Coupled Timestepping","title":"CouplerMachine.CplSolver","text":"CplSolver(; component_list, coupler::CplState, coupling_dt, t0)\n\nA time stepping like object for advancing a coupled system made up of a pre-defined set of named components specified in component_list. Each component is a balance law, discretization and timestepper collection. The coupler will step them forward by a nsteps substeps to advance the coupled system by a simulated time coupling_dt.\n\nComponents are registered with prestep() and poststep() functions. The prestep() functions get fields for use in the component from the coupler name space. The poststep() functions put fields for use by other components into te coupler name space. The CplSolver abstraction controls\n\nthe outer time stepping sequencing of components\nthe excution of actions mapping exports from one or more components to imports of other components through an intermediary coupler name space.\n\nSome notes -\n\nFor now components need to include slightly wasteful \"shadow\" variables for accumulating boundary flux terms they compute across RK stages and across timesteps. These are defined within the component balance law. The shadown variable is a full 3d array because of the way the current infrastructure works. This can be tidied up later once design is settled.\n\n\n\n\n\n","category":"type"}] +} diff --git a/previews/PR4/siteinfo.js b/previews/PR4/siteinfo.js new file mode 100644 index 000000000..7310be9e6 --- /dev/null +++ b/previews/PR4/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR4"; diff --git a/previews/PR4/timestepping/index.html b/previews/PR4/timestepping/index.html new file mode 100644 index 000000000..0f872b514 --- /dev/null +++ b/previews/PR4/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Timestepping · CouplerMachine

                                  Coupled Timestepping

                                  CouplerMachine.CplSolverType
                                  CplSolver(; component_list, coupler::CplState, coupling_dt, t0)

                                  A time stepping like object for advancing a coupled system made up of a pre-defined set of named components specified in component_list. Each component is a balance law, discretization and timestepper collection. The coupler will step them forward by a nsteps substeps to advance the coupled system by a simulated time coupling_dt.

                                  Components are registered with prestep() and poststep() functions. The prestep() functions get fields for use in the component from the coupler name space. The poststep() functions put fields for use by other components into te coupler name space. The CplSolver abstraction controls

                                  1. the outer time stepping sequencing of components
                                  2. the excution of actions mapping exports from one or more components to imports of other components through an intermediary coupler name space.

                                  Some notes -

                                  For now components need to include slightly wasteful "shadow" variables for accumulating boundary flux terms they compute across RK stages and across timesteps. These are defined within the component balance law. The shadown variable is a full 3d array because of the way the current infrastructure works. This can be tidied up later once design is settled.

                                  source
                                  diff --git a/previews/PR424/assets/documenter.js b/previews/PR424/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR424/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR424/assets/logo.svg b/previews/PR424/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR424/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR424/assets/search.js b/previews/PR424/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR424/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR424/assets/themes/documenter-dark.css b/previews/PR424/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR424/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR424/assets/themes/documenter-light.css b/previews/PR424/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR424/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR424/assets/themeswap.js b/previews/PR424/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR424/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR424/assets/warner.js b/previews/PR424/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR424/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                                  Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR424/bcreader/index.html b/previews/PR424/bcreader/index.html new file mode 100644 index 000000000..ad5fc2705 --- /dev/null +++ b/previews/PR424/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                                  BCReader

                                  This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                                  BCReader API

                                  ClimaCoupler.BCReader.BCFileInfoType
                                  BCFileInfo

                                  Stores information specific to each boundary condition from a file and each variable.

                                  Inputs:

                                  • bcfile_dir::b # directory of the BC file
                                  • comms_ctx::X # communication context used for MPI
                                  • hdoutfileroot::S # filename root for regridded data
                                  • varname::V # name of the variable
                                  • all_dates::D # vector of all dates contained in the original data file
                                  • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                                  • scaling_function::O # function that scales, offsets or transforms the raw variable
                                  • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                                  • segment_idx::Vector{Int} # index of the monthly data in the file
                                  • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                                  • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                                  • interpolate_daily::Bool # switch to trigger daily interpolation
                                  source
                                  ClimaCoupler.BCReader.bcfile_info_initFunction
                                  bcfile_info_init(
                                  +    FT,
                                  +    bcfile_dir,
                                  +    datafile_rll,
                                  +    varname,
                                  +    boundary_space,
                                  +    comms_ctx;
                                  +    interpolate_daily = false,
                                  +    segment_idx0 = nothing,
                                  +    scaling_function = no_scaling,
                                  +    land_fraction = nothing,
                                  +    date0 = nothing,
                                  +    mono = true,
                                  +)

                                  Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                                  Arguments

                                  • FT: [DataType] Float type.
                                  • bcfile_dir: [String] directory the BC file is stored in.
                                  • datafile_rll: [String] file containing data to regrid.
                                  • varname: [String] name of the variable to be regridded.
                                  • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                  • interpolate_daily: [Bool] switch to trigger daily interpolation.
                                  • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                                  • scaling function: [Function] scales, offsets or transforms varname.
                                  • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                                  • date0: [Dates.DateTime] start date of the file data.
                                  • mono: [Bool] flag for monotone remapping of datafile_rll.

                                  Returns

                                  • BCFileInfo
                                  source
                                  ClimaCoupler.BCReader.update_midmonth_data!Function
                                  update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                                  Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                                  Arguments

                                  • date: [Dates.DateTime] start date for data.
                                  • bcf_info: [BCFileInfo] containing boundary condition data.
                                  source
                                  ClimaCoupler.BCReader.next_date_in_fileFunction
                                  next_date_in_file(bcf_info)

                                  Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                                  Arguments

                                  • bcf_info: [BCFileInfo] containing the date information.

                                  Returns

                                  • Dates.DateTime
                                  source
                                  ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                                  interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                                  Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                                  Arguments

                                  • date: [Dates.DateTime] start date for data.
                                  • bcf_info: [BCFileInfo] contains fields to be interpolated.

                                  Returns

                                  • Fields.field
                                  source

                                  BCReader Internal Functions

                                  ClimaCoupler.BCReader.no_scalingFunction
                                  no_scaling(field, bcf_info)

                                  Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                                  Arguments

                                  • field: [Fields.Field] contains the values to be remapped.
                                  • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                                  source
                                  ClimaCoupler.BCReader.interpolFunction
                                  interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                                  Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                                  Arguments

                                  • f1: [FT] first value to be interpolated (f(t1) = f1).
                                  • f2: [FT] second value to be interpolated.
                                  • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                                  • Δt_t2t1: [FT] time between t1 and t2.

                                  Returns

                                  • FT
                                  source
                                  diff --git a/previews/PR424/checkpointer/index.html b/previews/PR424/checkpointer/index.html new file mode 100644 index 000000000..c6f88601b --- /dev/null +++ b/previews/PR424/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

                                  Checkpointer

                                  This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

                                  Checkpointer API

                                  ClimaCoupler.Checkpointer.get_model_state_vectorFunction
                                  get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

                                  Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

                                  source
                                  ClimaCoupler.Checkpointer.restart_model_state!Function
                                  restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

                                  Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

                                  source
                                  ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
                                  checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

                                  Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

                                  source
                                  diff --git a/previews/PR424/conservation/index.html b/previews/PR424/conservation/index.html new file mode 100644 index 000000000..0d5ab0bf6 --- /dev/null +++ b/previews/PR424/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                                  Conservation Checks

                                  If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                                  Only energy and water are currently implemented.

                                  Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                                  Coupler Object API

                                  ClimaCoupler.ConservationChecker.check_conservation!Function
                                  check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                                  itertes over all specified conservation checks.

                                  source
                                      check_conservation!(
                                  +    cc::EnergyConservationCheck,
                                  +    coupler_sim,
                                  +    get_slab_energy,
                                  +    get_land_energy,
                                  +    )

                                  computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                                  TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                                  source
                                  check_conservation!(
                                  +cc::WaterConservationCheck,
                                  +coupler_sim,
                                  +get_slab_energy,
                                  +get_land_energy,
                                  +)

                                  computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                                  Note: in the future this should not use push!.

                                  source
                                  ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                                  plot_global_conservation(
                                  +    cc::EnergyConservationCheck,
                                  +    coupler_sim::CoupledSimulation;
                                  +    figname1 = "total_energy.png",
                                  +    figname2 = "total_energy_log.png",
                                  +)

                                  Creates two plots of the globally integrated quantity (energy, $\rho e$):

                                  1. global quantity of each model component as a function of time,

                                  relative to the initial value;

                                  1. fractional change in the sum of all components over time on a log scale.
                                  source
                                  plot_global_conservation(
                                  +    cc::WaterConservationCheck,
                                  +    coupler_sim::CoupledSimulation;
                                  +    figname1 = "total_energy.png",
                                  +    figname2 = "total_energy_log.png",
                                  +)

                                  Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                                  1. global quantity of each model component as a function of time,

                                  relative to the initial value;

                                  1. fractional change in the sum of all components over time on a log scale.
                                  source
                                  diff --git a/previews/PR424/couplerstate/index.html b/previews/PR424/couplerstate/index.html new file mode 100644 index 000000000..dc4566de3 --- /dev/null +++ b/previews/PR424/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                  Coupler State

                                  The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                  The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                  Coupler Object API

                                  ClimaCoupler.CouplerStateType
                                  CouplerState()

                                  Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                  A field is exported by one component and imported by one or more other components.

                                  source
                                  ClimaCoupler.coupler_add_field!Function
                                  coupler_add_field!(
                                  +        coupler::CouplerState,
                                  +        fieldname::Symbol,
                                  +        fieldvalue,
                                  +    )

                                  Add a field to the coupler that is accessible with key fieldname.

                                  Arguments

                                  • coupler: coupler object the field is added to.
                                  • fieldname: key to access the field in the coupler.
                                  • fieldvalue: data array of field values.
                                  source
                                  ClimaCoupler.coupler_getFunction
                                  coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                  Retrieve data array corresponding to fieldname.

                                  If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                  source
                                  diff --git a/previews/PR424/diagnostics/index.html b/previews/PR424/diagnostics/index.html new file mode 100644 index 000000000..cb0d5b4bf --- /dev/null +++ b/previews/PR424/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                                  Diagnostics

                                  This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                                  Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                                  Diagnostics API

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                                  ClimaCoupler.Diagnostics.get_varFunction
                                  get_var(cs::CoupledSimulation, x)

                                  Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                                  Example:

                                  getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                                  source
                                  ClimaCoupler.Diagnostics.save_diagnosticsFunction
                                  save_diagnostics(cs::CoupledSimulation)
                                  +
                                  +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                                  Saves all entries in dg in separate HDF5 files per variable in output_dir.

                                  source

                                  Diagnostics Internal Functions

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                                  ClimaCoupler.Diagnostics.operationFunction
                                  operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                                  Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                  source
                                  operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                                  Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                  source
                                  ClimaCoupler.Diagnostics.pre_saveFunction
                                  pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                                  Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                                  source
                                  pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                                  Collects variables and performs all specified operations before saving the snapshot diagnostics.

                                  source
                                  diff --git a/previews/PR424/fieldexchanger/index.html b/previews/PR424/fieldexchanger/index.html new file mode 100644 index 000000000..148fc2418 --- /dev/null +++ b/previews/PR424/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                                  FieldExchanger

                                  This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                                  The FieldExchanger needs to populate the coupler with

                                  • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                                  • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                                  The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                                  • AtmosModelSimulation: albedo, surface_temperature
                                    • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                                  • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                                  If an update_field! function is not defined for a particular component model, it will be ignored.

                                  Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                                  FieldExchanger API

                                  ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                                  import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                  Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                                  Arguments

                                  • csf: [NamedTuple] containing coupler fields.
                                  • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                  • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                  • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                  source
                                  ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                                  import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                  Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                                  Arguments

                                  • csf: [NamedTuple] containing coupler fields.
                                  • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                  • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                  • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                  source
                                  ClimaCoupler.FieldExchanger.update_model_sims!Function
                                  update_model_sims!(model_sims, csf, turbulent_fluxes)

                                  Iterates update_sim! over all component model simulations saved in cs.model_sims.

                                  Arguments

                                  • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                  • csf: [NamedTuple] containing coupler fields.
                                  • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                  source
                                  ClimaCoupler.FieldExchanger.update_sim!Function
                                  update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                                  Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                                  Arguments

                                  • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                                  • csf: [NamedTuple] containing coupler fields.
                                  source
                                  update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                                  Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                                  Arguments

                                  • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                                  • csf: [NamedTuple] containing coupler fields.
                                  source
                                  update_sim!(::SurfaceStub, csf, area_fraction)

                                  The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                                  source
                                  ClimaCoupler.FieldExchanger.step_model_sims!Function
                                  step_model_sims!(model_sims, t)

                                  Iterates step! over all component model simulations saved in cs.model_sims.

                                  Arguments

                                  • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                  • t: [AbstractFloat] denoting the simulation time.
                                  source

                                  FieldExchanger Internal Functions

                                  CommonSolve.step!Function
                                  step!(::SurfaceStub, t)

                                  The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                                  source
                                  SciMLBase.reinit!Function
                                  reinit!(cs::SurfaceStub)

                                  The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                                  source
                                  diff --git a/previews/PR424/fluxcalculator/index.html b/previews/PR424/fluxcalculator/index.html new file mode 100644 index 000000000..ad3f701a6 --- /dev/null +++ b/previews/PR424/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                                  FluxCalculator

                                  This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                                  Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                                  1. Combined fluxes (called with CombinedStateFluxes())
                                  • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                                  1. Partitioned fluxes (called with PartitionedStateFluxes())
                                  • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.

                                  FluxCalculator API

                                  ClimaCoupler.FluxCalculator.CombinedStateFluxesType
                                  CombinedStateFluxes <: TurbulentFluxPartition

                                  A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                                  source
                                  ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!Function
                                  combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                                  Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                                  Arguments

                                  • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                  • csf: [NamedTuple] containing coupler fields.
                                  • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                  source
                                  ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!Function
                                  atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                                  A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                                  Arguments

                                  • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                                  • csf: [NamedTuple] containing coupler fields.

                                  Example:

                                  function atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                                  +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                                  +end
                                  source
                                  diff --git a/previews/PR424/generated/amip/coupler_driver_modular/index.html b/previews/PR424/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..c5d0b1805 --- /dev/null +++ b/previews/PR424/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,488 @@ + +AMIP Driver · ClimaCoupler.jl

                                  AMIP Driver

                                  Overview

                                  AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                                  • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                                  • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                                  For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                                  This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                                  Start Up

                                  Before starting Julia, ensure your environment is properly set up:

                                  module purge
                                  +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                                  +
                                  +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                                  +export JUlIA_MPI_BINARY="system"
                                  +export JULIA_HDF5_PATH=""

                                  Next instantiate/build all packages listed in Manifest.toml:

                                  julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                                  +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                                  The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                                  julia --project --threads 8

                                  Initialization

                                  Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                                  import SciMLBase: step!, reinit!
                                  +using OrdinaryDiffEq
                                  +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                                  +using LinearAlgebra
                                  +import Test: @test
                                  +using Dates
                                  +using UnPack
                                  +using Plots
                                  +using Statistics: mean
                                  +
                                  +using ClimaCore.Utilities: half, PlusHalf
                                  +using ClimaCore: InputOutput, Fields
                                  +import ClimaCore.Spaces as Spaces
                                  +
                                  +if !(@isdefined parsed_args)
                                  +    include("cli_options.jl")
                                  +    parsed_args = parse_commandline(argparse_settings())
                                  +end
                                  +
                                  +if isinteractive()
                                  +    parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes

                                  parsedargs["dtsave_restart"] = "5days" #hide

                                      parsed_args["job_id"] = "interactive_debug_run"
                                  +    parsed_args["monthly_checkpoint"] = true
                                  +    parsed_args["FLOAT_TYPE"] = "Float64"
                                  +end
                                  +
                                  +# read in some parsed command line arguments
                                  +mode_name = parsed_args["mode_name"]
                                  +run_name = parsed_args["run_name"]
                                  +energy_check = parsed_args["energy_check"]
                                  +if !(@isdefined FT)
                                  +    const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                                  +end
                                  +land_sim_name = "bucket"
                                  +t_end = Int(time_to_seconds(parsed_args["t_end"]))
                                  +tspan = (Int(0), t_end)
                                  +Δt_cpl = Int(parsed_args["dt_cpl"])
                                  +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                                  +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                                  +mono_surface = parsed_args["mono_surface"]
                                  +monthly_checkpoint = parsed_args["monthly_checkpoint"]
                                  +restart_dir = parsed_args["restart_dir"]
                                  +restart_t = Int(parsed_args["restart_t"])
                                  +
                                  +import ClimaCoupler
                                  +import ClimaCoupler.Regridder
                                  +import ClimaCoupler.Regridder:
                                  +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                                  +import ClimaCoupler.ConservationChecker:
                                  +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                                  +import ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!
                                  +import ClimaCoupler.BCReader:
                                  +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                                  +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                                  +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                                  +import ClimaCoupler.PostProcessor: postprocess
                                  +
                                  +import ClimaCoupler.Interfacer:
                                  +    AtmosModelSimulation,
                                  +    SurfaceModelSimulation,
                                  +    SurfaceStub,
                                  +    SeaIceModelSimulation,
                                  +    LandModelSimulation,
                                  +    OceanModelSimulation,
                                  +    get_field,
                                  +    update_field!,
                                  +    update_sim!
                                  +import ClimaCoupler.FluxCalculator:
                                  +    PartitionedStateFluxes,
                                  +    CombinedStateFluxes,
                                  +    combined_turbulent_fluxes!,
                                  +    MoninObukhovScheme,
                                  +    partitioned_turbulent_fluxes!
                                  +import ClimaCoupler.FieldExchanger:
                                  +    import_atmos_fields!,
                                  +    import_combined_surface_fields!,
                                  +    update_sim!,
                                  +    update_model_sims!,
                                  +    reinit_model_sims!,
                                  +    step_model_sims!
                                  +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
                                  +
                                  +pkg_dir = pkgdir(ClimaCoupler)
                                  +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                                  +mkpath(COUPLER_OUTPUT_DIR)
                                  +
                                  +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                                  +mkpath(REGRID_DIR)
                                  +
                                  +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
                                  +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
                                  +
                                  +@info COUPLER_OUTPUT_DIR
                                  +@info parsed_args
                                  +
                                  +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration
                                  +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                                  +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                                  +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                                  +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                                  +
                                  +# user-specified diagnostics
                                  +include("user_io/user_diagnostics.jl")

                                  Component Model Initialization

                                  Here we set initial and boundary conditions for each component model.

                                  Atmosphere

                                  This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                                  # init atmos model component
                                  +include("components/atmosphere/climaatmos_init.jl")
                                  +atmos_sim = atmos_init(FT, parsed_args);
                                  +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                                  We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                                  # init a 2D boundary space at the surface
                                  +boundary_space = atmos_sim.domain.face_space.horizontal_space

                                  init land-sea fraction

                                  land_fraction =
                                  +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)
                                  +
                                  +# init surface (slab) model components
                                  +include("components/land/bucket_init.jl")
                                  +include("components/land/bucket_utils.jl")
                                  +include("components/ocean/slab_ocean_init.jl")
                                  +include("components/ocean/slab_seaice_init.jl")

                                  Land

                                  We use ClimaLSM.jl's bucket model.

                                  land_sim = bucket_init(
                                  +    FT,
                                  +    FT.(tspan),
                                  +    parsed_args["config"],
                                  +    parsed_args["albedo_type"],
                                  +    comms_ctx,
                                  +    REGRID_DIR;
                                  +    dt = FT(Δt_cpl),
                                  +    space = boundary_space,
                                  +    saveat = FT(saveat),
                                  +    area_fraction = land_fraction,
                                  +    date_ref = date0,
                                  +    t_start = FT(0),
                                  +)

                                  Ocean and Sea Ice

                                  In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                                  In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                                  @info mode_name
                                  +if mode_name == "amip"
                                  +    @info "AMIP boundary conditions - do not expect energy conservation"
                                  +
                                  +    # ocean
                                  +    SST_info = bcfile_info_init(
                                  +        FT,
                                  +        REGRID_DIR,
                                  +        sst_data,
                                  +        "SST",
                                  +        boundary_space,
                                  +        comms_ctx,
                                  +        interpolate_daily = true,
                                  +        scaling_function = clean_sst, ## convert to Kelvin
                                  +        land_fraction = land_fraction,
                                  +        date0 = date0,
                                  +        mono = mono_surface,
                                  +    )
                                  +
                                  +    update_midmonth_data!(date0, SST_info)
                                  +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                                  +    ocean_sim = SurfaceStub((;
                                  +        T_sfc = SST_init,
                                  +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                  +        z0m = FT(1e-3),
                                  +        z0b = FT(1e-3),
                                  +        beta = FT(1),
                                  +        α = FT(0.06),
                                  +        area_fraction = (FT(1) .- land_fraction),
                                  +        phase = TD.Liquid(),
                                  +        thermo_params = thermo_params,
                                  +    ))
                                  +    # sea ice
                                  +    SIC_info = bcfile_info_init(
                                  +        FT,
                                  +        REGRID_DIR,
                                  +        sic_data,
                                  +        "SEAICE",
                                  +        boundary_space,
                                  +        comms_ctx,
                                  +        interpolate_daily = true,
                                  +        scaling_function = clean_sic, ## convert to fraction
                                  +        land_fraction = land_fraction,
                                  +        date0 = date0,
                                  +        mono = mono_surface,
                                  +    )
                                  +    update_midmonth_data!(date0, SIC_info)
                                  +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                                  +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                                  +    ice_sim = ice_init(
                                  +        FT;
                                  +        tspan = tspan,
                                  +        dt = Δt_cpl,
                                  +        space = boundary_space,
                                  +        saveat = saveat,
                                  +        area_fraction = ice_fraction,
                                  +        thermo_params = thermo_params,
                                  +    )
                                  +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                                  +
                                  +elseif mode_name == "slabplanet"
                                  +    # ocean
                                  +    ocean_sim = ocean_init(
                                  +        FT;
                                  +        tspan = tspan,
                                  +        dt = Δt_cpl,
                                  +        space = boundary_space,
                                  +        saveat = saveat,
                                  +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                                  +        thermo_params = thermo_params,
                                  +    )
                                  +
                                  +    # sea ice (here set to zero area coverage)
                                  +    ice_sim = SurfaceStub((;
                                  +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                                  +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                  +        z0m = FT(0),
                                  +        z0b = FT(0),
                                  +        beta = FT(1),
                                  +        α = FT(1),
                                  +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                                  +        phase = TD.Ice(),
                                  +        thermo_params = thermo_params,
                                  +    ))
                                  +
                                  +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                                  +end

                                  Coupler Initialization

                                  The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                                  # coupler exchange fields
                                  +coupler_field_names = (
                                  +    :T_S,
                                  +    :z0m_S,
                                  +    :z0b_S,
                                  +    :ρ_sfc,
                                  +    :q_sfc,
                                  +    :albedo,
                                  +    :beta,
                                  +    :F_turb_energy,
                                  +    :F_turb_moisture,
                                  +    :F_turb_ρτxz,
                                  +    :F_turb_ρτyz,
                                  +    :F_radiative,
                                  +    :P_liq,
                                  +    :P_snow,
                                  +    :F_radiative_TOA,
                                  +    :P_net,
                                  +)
                                  +coupler_fields =
                                  +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                                  +
                                  +# model simulations
                                  +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                                  +
                                  +# dates
                                  +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                                  Online Diagnostics

                                  User can write custom diagnostics in the user_diagnostics.jl.

                                  monthly_3d_diags = init_diagnostics(
                                  +    (:T, :u, :q_tot, :q_liq_ice),
                                  +    atmos_sim.domain.center_space;
                                  +    save = Monthly(),
                                  +    operations = (; accumulate = TimeMean([Int(0)])),
                                  +    output_dir = COUPLER_OUTPUT_DIR,
                                  +    name_tag = "monthly_mean_3d_",
                                  +)
                                  +
                                  +monthly_2d_diags = init_diagnostics(
                                  +    (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),
                                  +    boundary_space;
                                  +    save = Monthly(),
                                  +    operations = (; accumulate = TimeMean([Int(0)])),
                                  +    output_dir = COUPLER_OUTPUT_DIR,
                                  +    name_tag = "monthly_mean_2d_",
                                  +)
                                  +
                                  +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                                  Initialize Conservation Checks

                                  # init conservation info collector
                                  +conservation_checks = nothing
                                  +if energy_check
                                  +    @assert(
                                  +        mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),
                                  +        "Only non-distributed slabplanet allowable for energy_check"
                                  +    )
                                  +    conservation_checks =
                                  +        (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))
                                  +end
                                  +
                                  +# coupler simulation
                                  +cs = CoupledSimulation{FT}(
                                  +    comms_ctx,
                                  +    dates,
                                  +    boundary_space,
                                  +    coupler_fields,
                                  +    parsed_args,
                                  +    conservation_checks,
                                  +    [tspan[1], tspan[2]],
                                  +    atmos_sim.integrator.t,
                                  +    Δt_cpl,
                                  +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                                  +    model_sims,
                                  +    mode_specifics,
                                  +    diagnostics,
                                  +);

                                  Restart component model states if specified

                                  if restart_dir !== "unspecified"
                                  +    for sim in cs.model_sims
                                  +        if get_model_state_vector(sim) !== nothing
                                  +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
                                  +        end
                                  +    end
                                  +end

                                  Initialize Component Model Exchange

                                  turbulent_fluxes = nothing
                                  +if parsed_args["turb_flux_partition"] == "PartitionedStateFluxes"
                                  +    turbulent_fluxes = PartitionedStateFluxes()
                                  +elseif parsed_args["turb_flux_partition"] == "CombinedStateFluxes"
                                  +    turbulent_fluxes = CombinedStateFluxes()
                                  +else
                                  +    error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes")
                                  +end
                                  1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                                  update_surface_fractions!(cs)
                                  +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                  +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                  +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                  1. each surface component model calculates its own vapor specific humidity (q_sfc)

                                  TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                                  step!(land_sim, Δt_cpl)
                                  +step!(ocean_sim, Δt_cpl)
                                  +step!(ice_sim, Δt_cpl)
                                  1. coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions
                                  if turbulent_fluxes isa CombinedStateFluxes

                                  calculate fluxes using combined surface states on the atmos grid

                                      import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc
                                  +    combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts
                                  +elseif turbulent_fluxes isa PartitionedStateFluxes

                                  calculate turbulent fluxes in surface models and save the weighted average in coupler fields

                                      partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                  update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)

                                      new_p = get_new_cache(atmos_sim, cs.fields)
                                  +    ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)
                                  +    atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                  +end
                                  1. given the new sfc_conditions, atmos calls the radiative flux callback
                                  reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux
                                  1. coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types

                                  and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.

                                  import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                  +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                                  Coupling Loop

                                  function solve_coupler!(cs)
                                  +    @info "Starting coupling loop"
                                  +
                                  +    @unpack model_sims, Δt_cpl, tspan = cs
                                  +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                                  +
                                  +    # step in time
                                  +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                                  +
                                  +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                                  +
                                  +        # print date on the first of month
                                  +        if cs.dates.date[1] >= cs.dates.date1[1]
                                  +            @show(cs.dates.date[1])
                                  +        end
                                  +
                                  +        if cs.mode.name == "amip"
                                  +
                                  +            # monthly read of boundary condition data for SST and SIC
                                  +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                                  +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                                  +            end
                                  +            update_field!(
                                  +                ocean_sim,
                                  +                Val(:surface_temperature),
                                  +                interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),
                                  +            )
                                  +
                                  +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                                  +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                                  +            end
                                  +            interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                                  +            update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface))  # TODO: change to SIC
                                  +
                                  +            # calculate and accumulate diagnostics at each timestep
                                  +            ClimaComms.barrier(comms_ctx)
                                  +            accumulate_diagnostics!(cs)
                                  +
                                  +            # save and reset monthly averages
                                  +            save_diagnostics(cs)
                                  +
                                  +        end
                                  +
                                  +        # compute global energy
                                  +        !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing
                                  +
                                  +        # run component models sequentially for one coupling timestep (Δt_cpl)
                                  +        ClimaComms.barrier(comms_ctx)
                                  +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                  +
                                  +        # step sims

                                  buffer = landsim.integrator.p.dssbuffer2d landρsfc = landsim.integrator.p.bucket.ρsfc # getfield(landsim, Val(:ρsfc)) ClimaCore.Spaces.weighteddss!(landρ_sfc, buffer)

                                  landTsfc = landsim.integrator.p.bucket.Tsfc ClimaCore.Spaces.weighteddss!(landT_sfc, buffer)

                                  landqsfc = landsim.integrator.p.bucket.qsfc ClimaCore.Spaces.weighteddss!(landq_sfc, buffer)

                                          step_model_sims!(cs.model_sims, t)
                                  +
                                  +        # exchange combined fields and (if specified) calculate fluxes using combined states
                                  +        update_surface_fractions!(cs)
                                  +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                                  +        if turbulent_fluxes isa CombinedStateFluxes
                                  +            combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)
                                  +        elseif turbulent_fluxes isa PartitionedStateFluxes

                                  calculate turbulent fluxes in surfaces and save the weighted average in coupler fields

                                              partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                  update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)

                                              new_p = get_new_cache(atmos_sim, cs.fields)
                                  +            ClimaAtmos.SurfaceConditions.update_surface_conditions!(
                                  +                atmos_sim.integrator.u,
                                  +                new_p,
                                  +                atmos_sim.integrator.t,
                                  +            ) # to set T_sfc (but SF calculation not necessary - CA modification)
                                  +            atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                  +        end
                                  +
                                  +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent
                                  +
                                  +        # monthly callbacks
                                  +        if trigger_callback(cs, Monthly())
                                  +            # step to the next calendar month
                                  +            cs.dates.date1[1] += Dates.Month(1)
                                  +            # checkpoint model state
                                  +            if monthly_checkpoint
                                  +                for sim in cs.model_sims
                                  +                    if get_model_state_vector(sim) !== nothing
                                  +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
                                  +                    end
                                  +                end
                                  +            end
                                  +        end
                                  +
                                  +    end
                                  +    @show walltime
                                  +
                                  +    return cs
                                  +end
                                  +
                                  +
                                  +# run the coupled simulation
                                  +solve_coupler!(cs);

                                  Postprocessing

                                  Currently all postprocessing is performed using the root process only.

                                  if ClimaComms.iamroot(comms_ctx)
                                  +
                                  +    # energy check plots
                                  +    if !isnothing(cs.conservation_checks) && cs.mode.name == "slabplanet"
                                  +        @info "Conservation Check Plots"
                                  +        plot_global_conservation(
                                  +            cs.conservation_checks.energy,
                                  +            cs,
                                  +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_bucket.png"),
                                  +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_log_bucket.png"),
                                  +        )
                                  +        plot_global_conservation(
                                  +            cs.conservation_checks.water,
                                  +            cs,
                                  +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_bucket.png"),
                                  +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_log_bucket.png"),
                                  +        )
                                  +    end
                                  +
                                  +    # sample animations
                                  +    if !is_distributed && parsed_args["anim"]
                                  +        @info "Animations"
                                  +        include("user_io/viz_explorer.jl")
                                  +        plot_anim(cs, COUPLER_ARTIFACTS_DIR)
                                  +    end
                                  +
                                  +    # plotting AMIP results
                                  +    if cs.mode.name == "amip"
                                  +        @info "AMIP plots"
                                  +
                                  +        # ClimaESM
                                  +        include("user_io/amip_visualizer.jl")
                                  +        post_spec = (;
                                  +            T = (:regrid, :zonal_mean),
                                  +            u = (:regrid, :zonal_mean),
                                  +            q_tot = (:regrid, :zonal_mean),
                                  +            toa_fluxes = (:regrid, :horizontal_slice),
                                  +            precipitation_rate = (:regrid, :horizontal_slice),
                                  +            T_sfc = (:regrid, :horizontal_slice),
                                  +            tubulent_energy_fluxes = (:regrid, :horizontal_slice),
                                  +            q_liq_ice = (:regrid, :zonal_mean),
                                  +        )
                                  +
                                  +        plot_spec = (;
                                  +            T = (; clims = (190, 320), units = "K"),
                                  +            u = (; clims = (-50, 50), units = "m/s"),
                                  +            q_tot = (; clims = (0, 30), units = "g/kg"),
                                  +            toa_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                  +            precipitation_rate = (clims = (0, 1e-4), units = "kg/m^2/s"),
                                  +            T_sfc = (clims = (225, 310), units = "K"),
                                  +            tubulent_energy_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                  +            q_liq_ice = (; clims = (0, 10), units = "g/kg"),
                                  +        )
                                  +        amip_data = amip_paperplots(
                                  +            post_spec,
                                  +            plot_spec,
                                  +            COUPLER_OUTPUT_DIR,
                                  +            files_root = ".monthly",
                                  +            output_dir = COUPLER_ARTIFACTS_DIR,
                                  +        )
                                  +
                                  +        # NCEP reanalysis
                                  +        @info "NCEP plots"
                                  +        include("user_io/ncep_visualizer.jl")
                                  +        ncep_post_spec = (;
                                  +            T = (:zonal_mean,),
                                  +            u = (:zonal_mean,),
                                  +            q_tot = (:zonal_mean,),
                                  +            toa_fluxes = (:horizontal_slice,),
                                  +            precipitation_rate = (:horizontal_slice,),
                                  +            T_sfc = (:horizontal_slice,),
                                  +            tubulent_energy_fluxes = (:horizontal_slice,),
                                  +        )
                                  +        ncep_plot_spec = plot_spec
                                  +        ncep_data = ncep_paperplots(
                                  +            ncep_post_spec,
                                  +            ncep_plot_spec,
                                  +            COUPLER_OUTPUT_DIR,
                                  +            output_dir = COUPLER_ARTIFACTS_DIR,
                                  +            month_date = cs.dates.date[1],
                                  +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                                  +    end
                                  +
                                  +    # clean up
                                  +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                                  +end

                                  This page was generated using Literate.jl.

                                  diff --git a/previews/PR424/generated/sea_breeze/atmos_rhs/index.html b/previews/PR424/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..a5bc038b8 --- /dev/null +++ b/previews/PR424/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                                  Atmospheric Model

                                  Atmosphere Conservation Equations

                                  Density:

                                  \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                                  Momentum (flux form):

                                  \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                                  Potential temperature:

                                  \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                                  Total Energy (possibly replace potential temperature equation with total energy conservation):

                                  \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                                  where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                                  Tracer transport:

                                  \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                                  Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                                  \[\rho\tau = -2\rho\nu\nabla u.\]

                                  Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                                  \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                                  with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                                  Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                                  Consider components of the viscous stress tensor in three dimensions:

                                  \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                                  Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                                  \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                                  Which can be interpreted as, for horizontal-momentum:

                                  1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                  2. Vertical divergence of vertical gradients of cell-centered variables $u$
                                  3. Vertical divergence of horizontal gradients of cell-face variables $w$

                                  and for vertical-momentum, as:

                                  1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                  2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                                  3. Vertical divergence of vertical gradients of cell-face variables $w$.

                                  Model Code

                                  push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                                  +
                                  +using Test
                                  +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                                  +
                                  +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                                  +using ClimaCore.Geometry
                                  +using ClimaCore.Utilities: PlusHalf
                                  +
                                  +using Logging: global_logger
                                  +using TerminalLoggers: TerminalLogger
                                  +global_logger(TerminalLogger())
                                  +
                                  +using ClimaCoupler
                                  +
                                  +# set up function space
                                  +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                                  +    FT = Float64
                                  +    vertdomain = Domains.IntervalDomain(
                                  +        Geometry.ZPoint{FT}(zlim[1]),
                                  +        Geometry.ZPoint{FT}(zlim[2]);
                                  +        boundary_tags = (:bottom, :top),
                                  +    )
                                  +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                                  +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                                  +
                                  +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                  +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                                  +    horztopology = Topologies.IntervalTopology(horzmesh)
                                  +
                                  +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                                  +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                                  +
                                  +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                                  +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                                  +    return (hv_center_space, hv_face_space)
                                  +end
                                  +
                                  +function pressure(ρθ)
                                  +    if ρθ >= 0
                                  +        return MSLP * (R_d * ρθ / MSLP)^γ
                                  +    else
                                  +        return NaN
                                  +    end
                                  +end
                                  +
                                  +Φ(z) = grav * z
                                  +
                                  +abstract type BCtag end
                                  +struct ZeroFlux <: BCtag end
                                  +
                                  +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                  +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                  +
                                  +function init_sea_breeze_2d(x, z)
                                  +    θ₀ = atm_T_ini
                                  +    cp_d = C_p
                                  +    cv_d = C_v
                                  +    p₀ = MSLP
                                  +    g = grav
                                  +    γ = cp_d / cv_d
                                  +    z_c = 100.0
                                  +    θ_b = atm_T_ini
                                  +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                                  +    θ = θ_b + θ_p # potential temperature
                                  +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                                  +    T = π_exn * θ # temperature
                                  +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                                  +    ρ = p / R_d / T # density
                                  +    ρθ = ρ * θ # potential temperature density
                                  +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                                  +end
                                  +
                                  +function atm_rhs!(dY, Y, params, t)
                                  +    ρw = Y.ρw
                                  +    Yc = Y.Yc
                                  +    dYc = dY.Yc
                                  +    dρw = dY.ρw
                                  +
                                  +    center_coords = Fields.coordinate_field(axes(Yc))
                                  +
                                  +    # spectral horizontal operators
                                  +    hdiv = Operators.Divergence()
                                  +    hgrad = Operators.Gradient()
                                  +    hwdiv = Operators.WeakDivergence()
                                  +    hwgrad = Operators.WeakGradient()
                                  +
                                  +    # vertical FD operators with BC's
                                  +    vdivf2c = Operators.DivergenceF2C(
                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                  +    )
                                  +    vvdivc2f = Operators.DivergenceC2F(
                                  +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                                  +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                                  +    )
                                  +    uvdivf2c = Operators.DivergenceF2C(
                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                  +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                  +    )
                                  +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                  +    Ic = Operators.InterpolateF2C()
                                  +    ∂ = Operators.DivergenceF2C(
                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                  +    )
                                  +    ∂f = Operators.GradientC2F()
                                  +    ∂c = Operators.GradientF2C()
                                  +    B = Operators.SetBoundaryOperator(
                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                  +    )
                                  +
                                  +    ∇_z_ρθ = Operators.DivergenceF2C(
                                  +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                                  +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                                  +    )
                                  +
                                  +    uₕ = @. Yc.ρuₕ / Yc.ρ
                                  +    w = @. ρw / If(Yc.ρ)
                                  +    wc = @. Ic(ρw) / Yc.ρ
                                  +    p = @. pressure(Yc.ρθ)
                                  +    θ = @. Yc.ρθ / Yc.ρ
                                  +    Yfρ = @. If(Yc.ρ)
                                  +
                                  +    ### HYPERVISCOSITY
                                  +    # 1) compute hyperviscosity coefficients
                                  +    @. dYc.ρθ = hwdiv(hgrad(θ))
                                  +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                                  +    @. dρw = hwdiv(hgrad(w))
                                  +    Spaces.weighted_dss!(dYc)
                                  +    Spaces.weighted_dss!(dρw)
                                  +
                                  +    κ₄ = 0.0 # m^4/s
                                  +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                                  +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                                  +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                                  +
                                  +    # density
                                  +    @. dYc.ρ = -∂(ρw)
                                  +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                                  +
                                  +    # potential temperature
                                  +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                                  +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                                  +
                                  +    # horizontal momentum
                                  +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                                  +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                                  +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                                  +
                                  +    # vertical momentum
                                  +    @. dρw +=
                                  +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                                  +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                                  +    @. dρw -= hdiv(uₕf ⊗ ρw)
                                  +
                                  +    # DIFFUSION
                                  +    κ₂ = 5.0 # m^2/s
                                  +    #  1a) horizontal div of horizontal grad of horiz momentun
                                  +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                                  +    #  1b) vertical div of vertical grad of horiz momentun
                                  +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                                  +
                                  +    #  1c) horizontal div of horizontal grad of vert momentum
                                  +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                                  +    #  1d) vertical div of vertical grad of vert momentun
                                  +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                                  +
                                  +    #  2a) horizontal div of horizontal grad of potential temperature
                                  +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                                  +    #  2b) vertical div of vertial grad of potential temperature
                                  +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                                  +
                                  +    Spaces.weighted_dss!(dYc)
                                  +    Spaces.weighted_dss!(dρw)
                                  +    return dY
                                  +end
                                  +
                                  +# init simulation
                                  +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                                  +
                                  +    # construct domain spaces
                                  +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                                  +    center_coords = Fields.coordinate_field(hv_center_space)
                                  +    face_coords = Fields.coordinate_field(hv_face_space)
                                  +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                                  +
                                  +    # initialize prognostic variables
                                  +    Yc = map(center_coords) do coord
                                  +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                                  +        sea_breeze
                                  +    end
                                  +
                                  +    ρw = map(face_coords) do coord
                                  +        Geometry.WVector(0.0)
                                  +    end
                                  +
                                  +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                                  +
                                  +    # select boundary conditions
                                  +    if bc === nothing
                                  +        bc = (
                                  +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                                  +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                                  +        )
                                  +    end
                                  +
                                  +    return Y, bc, domain
                                  +end
                                  +
                                  +using OrdinaryDiffEq
                                  +function atm_run!(Y, bc, domain)
                                  +    dYdt = similar(Y)
                                  +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                                  +    atm_rhs!(dYdt, Y, params, 0.0)
                                  +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                                  +    Δt = 0.025
                                  +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                                  +end

                                  Coupled Atmos Wrappers

                                  # Atmos Simulation - later to live in ClimaAtmos
                                  +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                                  +    integrator::Any
                                  +end
                                  +
                                  +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                  +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                                  +
                                  +    atm_integ = init(
                                  +        atm_prob,
                                  +        timestepper,
                                  +        dt = dt,
                                  +        saveat = saveat,
                                  +        progress = true,
                                  +        progress_message = (dt, u, params, t) -> t,
                                  +        callback = callbacks,
                                  +    )
                                  +
                                  +    return AtmosSimulation(atm_integ)
                                  +end
                                  +
                                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                                  +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                                  +end
                                  +
                                  +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                                  +    # reset flux accumulator
                                  +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                                  +
                                  +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                                  +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                                  +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                                  +end

                                  Coupled Boundary Conditions

                                  The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                                  To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                                  struct CoupledFlux <: BCtag end
                                  +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                                  +    # flux calculation
                                  +    Yc = Y.Yc
                                  +    uₕ = Yc.ρuₕ ./ Yc.ρ
                                  +    ρw = Y.ρw
                                  +    If2c = Operators.InterpolateF2C()
                                  +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                  +    w = If2c.(ρw) ./ Yc.ρ
                                  +    cuv = @. Geometry.UWVector(uₕ)
                                  +    windspeed = @. norm(cuv)
                                  +    windspeed_boundary = Fields.level(windspeed, 1)
                                  +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                                  +    ρ_boundary = Fields.level(Yc.ρ, 1)
                                  +
                                  +    # build atmos face fields on surface boundary space to enable broadcasting
                                  +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                                  +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                                  +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                                  +
                                  +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                                  +    dθ = @. θ_boundary - p.T_sfc
                                  +    heat_flux = @. -λ * dθ
                                  +    @. dY.F_sfc += heat_flux # accumulation
                                  +
                                  +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                                  +end

                                  This page was generated using Literate.jl.

                                  diff --git a/previews/PR424/generated/sea_breeze/land_rhs/index.html b/previews/PR424/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..2c78b887c --- /dev/null +++ b/previews/PR424/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                                  Land Model

                                  Slab Land ODE

                                  For our land component, we solve a simple slab land ODE:

                                  \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                                  • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                                  • and $F_{integ}$ is the integrated surface fluxes in time.

                                  Model Code

                                  function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                                  +    """
                                  +    Slab layer equation
                                  +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                                  +        where
                                  +            F_accumulated = F_integrated / Δt_coupler
                                  +    """
                                  +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                                  +    @unpack T_sfc = du
                                  +
                                  +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                                  +end
                                  +
                                  +# set up domain
                                  +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                  +    FT = Float64
                                  +
                                  +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                  +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                  +    topology = Topologies.IntervalTopology(mesh)
                                  +
                                  +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                  +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                  +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                  +
                                  +    return space
                                  +end
                                  +
                                  +# init simulation
                                  +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                  +
                                  +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                  +    space = hspace_1D((xmin, xmax), npoly, helem)
                                  +    coords = Fields.coordinate_field(space)
                                  +    domain = space
                                  +
                                  +    # initial condition
                                  +    T_sfc = map(coords) do coord
                                  +        T_sfc = 273.0
                                  +    end
                                  +
                                  +    # prognostic variable
                                  +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                  +
                                  +    return Y, domain
                                  +end

                                  Coupled Land Wrappers

                                  # Land Simulation - later to live in ClimaLSM
                                  +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                                  +    integrator::Any
                                  +end
                                  +
                                  +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                  +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                                  +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                  +    return LandSimulation(lnd_integ)
                                  +end
                                  +
                                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                                  +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                                  +end
                                  +
                                  +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                                  +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                                  +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                                  +end

                                  This page was generated using Literate.jl.

                                  diff --git a/previews/PR424/generated/sea_breeze/ocean_rhs/index.html b/previews/PR424/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..70360f6d4 --- /dev/null +++ b/previews/PR424/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                                  Ocean Model

                                  Slab Ocean ODE

                                  For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                                  \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                                  • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                                  • and $F_{integ}$ is the integrated surface fluxes in time.

                                  Model Code

                                  function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                                  +    """
                                  +    Slab layer equation
                                  +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                                  +        where
                                  +            F_accumulated = F_integrated / Δt_coupler
                                  +    """
                                  +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                                  +    @unpack T_sfc = du
                                  +
                                  +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                                  +end
                                  +
                                  +# set up domain
                                  +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                  +    FT = Float64
                                  +
                                  +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                  +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                  +    topology = Topologies.IntervalTopology(mesh)
                                  +
                                  +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                  +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                  +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                  +
                                  +    return space
                                  +end
                                  +
                                  +# init simulation
                                  +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                  +
                                  +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                  +    space = hspace_1D((xmin, xmax), npoly, helem)
                                  +    coords = Fields.coordinate_field(space)
                                  +    domain = space
                                  +
                                  +    # initial condition
                                  +    T_sfc = map(coords) do coord
                                  +        T_sfc = 267.0
                                  +    end
                                  +
                                  +    # prognostic variable
                                  +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                  +
                                  +    return Y, domain
                                  +end

                                  Coupled Ocean Wrappers

                                  # Ocean Simulation - Later to live in Oceananigans
                                  +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                                  +    integrator::Any
                                  +end
                                  +
                                  +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                  +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                                  +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                  +    return OceanSimulation(ocn_integ)
                                  +end
                                  +
                                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                                  +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                                  +end
                                  +
                                  +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                                  +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                                  +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                                  +end

                                  This page was generated using Literate.jl.

                                  diff --git a/previews/PR424/generated/sea_breeze/run/index.html b/previews/PR424/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..1d3f327c7 --- /dev/null +++ b/previews/PR424/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                                  Coupled Sea Breeze

                                  Overview

                                  This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                                  In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                                  import ClimaCore.Spaces as Spaces

                                  Model Initialization

                                  Component Models

                                  Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                                  In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                                  include("atmos_rhs.jl")
                                  +include("ocean_rhs.jl")
                                  +include("land_rhs.jl")
                                  +
                                  +# model parameters
                                  +const atm_T_ini = FT(270.0)
                                  +const MSLP = FT(1e5)
                                  +const grav = FT(9.8)
                                  +const R_d = FT(287.058)
                                  +const γ = FT(1.4)
                                  +const C_p = FT(R_d * γ / (γ - 1))
                                  +const C_v = FT(R_d / (γ - 1))
                                  +const R_m = R_d
                                  +cpl_parameters = (
                                  +    # atmos parameters
                                  +    atm_μ = FT(0.0001), # diffusion coefficient
                                  +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                                  +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                                  +    MSLP = MSLP, # mean sea level pressure
                                  +    grav = grav, # gravitational constant
                                  +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                                  +    γ = γ, # heat capacity ratio
                                  +    C_p = C_p, # heat capacity at constant pressure
                                  +    C_v = C_v, # heat capacity at constant volume
                                  +    R_m = R_m, # moist R, assumed to be dry
                                  +    # land slab parameters
                                  +    lnd_h = FT(0.5), # depth of slab layer [m]
                                  +    lnd_ρ = FT(1500), # density [kg m^-3]
                                  +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                                  +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                  +    # ocean slab parameters
                                  +    ocn_h = FT(0.5), # depth of slab layer [m]
                                  +    ocn_ρ = FT(1025), # density [kg m^-3]
                                  +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                                  +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                  +    # coupling parameters
                                  +    C_H = FT(0.0015),
                                  +)
                                  +
                                  +# DSS callback
                                  +function make_dss_func()
                                  +    function _dss!(x::Fields.Field)
                                  +        Spaces.weighted_dss!(x)
                                  +    end
                                  +    function _dss!(::Any)
                                  +        nothing
                                  +    end
                                  +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                                  +    return dss_func
                                  +end
                                  +dss_func = make_dss_func()
                                  +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                                  Initialization

                                  The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                                  Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                                  @info "Init Models and Maps"
                                  +
                                  +t_start, t_end = (0.0, 1.0)
                                  +Δt_coupled = 0.1
                                  +saveat = 1e2
                                  +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                                  +
                                  +# Initialize Models
                                  +atm_Y_default, atm_bc, atm_domain = atm_init(
                                  +    xmin = -500,
                                  +    xmax = 500,
                                  +    zmin = 0,
                                  +    zmax = 1000,
                                  +    npoly = 4,
                                  +    helem = 20,
                                  +    velem = 20,
                                  +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                                  +)
                                  +
                                  +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                                  +
                                  +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                                  Remapping

                                  Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                                  atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                                  +
                                  +maps = (
                                  +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                                  +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                                  +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                                  +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                                  +)
                                  +
                                  +# initialize coupling fields
                                  +atm_T_sfc =
                                  +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                                  +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                                  +atm_F_sfc = Fields.zeros(atm_boundary)
                                  +ocn_F_sfc = Fields.zeros(ocn_domain)
                                  +lnd_F_sfc = Fields.zeros(lnd_domain)

                                  Simulations

                                  Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                                  atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                                  +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                                  +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                                  +
                                  +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                                  +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                                  +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                                  +
                                  +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                                  +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                                  +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                                  Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                                  struct AOLCoupledSimulation{
                                  +    A <: AtmosSimulation,
                                  +    O <: OceanSimulation,
                                  +    L <: LandSimulation,
                                  +    C <: ClimaCoupler.CouplerState,
                                  +} <: ClimaCoupler.AbstractCoupledSimulation
                                  +    # Atmosphere Simulation
                                  +    atmos::A
                                  +    # Ocean Simulation
                                  +    ocean::O
                                  +    # Land Simulation
                                  +    land::L
                                  +    # Coupler storage
                                  +    coupler::C
                                  +end

                                  step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                                  function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                                  +    Δt = t_stop - sim.integrator.t
                                  +    step!(sim.integrator, Δt, true)
                                  +end

                                  The Coupler

                                  The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                                  After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                                  Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                                  Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                                  \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                                  where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                                  coupler = CouplerState(Δt_coupled)
                                  +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                                  +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                                  +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                                  +for (name, map) in pairs(maps)
                                  +    coupler_add_map!(coupler, name, map)
                                  +end
                                  +
                                  +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                                  Coupled Time Integration

                                  Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                                  Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                                  Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                                  \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                                  where $F_{integ}$ has units of $J m^{-2}$.

                                  function cpl_run(simulation::AOLCoupledSimulation)
                                  +    @info "Run model"
                                  +    @unpack atmos, ocean, land, coupler = simulation
                                  +    Δt_coupled = coupler.Δt_coupled
                                  +    # coupler stepping
                                  +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                                  +        # Atmos
                                  +        coupler_pull!(atmos, coupler)
                                  +        step!(atmos, t)
                                  +        coupler_push!(coupler, atmos)
                                  +
                                  +        # Ocean
                                  +        coupler_pull!(ocean, coupler)
                                  +        step!(ocean, t)
                                  +        coupler_push!(coupler, ocean)
                                  +
                                  +        # Land
                                  +        coupler_pull!(land, coupler)
                                  +        step!(land, t)
                                  +        coupler_push!(coupler, land)
                                  +    end
                                  +    @info "Simulation Complete"
                                  +end
                                  +
                                  +# Run simulation
                                  +cpl_run(sim)

                                  References


                                  This page was generated using Literate.jl.

                                  diff --git a/previews/PR424/images/canvas_coupler.png b/previews/PR424/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                                  F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR424/images/cplsetup.png b/previews/PR424/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR424/index.html b/previews/PR424/index.html new file mode 100644 index 000000000..746f08fa3 --- /dev/null +++ b/previews/PR424/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                  ClimaCoupler.jl

                                  Coupling CliMA Models

                                  ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                  • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                  • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                  The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                  Coupler Scheme
                                  ClimaCoupler.jl allows for independent development of interchangeable component models.
                                  diff --git a/previews/PR424/interfacer/index.html b/previews/PR424/interfacer/index.html new file mode 100644 index 000000000..4bdc9a64e --- /dev/null +++ b/previews/PR424/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                                  Interfacer

                                  This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                                  Coupled Simulation

                                  • CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                                  Component model simulations

                                  • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                                  • the current version requires that there is:
                                    • one AtmosModelSimulation
                                    • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                                      • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                                  Prescribed conditions

                                  • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                                  get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                                  +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                                  +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                                  +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                                  +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                                  +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                                  with the corresponding update_field! functions

                                  function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                                  +    sim.cache.area_fraction .= field
                                  +end
                                  +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                                  +    sim.cache.T_sfc .= field
                                  +end

                                  Interfacer API

                                  ClimaCoupler.Interfacer.get_fieldFunction
                                  get_field(::SurfaceStub, ::Val)

                                  A getter function, that should not allocate. If undefined, it returns a descriptive error.

                                  source
                                  get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                                  Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                                  source
                                  ClimaCoupler.Interfacer.update_field!Function
                                  update_field!(::ComponentModelSimulation, ::Val, _...)

                                  No update in unspecified in the particular component model simulation.

                                  source
                                  update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                                  Updates the specified value in the cache of SurfaceStub.

                                  source
                                  diff --git a/previews/PR424/performance/index.html b/previews/PR424/performance/index.html new file mode 100644 index 000000000..81496e5ce --- /dev/null +++ b/previews/PR424/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                                  Performance Analysis Tools

                                  ClimaCoupler.jl provides basic tools for analyzing performance:

                                  1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                                  2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                                  Flame Graph Interpretation

                                  • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                                  • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                                  canvas

                                  • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                                  • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                                  References

                                  diff --git a/previews/PR424/postprocessor/index.html b/previews/PR424/postprocessor/index.html new file mode 100644 index 000000000..0ebaa67b0 --- /dev/null +++ b/previews/PR424/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                                  PostProcessor

                                  This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                                  Diagnostics API

                                  ClimaCoupler.PostProcessor.postprocessFunction
                                  postprocess(
                                  +    name::Symbol,
                                  +    raw_data::Union{Fields.Field, Array},
                                  +    p_methods::Tuple;
                                  +    lev_slice = 1,
                                  +    datafile_latlon = nothing,
                                  +    nlat = 90,
                                  +    nlon = 180,
                                  +)

                                  Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                                  Arguments:

                                  • name: [Symbol] variable name
                                  • raw_data: [Union{Fields.Field, Array}] variable data
                                  • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                                  • lev_slice: [Int] level index along which the :horizontal_slice is applied
                                  • datafile_latlon: [String] name of the regrid file
                                  • nlat: [Int] number of latitudes of the regridded array
                                  • nlon: [Symbol] number of longitudes of the regridded array
                                  source
                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                                  Missing docstring.

                                  Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                                  ClimaCoupler.PostProcessor.DataPackageType
                                  DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                                  A container for storing the tyoe, name, data and coordinates of a variable.

                                  source

                                  Diagnostics Internal Functions

                                  diff --git a/previews/PR424/regridder/index.html b/previews/PR424/regridder/index.html new file mode 100644 index 000000000..ccd93ff0c --- /dev/null +++ b/previews/PR424/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                                  Regridder

                                  This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                                  Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                                  Regridder API

                                  ClimaCoupler.Regridder.write_to_hdf5Function
                                  write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                                  Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                                  Arguments

                                  • REGRID_DIR: [String] directory to save output files in.
                                  • hd_outfile_root: [String] root of the output file name.
                                  • time: [Dates.DateTime] the timestamp of the data being written.
                                  • field: [Fields.Field] object to be written.
                                  • varname: [String] variable name of data.
                                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                  source
                                  ClimaCoupler.Regridder.read_from_hdf5Function
                                  read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                                  Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                                  Arguments

                                  • REGRID_DIR: [String] directory to save output files in.
                                  • hd_outfile_root: [String] root of the output file name.
                                  • time: [Dates.DateTime] the timestamp of the data being written.
                                  • varname: [String] variable name of data.
                                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                                  Returns

                                  • Field or FieldVector
                                  source
                                  ClimaCoupler.Regridder.dummmy_remap!Function
                                  dummmy_remap!(target, source)

                                  Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                                  Arguments

                                  • target: [Fields.Field] destination of remapping.
                                  • source: [Fields.Field] source of remapping.
                                  source
                                  ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                                  remap_field_cgll_to_rll(
                                  +    name,
                                  +    field::Fields.Field,
                                  +    remap_tmpdir,
                                  +    datafile_rll;
                                  +    nlat = 90,
                                  +    nlon = 180
                                  +)

                                  Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                                  Arguments

                                  • name: [Symbol] variable name.
                                  • field: [Fields.Field] data to be remapped.
                                  • remap_tmpdir: [String] directory used for remapping.
                                  • datafile_rll: [String] filename of remapped data output.
                                  source
                                  ClimaCoupler.Regridder.land_fractionFunction
                                  function land_fraction(
                                  +    FT,
                                  +    REGRID_DIR,
                                  +    comms_ctx::ClimaComms.AbstractCommsContext,
                                  +    infile,
                                  +    varname,
                                  +    boundary_space;
                                  +    outfile_root = "land_sea_cgll",
                                  +    mono = false,
                                  +    threshold = 0.7,
                                  +)

                                  Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                                  See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                                  Arguments

                                  • FT: [DataType] Float type
                                  • REGRID_DIR: [String] directory to save output files in.
                                  • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                  • infile: [String] filename containing input data.
                                  • varname: [Symbol] variable name.
                                  • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                                  • outfile_root: [String] root for output file name.
                                  • mono: [Bool] flag for monotone remapping.
                                  • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                                  Returns

                                  • Fields.Field
                                  source
                                  ClimaCoupler.Regridder.update_surface_fractions!Function
                                  update_surface_fractions!(cs::CoupledSimulation)

                                  Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                                  Arguments

                                  • cs: [CoupledSimulation] containing area fraction information.
                                  source
                                  ClimaCoupler.Regridder.combine_surfaces!Function
                                  combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                                  Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                                  Arguments

                                  • combined_field: [Fields.Field] output object containing weighted values.
                                  • sims: [NamedTuple] containing simulations .
                                  • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                                  Example

                                  • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                                  source

                                  Regridder Internal Functions

                                  ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                                  reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                                  Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                                  Arguments

                                  • field: [Fields.Field] object populated with the input array.
                                  • in_array: [Array] input used to fill field.
                                  • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                                  source
                                  ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                                  hdwrite_regridfile_rll_to_cgll(
                                  +    FT,
                                  +    REGRID_DIR,
                                  +    datafile_rll,
                                  +    varname,
                                  +    space;
                                  +    hd_outfile_root = "data_cgll",
                                  +    mono = false,
                                  +)

                                  Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                                  Arguments

                                  • FT: [DataType] Float type.
                                  • REGRID_DIR: [String] directory to save output files in.
                                  • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                                  • varname: [String] the name of the variable to be remapped.
                                  • space: [Spaces.AbstractSpace] the space to which we are mapping.
                                  • hd_outfile_root: [String] root of the output file name.
                                  • mono: [Bool] flag to specify monotone remapping.
                                  source
                                  ClimaCoupler.Regridder.write_datafile_ccFunction
                                  write_datafile_cc(datafile_cc, field, name)

                                  Write the data stored in field to an NCDataset file datafile_cc.

                                  Arguments

                                  • datafile_cc: [String] filename of output file.
                                  • field: [Fields.Field] to be written to file.
                                  • name: [Symbol] variable name.
                                  source
                                  ClimaCoupler.Regridder.binary_maskFunction
                                  binary_mask(var::FT; threshold = 0.5)

                                  Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                                  Arguments

                                  • var: [FT] value to be converted.
                                  • threshold: [Float] cutoff value for conversions.
                                  source
                                  diff --git a/previews/PR424/search/index.html b/previews/PR424/search/index.html new file mode 100644 index 000000000..f083f045c --- /dev/null +++ b/previews/PR424/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                  Loading search...

                                    diff --git a/previews/PR424/search_index.js b/previews/PR424/search_index.js new file mode 100644 index 000000000..74768e67c --- /dev/null +++ b/previews/PR424/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\nif !(@isdefined parsed_args)\n include(\"cli_options.jl\")\n parsed_args = parse_commandline(argparse_settings())\nend\n\nif isinteractive()\n parsed_args[\"surface_setup\"] = \"PrescribedSurface\" #hide # necessary to stop Atmos from calculating its own surface fluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"parsedargs[\"dtsave_restart\"] = \"5days\" #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" parsed_args[\"job_id\"] = \"interactive_debug_run\"\n parsed_args[\"monthly_checkpoint\"] = true\n parsed_args[\"FLOAT_TYPE\"] = \"Float64\"\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nif !(@isdefined FT)\n const FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nend\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\nmonthly_checkpoint = parsed_args[\"monthly_checkpoint\"]\nrestart_dir = parsed_args[\"restart_dir\"]\nrestart_t = Int(parsed_args[\"restart_t\"])\n\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator:\n PartitionedStateFluxes,\n CombinedStateFluxes,\n combined_turbulent_fluxes!,\n MoninObukhovScheme,\n partitioned_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# user-specified diagnostics\ninclude(\"user_io/user_diagnostics.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"components/atmosphere/climaatmos_init.jl\")\natmos_sim = atmos_init(FT, parsed_args);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D boundary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/slab_seaice_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_type\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n date_ref = date0,\n t_start = FT(0),\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_turb_ρτxz,\n :F_turb_ρτyz,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot, :q_liq_ice),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name == \"slabplanet\" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks =\n (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n parsed_args,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = nothing\nif parsed_args[\"turb_flux_partition\"] == \"PartitionedStateFluxes\"\n turbulent_fluxes = PartitionedStateFluxes()\nelseif parsed_args[\"turb_flux_partition\"] == \"CombinedStateFluxes\"\n turbulent_fluxes = CombinedStateFluxes()\nelse\n error(\"turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes\")\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each surface component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if turbulent_fluxes isa CombinedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate fluxes using combined surface states on the atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts\nelseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surface models and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n update_field!(\n ocean_sim,\n Val(:surface_temperature),\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),\n )\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface)) # TODO: change to SIC\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"buffer = landsim.integrator.p.dssbuffer2d landρsfc = landsim.integrator.p.bucket.ρsfc # getfield(landsim, Val(:ρsfc)) ClimaCore.Spaces.weighteddss!(landρ_sfc, buffer)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"landTsfc = landsim.integrator.p.bucket.Tsfc ClimaCore.Spaces.weighteddss!(landT_sfc, buffer)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"landqsfc = landsim.integrator.p.bucket.qsfc ClimaCore.Spaces.weighteddss!(landq_sfc, buffer)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\n if turbulent_fluxes isa CombinedStateFluxes\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)\n elseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surfaces and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n ClimaAtmos.SurfaceConditions.update_surface_conditions!(\n atmos_sim.integrator.u,\n new_p,\n atmos_sim.integrator.t,\n ) # to set T_sfc (but SF calculation not necessary - CA modification)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\n end\n\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent\n\n # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_ARTIFACTS_DIR)\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa_fluxes = (:regrid, :horizontal_slice),\n precipitation_rate = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n tubulent_energy_fluxes = (:regrid, :horizontal_slice),\n q_liq_ice = (:regrid, :zonal_mean),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 30), units = \"g/kg\"),\n toa_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n precipitation_rate = (clims = (0, 1e-4), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n tubulent_energy_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n q_liq_ice = (; clims = (0, 10), units = \"g/kg\"),\n )\n amip_data = amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa_fluxes = (:horizontal_slice,),\n precipitation_rate = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n tubulent_energy_fluxes = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_data = ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedStateFluxes\n ClimaCoupler.FluxCalculator.CombinedStateFluxes\n ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedStateFluxes","text":"PartitionedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedStateFluxes","text":"CombinedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","text":"combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","text":"atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR424/siteinfo.js b/previews/PR424/siteinfo.js new file mode 100644 index 000000000..aafb7b2fc --- /dev/null +++ b/previews/PR424/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR424"; diff --git a/previews/PR424/testhelper/index.html b/previews/PR424/testhelper/index.html new file mode 100644 index 000000000..fd6e188c1 --- /dev/null +++ b/previews/PR424/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                                    TestHelper

                                    This module defines helper functions, objects, and constants to be used by various files in the test folder.

                                    TestHelper API

                                    ClimaCoupler.TestHelper.create_spaceFunction
                                    create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                                    +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                                    Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                                    Arguments

                                    • FT: [DataType] Float type
                                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                    • R: [FT] radius of the sphere underlying space.
                                    • ne: [Integer] number of elements used in the space's mesh.
                                    • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                                    • nz: [Integer] number of vertical elements
                                    source
                                    ClimaCoupler.TestHelper.gen_ncdataFunction
                                    gen_ncdata(FT, path, varname, val)

                                    Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                                    Arguments

                                    • FT: [DataType] Float type.
                                    • path: [String] location to store output datafile.
                                    • varname: [Symbol] variable name.
                                    • val: [FT] value to store as varname at all indices.
                                    source
                                    diff --git a/previews/PR424/timemanager/index.html b/previews/PR424/timemanager/index.html new file mode 100644 index 000000000..64c3cd075 --- /dev/null +++ b/previews/PR424/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                                    TimeManager

                                    This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                                    TimeManager API

                                    ClimaCoupler.TimeManager.current_dateFunction
                                    current_date(cs::CoupledSimulation, t::Int)

                                    Return the model date at the current timestep.

                                    Arguments

                                    • cs: [CoupledSimulation] containing info about the simulation
                                    • t: [Real] number of seconds since simulation began
                                    source
                                    ClimaCoupler.TimeManager.trigger_callbackFunction
                                    trigger_callback(cs, ::Monthly)

                                    Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                                    Arguments

                                    • cs: [CoupledSimulation] containing info about the simulation
                                    source
                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                                    diff --git a/previews/PR424/timestepping/index.html b/previews/PR424/timestepping/index.html new file mode 100644 index 000000000..c987d0bc1 --- /dev/null +++ b/previews/PR424/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                    Coupled Simulations & Timestepping

                                    ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                    Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                    • step!: advances the component model in time
                                    • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                    • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                    ClimaCoupler.run!Function
                                    run!(::CoupledSimulation)

                                    A simple outer timestepping loop for coupled system runs.

                                    This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                    source
                                    ClimaCoupler.step!Function
                                    step!(sim, dt)

                                    Advances a simulation sim by dt.

                                    Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                    source
                                    ClimaCoupler.coupler_push!Function
                                    coupler_push!(coupler::CouplerState, model)

                                    Update coupler with fields retrieved from the coupler.

                                    coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                    source
                                    ClimaCoupler.coupler_pull!Function
                                    coupler_pull!(model, coupler::CouplerState)

                                    Update model with fields retrieved from the coupler.

                                    coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                    source
                                    diff --git a/previews/PR424/utilities/index.html b/previews/PR424/utilities/index.html new file mode 100644 index 000000000..f69db3f28 --- /dev/null +++ b/previews/PR424/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                                    Utilities

                                    This module contains functions, objects, and constants used by various modules in the coupler.

                                    Utilities API

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                                    ClimaCoupler.Utilities.swap_space!Function
                                    swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                                    Remap the values of a field onto a new space.

                                    Arguments

                                    • field_in: [Fields.Field] to be remapped to new space.
                                    • field_out: [Fields.Field] to remap field_in to.
                                    source
                                    diff --git a/previews/PR430/assets/documenter.js b/previews/PR430/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR430/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR430/assets/logo.svg b/previews/PR430/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR430/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR430/assets/search.js b/previews/PR430/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR430/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR430/assets/themes/documenter-dark.css b/previews/PR430/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR430/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR430/assets/themes/documenter-light.css b/previews/PR430/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR430/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR430/assets/themeswap.js b/previews/PR430/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR430/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR430/assets/warner.js b/previews/PR430/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR430/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                                    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR430/bcreader/index.html b/previews/PR430/bcreader/index.html new file mode 100644 index 000000000..5ca0ccca8 --- /dev/null +++ b/previews/PR430/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                                    BCReader

                                    This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                                    BCReader API

                                    ClimaCoupler.BCReader.BCFileInfoType
                                    BCFileInfo

                                    Stores information specific to each boundary condition from a file and each variable.

                                    Inputs:

                                    • bcfile_dir::b # directory of the BC file
                                    • comms_ctx::X # communication context used for MPI
                                    • hdoutfileroot::S # filename root for regridded data
                                    • varname::V # name of the variable
                                    • all_dates::D # vector of all dates contained in the original data file
                                    • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                                    • scaling_function::O # function that scales, offsets or transforms the raw variable
                                    • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                                    • segment_idx::Vector{Int} # index of the monthly data in the file
                                    • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                                    • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                                    • interpolate_daily::Bool # switch to trigger daily interpolation
                                    source
                                    ClimaCoupler.BCReader.bcfile_info_initFunction
                                    bcfile_info_init(
                                    +    FT,
                                    +    bcfile_dir,
                                    +    datafile_rll,
                                    +    varname,
                                    +    boundary_space,
                                    +    comms_ctx;
                                    +    interpolate_daily = false,
                                    +    segment_idx0 = nothing,
                                    +    scaling_function = no_scaling,
                                    +    land_fraction = nothing,
                                    +    date0 = nothing,
                                    +    mono = true,
                                    +)

                                    Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                                    Arguments

                                    • FT: [DataType] Float type.
                                    • bcfile_dir: [String] directory the BC file is stored in.
                                    • datafile_rll: [String] file containing data to regrid.
                                    • varname: [String] name of the variable to be regridded.
                                    • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                    • interpolate_daily: [Bool] switch to trigger daily interpolation.
                                    • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                                    • scaling function: [Function] scales, offsets or transforms varname.
                                    • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                                    • date0: [Dates.DateTime] start date of the file data.
                                    • mono: [Bool] flag for monotone remapping of datafile_rll.

                                    Returns

                                    • BCFileInfo
                                    source
                                    ClimaCoupler.BCReader.update_midmonth_data!Function
                                    update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                                    Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                                    Arguments

                                    • date: [Dates.DateTime] start date for data.
                                    • bcf_info: [BCFileInfo] containing boundary condition data.
                                    source
                                    ClimaCoupler.BCReader.next_date_in_fileFunction
                                    next_date_in_file(bcf_info)

                                    Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                                    Arguments

                                    • bcf_info: [BCFileInfo] containing the date information.

                                    Returns

                                    • Dates.DateTime
                                    source
                                    ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                                    interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                                    Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                                    Arguments

                                    • date: [Dates.DateTime] start date for data.
                                    • bcf_info: [BCFileInfo] contains fields to be interpolated.

                                    Returns

                                    • Fields.field
                                    source

                                    BCReader Internal Functions

                                    ClimaCoupler.BCReader.no_scalingFunction
                                    no_scaling(field, bcf_info)

                                    Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                                    Arguments

                                    • field: [Fields.Field] contains the values to be remapped.
                                    • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                                    source
                                    ClimaCoupler.BCReader.interpolFunction
                                    interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                                    Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                                    Arguments

                                    • f1: [FT] first value to be interpolated (f(t1) = f1).
                                    • f2: [FT] second value to be interpolated.
                                    • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                                    • Δt_t2t1: [FT] time between t1 and t2.

                                    Returns

                                    • FT
                                    source
                                    diff --git a/previews/PR430/checkpointer/index.html b/previews/PR430/checkpointer/index.html new file mode 100644 index 000000000..f2526f915 --- /dev/null +++ b/previews/PR430/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

                                    Checkpointer

                                    This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

                                    Checkpointer API

                                    ClimaCoupler.Checkpointer.get_model_state_vectorFunction
                                    get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

                                    Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

                                    source
                                    ClimaCoupler.Checkpointer.restart_model_state!Function
                                    restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

                                    Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

                                    source
                                    ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
                                    checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

                                    Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

                                    source
                                    diff --git a/previews/PR430/conservation/index.html b/previews/PR430/conservation/index.html new file mode 100644 index 000000000..661080eca --- /dev/null +++ b/previews/PR430/conservation/index.html @@ -0,0 +1,22 @@ + +Conservation Checks · ClimaCoupler.jl

                                    Conservation Checks

                                    If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                                    Only energy and water are currently implemented.

                                    Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                                    Coupler Object API

                                    ClimaCoupler.ConservationChecker.check_conservation!Function
                                    check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)

                                    itertes over all specified conservation checks.

                                    source
                                        check_conservation!(
                                    +    cc::EnergyConservationCheck,
                                    +    coupler_sim,
                                    +    get_slab_energy,
                                    +    get_land_energy,
                                    +    )

                                    computes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.

                                    TODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.

                                    source
                                    check_conservation!(
                                    +cc::WaterConservationCheck,
                                    +coupler_sim,
                                    +get_slab_energy,
                                    +get_land_energy,
                                    +)

                                    computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                                    Note: in the future this should not use push!.

                                    source
                                    ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                                    plot_global_conservation(
                                    +    cc::EnergyConservationCheck,
                                    +    coupler_sim::CoupledSimulation;
                                    +    figname1 = "total_energy.png",
                                    +    figname2 = "total_energy_log.png",
                                    +)

                                    Creates two plots of the globally integrated quantity (energy, $\rho e$):

                                    1. global quantity of each model component as a function of time,

                                    relative to the initial value;

                                    1. fractional change in the sum of all components over time on a log scale.
                                    source
                                    plot_global_conservation(
                                    +    cc::WaterConservationCheck,
                                    +    coupler_sim::CoupledSimulation;
                                    +    figname1 = "total_energy.png",
                                    +    figname2 = "total_energy_log.png",
                                    +)

                                    Creates two plots of the globally integrated quantity (water, $\rho q_{tot}$):

                                    1. global quantity of each model component as a function of time,

                                    relative to the initial value;

                                    1. fractional change in the sum of all components over time on a log scale.
                                    source
                                    diff --git a/previews/PR430/couplerstate/index.html b/previews/PR430/couplerstate/index.html new file mode 100644 index 000000000..618831f32 --- /dev/null +++ b/previews/PR430/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                    Coupler State

                                    The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                    The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                    Coupler Object API

                                    ClimaCoupler.CouplerStateType
                                    CouplerState()

                                    Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                    A field is exported by one component and imported by one or more other components.

                                    source
                                    ClimaCoupler.coupler_add_field!Function
                                    coupler_add_field!(
                                    +        coupler::CouplerState,
                                    +        fieldname::Symbol,
                                    +        fieldvalue,
                                    +    )

                                    Add a field to the coupler that is accessible with key fieldname.

                                    Arguments

                                    • coupler: coupler object the field is added to.
                                    • fieldname: key to access the field in the coupler.
                                    • fieldvalue: data array of field values.
                                    source
                                    ClimaCoupler.coupler_getFunction
                                    coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                    Retrieve data array corresponding to fieldname.

                                    If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                    source
                                    diff --git a/previews/PR430/diagnostics/index.html b/previews/PR430/diagnostics/index.html new file mode 100644 index 000000000..57058e350 --- /dev/null +++ b/previews/PR430/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                                    Diagnostics

                                    This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                                    Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                                    Diagnostics API

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                                    ClimaCoupler.Diagnostics.get_varFunction
                                    get_var(cs::CoupledSimulation, x)

                                    Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                                    Example:

                                    getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                                    source
                                    ClimaCoupler.Diagnostics.save_diagnosticsFunction
                                    save_diagnostics(cs::CoupledSimulation)
                                    +
                                    +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                                    Saves all entries in dg in separate HDF5 files per variable in output_dir.

                                    source

                                    Diagnostics Internal Functions

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                                    ClimaCoupler.Diagnostics.operationFunction
                                    operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                                    Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                    source
                                    operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                                    Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                    source
                                    ClimaCoupler.Diagnostics.pre_saveFunction
                                    pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                                    Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                                    source
                                    pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                                    Collects variables and performs all specified operations before saving the snapshot diagnostics.

                                    source
                                    diff --git a/previews/PR430/fieldexchanger/index.html b/previews/PR430/fieldexchanger/index.html new file mode 100644 index 000000000..a8eb80211 --- /dev/null +++ b/previews/PR430/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                                    FieldExchanger

                                    This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                                    The FieldExchanger needs to populate the coupler with

                                    • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                                    • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                                    The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                                    • AtmosModelSimulation: albedo, surface_temperature
                                      • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                                    • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                                    If an update_field! function is not defined for a particular component model, it will be ignored.

                                    Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                                    FieldExchanger API

                                    ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                                    import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                    Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                                    Arguments

                                    • csf: [NamedTuple] containing coupler fields.
                                    • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                    • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                    source
                                    ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                                    import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                    Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                                    Arguments

                                    • csf: [NamedTuple] containing coupler fields.
                                    • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                    • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                    source
                                    ClimaCoupler.FieldExchanger.update_model_sims!Function
                                    update_model_sims!(model_sims, csf, turbulent_fluxes)

                                    Iterates update_sim! over all component model simulations saved in cs.model_sims.

                                    Arguments

                                    • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                    • csf: [NamedTuple] containing coupler fields.
                                    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                    source
                                    ClimaCoupler.FieldExchanger.update_sim!Function
                                    update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                                    Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                                    Arguments

                                    • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                                    • csf: [NamedTuple] containing coupler fields.
                                    source
                                    update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                                    Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                                    Arguments

                                    • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                                    • csf: [NamedTuple] containing coupler fields.
                                    source
                                    update_sim!(::SurfaceStub, csf, area_fraction)

                                    The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                                    source
                                    ClimaCoupler.FieldExchanger.step_model_sims!Function
                                    step_model_sims!(model_sims, t)

                                    Iterates step! over all component model simulations saved in cs.model_sims.

                                    Arguments

                                    • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                    • t: [AbstractFloat] denoting the simulation time.
                                    source

                                    FieldExchanger Internal Functions

                                    CommonSolve.step!Function
                                    step!(::SurfaceStub, t)

                                    The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                                    source
                                    SciMLBase.reinit!Function
                                    reinit!(cs::SurfaceStub)

                                    The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                                    source
                                    diff --git a/previews/PR430/fluxcalculator/index.html b/previews/PR430/fluxcalculator/index.html new file mode 100644 index 000000000..5fd3dbabf --- /dev/null +++ b/previews/PR430/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                                    FluxCalculator

                                    This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                                    Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                                    1. Combined fluxes (called with CombinedStateFluxes())
                                    • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                                    1. Partitioned fluxes (called with PartitionedStateFluxes())
                                    • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.

                                    FluxCalculator API

                                    ClimaCoupler.FluxCalculator.CombinedStateFluxesType
                                    CombinedStateFluxes <: TurbulentFluxPartition

                                    A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                                    source
                                    ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!Function
                                    combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                                    Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                                    Arguments

                                    • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                    • csf: [NamedTuple] containing coupler fields.
                                    • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                    source
                                    ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!Function
                                    atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                                    A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                                    Arguments

                                    • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                                    • csf: [NamedTuple] containing coupler fields.

                                    Example:

                                    function atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                                    +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                                    +end
                                    source
                                    diff --git a/previews/PR430/generated/amip/coupler_driver_modular/index.html b/previews/PR430/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..7334243e2 --- /dev/null +++ b/previews/PR430/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,486 @@ + +AMIP Driver · ClimaCoupler.jl

                                    AMIP Driver

                                    Overview

                                    AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                                    • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                                    • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                                    For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                                    This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                                    Start Up

                                    Before starting Julia, ensure your environment is properly set up:

                                    module purge
                                    +module load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                                    +
                                    +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                                    +export JUlIA_MPI_BINARY="system"
                                    +export JULIA_HDF5_PATH=""

                                    Next instantiate/build all packages listed in Manifest.toml:

                                    julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                                    +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                                    The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                                    julia --project --threads 8

                                    Initialization

                                    Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                                    import SciMLBase: ODEProblem, solve, step!, init, reinit!
                                    +using LinearAlgebra
                                    +import Test: @test
                                    +using Dates
                                    +using UnPack
                                    +using Plots
                                    +using Statistics: mean
                                    +
                                    +using ClimaCore.Utilities: half, PlusHalf
                                    +using ClimaCore: InputOutput, Fields
                                    +import ClimaCore.Spaces as Spaces
                                    +
                                    +if !(@isdefined parsed_args)
                                    +    include("cli_options.jl")
                                    +    parsed_args = parse_commandline(argparse_settings())
                                    +end
                                    +
                                    +if isinteractive()
                                    +    parsed_args["surface_setup"] = "PrescribedSurface" #hide # necessary to stop Atmos from calculating its own surface fluxes

                                    parsedargs["dtsave_restart"] = "5days" #hide

                                        parsed_args["job_id"] = "interactive_debug_run"
                                    +    parsed_args["monthly_checkpoint"] = true
                                    +end
                                    +
                                    +# read in some parsed command line arguments
                                    +mode_name = parsed_args["mode_name"]
                                    +run_name = parsed_args["run_name"]
                                    +energy_check = parsed_args["energy_check"]
                                    +if !(@isdefined FT)
                                    +    const FT = parsed_args["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                                    +end
                                    +land_sim_name = "bucket"
                                    +t_end = Int(time_to_seconds(parsed_args["t_end"]))
                                    +tspan = (Int(0), t_end)
                                    +Δt_cpl = Int(parsed_args["dt_cpl"])
                                    +saveat = time_to_seconds(parsed_args["dt_save_to_sol"])
                                    +date0 = date = DateTime(parsed_args["start_date"], dateformat"yyyymmdd")
                                    +mono_surface = parsed_args["mono_surface"]
                                    +monthly_checkpoint = parsed_args["monthly_checkpoint"]
                                    +restart_dir = parsed_args["restart_dir"]
                                    +restart_t = Int(parsed_args["restart_t"])
                                    +
                                    +import ClimaCoupler
                                    +import ClimaCoupler.Regridder
                                    +import ClimaCoupler.Regridder:
                                    +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                                    +import ClimaCoupler.ConservationChecker:
                                    +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                                    +import ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!
                                    +import ClimaCoupler.BCReader:
                                    +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                                    +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                                    +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                                    +import ClimaCoupler.PostProcessor: postprocess
                                    +
                                    +import ClimaCoupler.Interfacer:
                                    +    AtmosModelSimulation,
                                    +    SurfaceModelSimulation,
                                    +    SurfaceStub,
                                    +    SeaIceModelSimulation,
                                    +    LandModelSimulation,
                                    +    OceanModelSimulation,
                                    +    get_field,
                                    +    update_field!,
                                    +    update_sim!
                                    +import ClimaCoupler.FluxCalculator:
                                    +    PartitionedStateFluxes,
                                    +    CombinedStateFluxes,
                                    +    combined_turbulent_fluxes!,
                                    +    MoninObukhovScheme,
                                    +    partitioned_turbulent_fluxes!
                                    +import ClimaCoupler.FieldExchanger:
                                    +    import_atmos_fields!,
                                    +    import_combined_surface_fields!,
                                    +    update_sim!,
                                    +    update_model_sims!,
                                    +    reinit_model_sims!,
                                    +    step_model_sims!
                                    +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
                                    +
                                    +pkg_dir = pkgdir(ClimaCoupler)
                                    +COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                                    +mkpath(COUPLER_OUTPUT_DIR)
                                    +
                                    +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                                    +mkpath(REGRID_DIR)
                                    +
                                    +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
                                    +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
                                    +
                                    +@info COUPLER_OUTPUT_DIR
                                    +@info parsed_args
                                    +
                                    +# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration
                                    +include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                                    +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                                    +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                                    +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")
                                    +
                                    +# user-specified diagnostics
                                    +include("user_io/user_diagnostics.jl")

                                    Component Model Initialization

                                    Here we set initial and boundary conditions for each component model.

                                    Atmosphere

                                    This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                                    # init atmos model component
                                    +include("components/atmosphere/climaatmos_init.jl")
                                    +atmos_sim = atmos_init(FT, parsed_args);
                                    +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                                    We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                                    # init a 2D boundary space at the surface
                                    +boundary_space = atmos_sim.domain.face_space.horizontal_space

                                    init land-sea fraction

                                    land_fraction =
                                    +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)
                                    +
                                    +# init surface (slab) model components
                                    +include("components/land/bucket_init.jl")
                                    +include("components/land/bucket_utils.jl")
                                    +include("components/ocean/slab_ocean_init.jl")
                                    +include("components/ocean/slab_seaice_init.jl")

                                    Land

                                    We use ClimaLSM.jl's bucket model.

                                    land_sim = bucket_init(
                                    +    FT,
                                    +    FT.(tspan),
                                    +    parsed_args["config"],
                                    +    parsed_args["albedo_type"],
                                    +    comms_ctx,
                                    +    REGRID_DIR;
                                    +    dt = FT(Δt_cpl),
                                    +    space = boundary_space,
                                    +    saveat = FT(saveat),
                                    +    area_fraction = land_fraction,
                                    +    date_ref = date0,
                                    +    t_start = FT(0),
                                    +)

                                    Ocean and Sea Ice

                                    In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                                    In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                                    @info mode_name
                                    +if mode_name == "amip"
                                    +    @info "AMIP boundary conditions - do not expect energy conservation"
                                    +
                                    +    # ocean
                                    +    SST_info = bcfile_info_init(
                                    +        FT,
                                    +        REGRID_DIR,
                                    +        sst_data,
                                    +        "SST",
                                    +        boundary_space,
                                    +        comms_ctx,
                                    +        interpolate_daily = true,
                                    +        scaling_function = clean_sst, ## convert to Kelvin
                                    +        land_fraction = land_fraction,
                                    +        date0 = date0,
                                    +        mono = mono_surface,
                                    +    )
                                    +
                                    +    update_midmonth_data!(date0, SST_info)
                                    +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                                    +    ocean_sim = SurfaceStub((;
                                    +        T_sfc = SST_init,
                                    +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                    +        z0m = FT(1e-3),
                                    +        z0b = FT(1e-3),
                                    +        beta = FT(1),
                                    +        α = FT(0.06),
                                    +        area_fraction = (FT(1) .- land_fraction),
                                    +        phase = TD.Liquid(),
                                    +        thermo_params = thermo_params,
                                    +    ))
                                    +    # sea ice
                                    +    SIC_info = bcfile_info_init(
                                    +        FT,
                                    +        REGRID_DIR,
                                    +        sic_data,
                                    +        "SEAICE",
                                    +        boundary_space,
                                    +        comms_ctx,
                                    +        interpolate_daily = true,
                                    +        scaling_function = clean_sic, ## convert to fraction
                                    +        land_fraction = land_fraction,
                                    +        date0 = date0,
                                    +        mono = mono_surface,
                                    +    )
                                    +    update_midmonth_data!(date0, SIC_info)
                                    +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                                    +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                                    +    ice_sim = ice_init(
                                    +        FT;
                                    +        tspan = tspan,
                                    +        dt = Δt_cpl,
                                    +        space = boundary_space,
                                    +        saveat = saveat,
                                    +        area_fraction = ice_fraction,
                                    +        thermo_params = thermo_params,
                                    +    )
                                    +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                                    +
                                    +elseif mode_name == "slabplanet"
                                    +    # ocean
                                    +    ocean_sim = ocean_init(
                                    +        FT;
                                    +        tspan = tspan,
                                    +        dt = Δt_cpl,
                                    +        space = boundary_space,
                                    +        saveat = saveat,
                                    +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                                    +        thermo_params = thermo_params,
                                    +    )
                                    +
                                    +    # sea ice (here set to zero area coverage)
                                    +    ice_sim = SurfaceStub((;
                                    +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                                    +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                    +        z0m = FT(0),
                                    +        z0b = FT(0),
                                    +        beta = FT(1),
                                    +        α = FT(1),
                                    +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                                    +        phase = TD.Ice(),
                                    +        thermo_params = thermo_params,
                                    +    ))
                                    +
                                    +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                                    +end

                                    Coupler Initialization

                                    The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                                    # coupler exchange fields
                                    +coupler_field_names = (
                                    +    :T_S,
                                    +    :z0m_S,
                                    +    :z0b_S,
                                    +    :ρ_sfc,
                                    +    :q_sfc,
                                    +    :albedo,
                                    +    :beta,
                                    +    :F_turb_energy,
                                    +    :F_turb_moisture,
                                    +    :F_turb_ρτxz,
                                    +    :F_turb_ρτyz,
                                    +    :F_radiative,
                                    +    :P_liq,
                                    +    :P_snow,
                                    +    :F_radiative_TOA,
                                    +    :P_net,
                                    +)
                                    +coupler_fields =
                                    +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                                    +
                                    +# model simulations
                                    +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                                    +
                                    +# dates
                                    +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                                    Online Diagnostics

                                    User can write custom diagnostics in the user_diagnostics.jl.

                                    monthly_3d_diags = init_diagnostics(
                                    +    (:T, :u, :q_tot, :q_liq_ice),
                                    +    atmos_sim.domain.center_space;
                                    +    save = Monthly(),
                                    +    operations = (; accumulate = TimeMean([Int(0)])),
                                    +    output_dir = COUPLER_OUTPUT_DIR,
                                    +    name_tag = "monthly_mean_3d_",
                                    +)
                                    +
                                    +monthly_2d_diags = init_diagnostics(
                                    +    (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),
                                    +    boundary_space;
                                    +    save = Monthly(),
                                    +    operations = (; accumulate = TimeMean([Int(0)])),
                                    +    output_dir = COUPLER_OUTPUT_DIR,
                                    +    name_tag = "monthly_mean_2d_",
                                    +)
                                    +
                                    +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                                    Initialize Conservation Checks

                                    # init conservation info collector
                                    +conservation_checks = nothing
                                    +if energy_check
                                    +    @assert(
                                    +        mode_name == "slabplanet" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),
                                    +        "Only non-distributed slabplanet allowable for energy_check"
                                    +    )
                                    +    conservation_checks =
                                    +        (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))
                                    +end
                                    +
                                    +# coupler simulation
                                    +cs = CoupledSimulation{FT}(
                                    +    comms_ctx,
                                    +    dates,
                                    +    boundary_space,
                                    +    coupler_fields,
                                    +    parsed_args,
                                    +    conservation_checks,
                                    +    [tspan[1], tspan[2]],
                                    +    atmos_sim.integrator.t,
                                    +    Δt_cpl,
                                    +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                                    +    model_sims,
                                    +    mode_specifics,
                                    +    diagnostics,
                                    +);

                                    Restart component model states if specified

                                    if restart_dir !== "unspecified"
                                    +    for sim in cs.model_sims
                                    +        if get_model_state_vector(sim) !== nothing
                                    +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
                                    +        end
                                    +    end
                                    +end

                                    Initialize Component Model Exchange

                                    turbulent_fluxes = nothing
                                    +if parsed_args["turb_flux_partition"] == "PartitionedStateFluxes"
                                    +    turbulent_fluxes = PartitionedStateFluxes()
                                    +elseif parsed_args["turb_flux_partition"] == "CombinedStateFluxes"
                                    +    turbulent_fluxes = CombinedStateFluxes()
                                    +else
                                    +    error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes")
                                    +end
                                    1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                                    update_surface_fractions!(cs)
                                    +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                    +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                    +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                    1. each surface component model calculates its own vapor specific humidity (q_sfc)

                                    TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                                    step!(land_sim, Δt_cpl)
                                    +step!(ocean_sim, Δt_cpl)
                                    +step!(ice_sim, Δt_cpl)
                                    1. coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions
                                    if turbulent_fluxes isa CombinedStateFluxes

                                    calculate fluxes using combined surface states on the atmos grid

                                        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc
                                    +    combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts
                                    +elseif turbulent_fluxes isa PartitionedStateFluxes

                                    calculate turbulent fluxes in surface models and save the weighted average in coupler fields

                                        partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                    update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)

                                        new_p = get_new_cache(atmos_sim, cs.fields)
                                    +    ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)
                                    +    atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                    +end
                                    1. given the new sfc_conditions, atmos calls the radiative flux callback
                                    reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux
                                    1. coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types

                                    and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.

                                    import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                    +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                                    Coupling Loop

                                    function solve_coupler!(cs)
                                    +    @info "Starting coupling loop"
                                    +
                                    +    @unpack model_sims, Δt_cpl, tspan = cs
                                    +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                                    +
                                    +    # step in time
                                    +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                                    +
                                    +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                                    +
                                    +        # print date on the first of month
                                    +        if cs.dates.date[1] >= cs.dates.date1[1]
                                    +            @show(cs.dates.date[1])
                                    +        end
                                    +
                                    +        if cs.mode.name == "amip"
                                    +
                                    +            # monthly read of boundary condition data for SST and SIC
                                    +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                                    +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                                    +            end
                                    +            update_field!(
                                    +                ocean_sim,
                                    +                Val(:surface_temperature),
                                    +                interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),
                                    +            )
                                    +
                                    +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                                    +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                                    +            end
                                    +            interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)
                                    +            update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface))  # TODO: change to SIC
                                    +
                                    +            # calculate and accumulate diagnostics at each timestep
                                    +            ClimaComms.barrier(comms_ctx)
                                    +            accumulate_diagnostics!(cs)
                                    +
                                    +            # save and reset monthly averages
                                    +            save_diagnostics(cs)
                                    +
                                    +        end
                                    +
                                    +        # compute global energy
                                    +        !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing
                                    +
                                    +        # run component models sequentially for one coupling timestep (Δt_cpl)
                                    +        ClimaComms.barrier(comms_ctx)
                                    +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                    +
                                    +        # step sims
                                    +        step_model_sims!(cs.model_sims, t)
                                    +
                                    +        # exchange combined fields and (if specified) calculate fluxes using combined states
                                    +        update_surface_fractions!(cs)
                                    +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                                    +        if turbulent_fluxes isa CombinedStateFluxes
                                    +            combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)
                                    +        elseif turbulent_fluxes isa PartitionedStateFluxes

                                    calculate turbulent fluxes in surfaces and save the weighted average in coupler fields

                                                partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                    update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)

                                                new_p = get_new_cache(atmos_sim, cs.fields)
                                    +            ClimaAtmos.SurfaceConditions.update_surface_conditions!(
                                    +                atmos_sim.integrator.u,
                                    +                new_p,
                                    +                atmos_sim.integrator.t,
                                    +            ) # to set T_sfc (but SF calculation not necessary - CA modification)
                                    +            atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                    +        end
                                    +
                                    +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent
                                    +
                                    +        # monthly callbacks
                                    +        if trigger_callback(cs, Monthly())
                                    +            # step to the next calendar month
                                    +            cs.dates.date1[1] += Dates.Month(1)
                                    +            # checkpoint model state
                                    +            if monthly_checkpoint
                                    +                for sim in cs.model_sims
                                    +                    if get_model_state_vector(sim) !== nothing
                                    +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
                                    +                    end
                                    +                end
                                    +            end
                                    +        end
                                    +
                                    +    end
                                    +    @show walltime
                                    +
                                    +    return cs
                                    +end
                                    +
                                    +
                                    +# run the coupled simulation
                                    +solve_coupler!(cs);

                                    Postprocessing

                                    Currently all postprocessing is performed using the root process only.

                                    if ClimaComms.iamroot(comms_ctx)
                                    +
                                    +    # energy check plots
                                    +    if !isnothing(cs.conservation_checks) && cs.mode.name == "slabplanet"
                                    +        @info "Conservation Check Plots"
                                    +        plot_global_conservation(
                                    +            cs.conservation_checks.energy,
                                    +            cs,
                                    +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_bucket.png"),
                                    +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_log_bucket.png"),
                                    +        )
                                    +        plot_global_conservation(
                                    +            cs.conservation_checks.water,
                                    +            cs,
                                    +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_bucket.png"),
                                    +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_log_bucket.png"),
                                    +        )
                                    +    end
                                    +
                                    +    # sample animations
                                    +    if !is_distributed && parsed_args["anim"]
                                    +        @info "Animations"
                                    +        include("user_io/viz_explorer.jl")
                                    +        plot_anim(cs, COUPLER_ARTIFACTS_DIR)
                                    +    end
                                    +
                                    +    # plotting AMIP results
                                    +    if cs.mode.name == "amip"
                                    +        @info "AMIP plots"
                                    +
                                    +        # ClimaESM
                                    +        include("user_io/amip_visualizer.jl")
                                    +        post_spec = (;
                                    +            T = (:regrid, :zonal_mean),
                                    +            u = (:regrid, :zonal_mean),
                                    +            q_tot = (:regrid, :zonal_mean),
                                    +            toa_fluxes = (:regrid, :horizontal_slice),
                                    +            precipitation_rate = (:regrid, :horizontal_slice),
                                    +            T_sfc = (:regrid, :horizontal_slice),
                                    +            tubulent_energy_fluxes = (:regrid, :horizontal_slice),
                                    +            q_liq_ice = (:regrid, :zonal_mean),
                                    +        )
                                    +
                                    +        plot_spec = (;
                                    +            T = (; clims = (190, 320), units = "K"),
                                    +            u = (; clims = (-50, 50), units = "m/s"),
                                    +            q_tot = (; clims = (0, 30), units = "g/kg"),
                                    +            toa_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                    +            precipitation_rate = (clims = (0, 1e-4), units = "kg/m^2/s"),
                                    +            T_sfc = (clims = (225, 310), units = "K"),
                                    +            tubulent_energy_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                    +            q_liq_ice = (; clims = (0, 10), units = "g/kg"),
                                    +        )
                                    +        amip_data = amip_paperplots(
                                    +            post_spec,
                                    +            plot_spec,
                                    +            COUPLER_OUTPUT_DIR,
                                    +            files_root = ".monthly",
                                    +            output_dir = COUPLER_ARTIFACTS_DIR,
                                    +        )
                                    +
                                    +        # NCEP reanalysis
                                    +        @info "NCEP plots"
                                    +        include("user_io/ncep_visualizer.jl")
                                    +        ncep_post_spec = (;
                                    +            T = (:zonal_mean,),
                                    +            u = (:zonal_mean,),
                                    +            q_tot = (:zonal_mean,),
                                    +            toa_fluxes = (:horizontal_slice,),
                                    +            precipitation_rate = (:horizontal_slice,),
                                    +            T_sfc = (:horizontal_slice,),
                                    +            tubulent_energy_fluxes = (:horizontal_slice,),
                                    +        )
                                    +        ncep_plot_spec = plot_spec
                                    +        ncep_data = ncep_paperplots(
                                    +            ncep_post_spec,
                                    +            ncep_plot_spec,
                                    +            COUPLER_OUTPUT_DIR,
                                    +            output_dir = COUPLER_ARTIFACTS_DIR,
                                    +            month_date = cs.dates.date[1],
                                    +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                                    +    end
                                    +
                                    +    # clean up
                                    +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                                    +end

                                    This page was generated using Literate.jl.

                                    diff --git a/previews/PR430/generated/sea_breeze/atmos_rhs/index.html b/previews/PR430/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..a2793f803 --- /dev/null +++ b/previews/PR430/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                                    Atmospheric Model

                                    Atmosphere Conservation Equations

                                    Density:

                                    \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                                    Momentum (flux form):

                                    \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                                    Potential temperature:

                                    \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                                    Total Energy (possibly replace potential temperature equation with total energy conservation):

                                    \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                                    where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                                    Tracer transport:

                                    \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                                    Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                                    \[\rho\tau = -2\rho\nu\nabla u.\]

                                    Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                                    \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                                    with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                                    Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                                    Consider components of the viscous stress tensor in three dimensions:

                                    \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                                    Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                                    \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                                    Which can be interpreted as, for horizontal-momentum:

                                    1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                    2. Vertical divergence of vertical gradients of cell-centered variables $u$
                                    3. Vertical divergence of horizontal gradients of cell-face variables $w$

                                    and for vertical-momentum, as:

                                    1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                    2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                                    3. Vertical divergence of vertical gradients of cell-face variables $w$.

                                    Model Code

                                    push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                                    +
                                    +using Test
                                    +using StaticArrays, IntervalSets, LinearAlgebra, UnPack, SciMLBase
                                    +import ClimaTimeSteppers as CTS
                                    +
                                    +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                                    +using ClimaCore.Geometry
                                    +using ClimaCore.Utilities: PlusHalf
                                    +
                                    +using Logging: global_logger
                                    +using TerminalLoggers: TerminalLogger
                                    +global_logger(TerminalLogger())
                                    +
                                    +using ClimaCoupler
                                    +
                                    +# set up function space
                                    +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                                    +    FT = Float64
                                    +    vertdomain = Domains.IntervalDomain(
                                    +        Geometry.ZPoint{FT}(zlim[1]),
                                    +        Geometry.ZPoint{FT}(zlim[2]);
                                    +        boundary_tags = (:bottom, :top),
                                    +    )
                                    +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                                    +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                                    +
                                    +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                    +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                                    +    horztopology = Topologies.IntervalTopology(horzmesh)
                                    +
                                    +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                                    +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                                    +
                                    +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                                    +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                                    +    return (hv_center_space, hv_face_space)
                                    +end
                                    +
                                    +function pressure(ρθ)
                                    +    if ρθ >= 0
                                    +        return MSLP * (R_d * ρθ / MSLP)^γ
                                    +    else
                                    +        return NaN
                                    +    end
                                    +end
                                    +
                                    +Φ(z) = grav * z
                                    +
                                    +abstract type BCtag end
                                    +struct ZeroFlux <: BCtag end
                                    +
                                    +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                    +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                    +
                                    +function init_sea_breeze_2d(x, z)
                                    +    θ₀ = atm_T_ini
                                    +    cp_d = C_p
                                    +    cv_d = C_v
                                    +    p₀ = MSLP
                                    +    g = grav
                                    +    γ = cp_d / cv_d
                                    +    z_c = 100.0
                                    +    θ_b = atm_T_ini
                                    +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                                    +    θ = θ_b + θ_p # potential temperature
                                    +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                                    +    T = π_exn * θ # temperature
                                    +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                                    +    ρ = p / R_d / T # density
                                    +    ρθ = ρ * θ # potential temperature density
                                    +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                                    +end
                                    +
                                    +function atm_rhs!(dY, Y, params, t)
                                    +    ρw = Y.ρw
                                    +    Yc = Y.Yc
                                    +    dYc = dY.Yc
                                    +    dρw = dY.ρw
                                    +
                                    +    center_coords = Fields.coordinate_field(axes(Yc))
                                    +
                                    +    # spectral horizontal operators
                                    +    hdiv = Operators.Divergence()
                                    +    hgrad = Operators.Gradient()
                                    +    hwdiv = Operators.WeakDivergence()
                                    +    hwgrad = Operators.WeakGradient()
                                    +
                                    +    # vertical FD operators with BC's
                                    +    vdivf2c = Operators.DivergenceF2C(
                                    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                    +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                    +    )
                                    +    vvdivc2f = Operators.DivergenceC2F(
                                    +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                                    +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                                    +    )
                                    +    uvdivf2c = Operators.DivergenceF2C(
                                    +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                    +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                    +    )
                                    +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                    +    Ic = Operators.InterpolateF2C()
                                    +    ∂ = Operators.DivergenceF2C(
                                    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                    +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                    +    )
                                    +    ∂f = Operators.GradientC2F()
                                    +    ∂c = Operators.GradientF2C()
                                    +    B = Operators.SetBoundaryOperator(
                                    +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                    +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                    +    )
                                    +
                                    +    ∇_z_ρθ = Operators.DivergenceF2C(
                                    +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                                    +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                                    +    )
                                    +
                                    +    uₕ = @. Yc.ρuₕ / Yc.ρ
                                    +    w = @. ρw / If(Yc.ρ)
                                    +    wc = @. Ic(ρw) / Yc.ρ
                                    +    p = @. pressure(Yc.ρθ)
                                    +    θ = @. Yc.ρθ / Yc.ρ
                                    +    Yfρ = @. If(Yc.ρ)
                                    +
                                    +    ### HYPERVISCOSITY
                                    +    # 1) compute hyperviscosity coefficients
                                    +    @. dYc.ρθ = hwdiv(hgrad(θ))
                                    +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                                    +    @. dρw = hwdiv(hgrad(w))
                                    +    Spaces.weighted_dss!(dYc)
                                    +    Spaces.weighted_dss!(dρw)
                                    +
                                    +    κ₄ = 0.0 # m^4/s
                                    +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                                    +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                                    +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                                    +
                                    +    # density
                                    +    @. dYc.ρ = -∂(ρw)
                                    +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                                    +
                                    +    # potential temperature
                                    +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                                    +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                                    +
                                    +    # horizontal momentum
                                    +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                                    +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                                    +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                                    +
                                    +    # vertical momentum
                                    +    @. dρw +=
                                    +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                                    +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                                    +    @. dρw -= hdiv(uₕf ⊗ ρw)
                                    +
                                    +    # DIFFUSION
                                    +    κ₂ = 5.0 # m^2/s
                                    +    #  1a) horizontal div of horizontal grad of horiz momentun
                                    +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                                    +    #  1b) vertical div of vertical grad of horiz momentun
                                    +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                                    +
                                    +    #  1c) horizontal div of horizontal grad of vert momentum
                                    +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                                    +    #  1d) vertical div of vertical grad of vert momentun
                                    +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                                    +
                                    +    #  2a) horizontal div of horizontal grad of potential temperature
                                    +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                                    +    #  2b) vertical div of vertial grad of potential temperature
                                    +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                                    +
                                    +    Spaces.weighted_dss!(dYc)
                                    +    Spaces.weighted_dss!(dρw)
                                    +    return dY
                                    +end
                                    +
                                    +# init simulation
                                    +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                                    +
                                    +    # construct domain spaces
                                    +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                                    +    center_coords = Fields.coordinate_field(hv_center_space)
                                    +    face_coords = Fields.coordinate_field(hv_face_space)
                                    +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                                    +
                                    +    # initialize prognostic variables
                                    +    Yc = map(center_coords) do coord
                                    +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                                    +        sea_breeze
                                    +    end
                                    +
                                    +    ρw = map(face_coords) do coord
                                    +        Geometry.WVector(0.0)
                                    +    end
                                    +
                                    +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                                    +
                                    +    # select boundary conditions
                                    +    if bc === nothing
                                    +        bc = (
                                    +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                                    +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                                    +        )
                                    +    end
                                    +
                                    +    return Y, bc, domain
                                    +end
                                    +
                                    +function atm_run!(Y, bc, domain)
                                    +    dYdt = similar(Y)
                                    +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                                    +    atm_rhs!(dYdt, Y, params, 0.0)
                                    +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                                    +    Δt = 0.025
                                    +    sol = solve(prob, CTS.SSP333(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                                    +end

                                    Coupled Atmos Wrappers

                                    # Atmos Simulation - later to live in ClimaAtmos
                                    +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                                    +    integrator::Any
                                    +end
                                    +
                                    +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                    +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                                    +
                                    +    atm_integ = init(
                                    +        atm_prob,
                                    +        timestepper,
                                    +        dt = dt,
                                    +        saveat = saveat,
                                    +        progress = true,
                                    +        progress_message = (dt, u, params, t) -> t,
                                    +        callback = callbacks,
                                    +    )
                                    +
                                    +    return AtmosSimulation(atm_integ)
                                    +end
                                    +
                                    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                                    +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                                    +end
                                    +
                                    +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                                    +    # reset flux accumulator
                                    +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                                    +
                                    +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                                    +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                                    +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                                    +end

                                    Coupled Boundary Conditions

                                    The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                                    To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                                    struct CoupledFlux <: BCtag end
                                    +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                                    +    # flux calculation
                                    +    Yc = Y.Yc
                                    +    uₕ = Yc.ρuₕ ./ Yc.ρ
                                    +    ρw = Y.ρw
                                    +    If2c = Operators.InterpolateF2C()
                                    +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                    +    w = If2c.(ρw) ./ Yc.ρ
                                    +    cuv = @. Geometry.UWVector(uₕ)
                                    +    windspeed = @. norm(cuv)
                                    +    windspeed_boundary = Fields.level(windspeed, 1)
                                    +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                                    +    ρ_boundary = Fields.level(Yc.ρ, 1)
                                    +
                                    +    # build atmos face fields on surface boundary space to enable broadcasting
                                    +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                                    +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                                    +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                                    +
                                    +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                                    +    dθ = @. θ_boundary - p.T_sfc
                                    +    heat_flux = @. -λ * dθ
                                    +    @. dY.F_sfc += heat_flux # accumulation
                                    +
                                    +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                                    +end

                                    This page was generated using Literate.jl.

                                    diff --git a/previews/PR430/generated/sea_breeze/land_rhs/index.html b/previews/PR430/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..55f38e7db --- /dev/null +++ b/previews/PR430/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                                    Land Model

                                    Slab Land ODE

                                    For our land component, we solve a simple slab land ODE:

                                    \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                                    • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                                    • and $F_{integ}$ is the integrated surface fluxes in time.

                                    Model Code

                                    function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                                    +    """
                                    +    Slab layer equation
                                    +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                                    +        where
                                    +            F_accumulated = F_integrated / Δt_coupler
                                    +    """
                                    +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                                    +    @unpack T_sfc = du
                                    +
                                    +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                                    +end
                                    +
                                    +# set up domain
                                    +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                    +    FT = Float64
                                    +
                                    +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                    +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                    +    topology = Topologies.IntervalTopology(mesh)
                                    +
                                    +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                    +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                    +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                    +
                                    +    return space
                                    +end
                                    +
                                    +# init simulation
                                    +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                    +
                                    +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                    +    space = hspace_1D((xmin, xmax), npoly, helem)
                                    +    coords = Fields.coordinate_field(space)
                                    +    domain = space
                                    +
                                    +    # initial condition
                                    +    T_sfc = map(coords) do coord
                                    +        T_sfc = 273.0
                                    +    end
                                    +
                                    +    # prognostic variable
                                    +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                    +
                                    +    return Y, domain
                                    +end

                                    Coupled Land Wrappers

                                    # Land Simulation - later to live in ClimaLSM
                                    +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                                    +    integrator::Any
                                    +end
                                    +
                                    +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                    +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                                    +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                    +    return LandSimulation(lnd_integ)
                                    +end
                                    +
                                    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                                    +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                                    +end
                                    +
                                    +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                                    +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                                    +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                                    +end

                                    This page was generated using Literate.jl.

                                    diff --git a/previews/PR430/generated/sea_breeze/ocean_rhs/index.html b/previews/PR430/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..876d8b231 --- /dev/null +++ b/previews/PR430/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                                    Ocean Model

                                    Slab Ocean ODE

                                    For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                                    \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                                    • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                                    • and $F_{integ}$ is the integrated surface fluxes in time.

                                    Model Code

                                    function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                                    +    """
                                    +    Slab layer equation
                                    +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                                    +        where
                                    +            F_accumulated = F_integrated / Δt_coupler
                                    +    """
                                    +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                                    +    @unpack T_sfc = du
                                    +
                                    +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                                    +end
                                    +
                                    +# set up domain
                                    +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                    +    FT = Float64
                                    +
                                    +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                    +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                    +    topology = Topologies.IntervalTopology(mesh)
                                    +
                                    +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                    +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                    +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                    +
                                    +    return space
                                    +end
                                    +
                                    +# init simulation
                                    +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                    +
                                    +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                    +    space = hspace_1D((xmin, xmax), npoly, helem)
                                    +    coords = Fields.coordinate_field(space)
                                    +    domain = space
                                    +
                                    +    # initial condition
                                    +    T_sfc = map(coords) do coord
                                    +        T_sfc = 267.0
                                    +    end
                                    +
                                    +    # prognostic variable
                                    +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                    +
                                    +    return Y, domain
                                    +end

                                    Coupled Ocean Wrappers

                                    # Ocean Simulation - Later to live in Oceananigans
                                    +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                                    +    integrator::Any
                                    +end
                                    +
                                    +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                    +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                                    +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                    +    return OceanSimulation(ocn_integ)
                                    +end
                                    +
                                    +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                                    +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                                    +end
                                    +
                                    +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                                    +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                                    +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                                    +end

                                    This page was generated using Literate.jl.

                                    diff --git a/previews/PR430/generated/sea_breeze/run/index.html b/previews/PR430/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..2ad5e1462 --- /dev/null +++ b/previews/PR430/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                                    Coupled Sea Breeze

                                    Overview

                                    This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                                    In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                                    import ClimaCore.Spaces as Spaces

                                    Model Initialization

                                    Component Models

                                    Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                                    In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                                    include("atmos_rhs.jl")
                                    +include("ocean_rhs.jl")
                                    +include("land_rhs.jl")
                                    +
                                    +# model parameters
                                    +const atm_T_ini = FT(270.0)
                                    +const MSLP = FT(1e5)
                                    +const grav = FT(9.8)
                                    +const R_d = FT(287.058)
                                    +const γ = FT(1.4)
                                    +const C_p = FT(R_d * γ / (γ - 1))
                                    +const C_v = FT(R_d / (γ - 1))
                                    +const R_m = R_d
                                    +cpl_parameters = (
                                    +    # atmos parameters
                                    +    atm_μ = FT(0.0001), # diffusion coefficient
                                    +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                                    +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                                    +    MSLP = MSLP, # mean sea level pressure
                                    +    grav = grav, # gravitational constant
                                    +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                                    +    γ = γ, # heat capacity ratio
                                    +    C_p = C_p, # heat capacity at constant pressure
                                    +    C_v = C_v, # heat capacity at constant volume
                                    +    R_m = R_m, # moist R, assumed to be dry
                                    +    # land slab parameters
                                    +    lnd_h = FT(0.5), # depth of slab layer [m]
                                    +    lnd_ρ = FT(1500), # density [kg m^-3]
                                    +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                                    +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                    +    # ocean slab parameters
                                    +    ocn_h = FT(0.5), # depth of slab layer [m]
                                    +    ocn_ρ = FT(1025), # density [kg m^-3]
                                    +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                                    +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                    +    # coupling parameters
                                    +    C_H = FT(0.0015),
                                    +)
                                    +
                                    +# DSS callback
                                    +function make_dss_func()
                                    +    function _dss!(x::Fields.Field)
                                    +        Spaces.weighted_dss!(x)
                                    +    end
                                    +    function _dss!(::Any)
                                    +        nothing
                                    +    end
                                    +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                                    +    return dss_func
                                    +end
                                    +dss_func = make_dss_func()
                                    +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                                    Initialization

                                    The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                                    Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                                    @info "Init Models and Maps"
                                    +
                                    +t_start, t_end = (0.0, 1.0)
                                    +Δt_coupled = 0.1
                                    +saveat = 1e2
                                    +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                                    +
                                    +# Initialize Models
                                    +atm_Y_default, atm_bc, atm_domain = atm_init(
                                    +    xmin = -500,
                                    +    xmax = 500,
                                    +    zmin = 0,
                                    +    zmax = 1000,
                                    +    npoly = 4,
                                    +    helem = 20,
                                    +    velem = 20,
                                    +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                                    +)
                                    +
                                    +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                                    +
                                    +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                                    Remapping

                                    Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                                    atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                                    +
                                    +maps = (
                                    +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                                    +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                                    +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                                    +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                                    +)
                                    +
                                    +# initialize coupling fields
                                    +atm_T_sfc =
                                    +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                                    +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                                    +atm_F_sfc = Fields.zeros(atm_boundary)
                                    +ocn_F_sfc = Fields.zeros(ocn_domain)
                                    +lnd_F_sfc = Fields.zeros(lnd_domain)

                                    Simulations

                                    Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                                    atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                                    +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                                    +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, CTS.SSPRK33(), atm_p, saveat, dss_callback)
                                    +
                                    +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                                    +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                                    +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, CTS.SSPRK33(), ocn_p, saveat)
                                    +
                                    +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                                    +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                                    +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, CTS.SSPRK33(), lnd_p, saveat)

                                    Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                                    struct AOLCoupledSimulation{
                                    +    A <: AtmosSimulation,
                                    +    O <: OceanSimulation,
                                    +    L <: LandSimulation,
                                    +    C <: ClimaCoupler.CouplerState,
                                    +} <: ClimaCoupler.AbstractCoupledSimulation
                                    +    # Atmosphere Simulation
                                    +    atmos::A
                                    +    # Ocean Simulation
                                    +    ocean::O
                                    +    # Land Simulation
                                    +    land::L
                                    +    # Coupler storage
                                    +    coupler::C
                                    +end

                                    step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using SciMLBase integrators and can share the same step! method.

                                    function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                                    +    Δt = t_stop - sim.integrator.t
                                    +    step!(sim.integrator, Δt, true)
                                    +end

                                    The Coupler

                                    The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                                    After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                                    Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                                    Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                                    \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                                    where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                                    coupler = CouplerState(Δt_coupled)
                                    +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                                    +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                                    +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                                    +for (name, map) in pairs(maps)
                                    +    coupler_add_map!(coupler, name, map)
                                    +end
                                    +
                                    +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                                    Coupled Time Integration

                                    Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                                    Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                                    Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                                    \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                                    where $F_{integ}$ has units of $J m^{-2}$.

                                    function cpl_run(simulation::AOLCoupledSimulation)
                                    +    @info "Run model"
                                    +    @unpack atmos, ocean, land, coupler = simulation
                                    +    Δt_coupled = coupler.Δt_coupled
                                    +    # coupler stepping
                                    +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                                    +        # Atmos
                                    +        coupler_pull!(atmos, coupler)
                                    +        step!(atmos, t)
                                    +        coupler_push!(coupler, atmos)
                                    +
                                    +        # Ocean
                                    +        coupler_pull!(ocean, coupler)
                                    +        step!(ocean, t)
                                    +        coupler_push!(coupler, ocean)
                                    +
                                    +        # Land
                                    +        coupler_pull!(land, coupler)
                                    +        step!(land, t)
                                    +        coupler_push!(coupler, land)
                                    +    end
                                    +    @info "Simulation Complete"
                                    +end
                                    +
                                    +# Run simulation
                                    +cpl_run(sim)

                                    References


                                    This page was generated using Literate.jl.

                                    diff --git a/previews/PR430/images/canvas_coupler.png b/previews/PR430/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                                    F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR430/images/cplsetup.png b/previews/PR430/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR430/index.html b/previews/PR430/index.html new file mode 100644 index 000000000..0aa6ce1c1 --- /dev/null +++ b/previews/PR430/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                    ClimaCoupler.jl

                                    Coupling CliMA Models

                                    ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                    • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                    • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                    The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                    Coupler Scheme
                                    ClimaCoupler.jl allows for independent development of interchangeable component models.
                                    diff --git a/previews/PR430/interfacer/index.html b/previews/PR430/interfacer/index.html new file mode 100644 index 000000000..82c7a6be2 --- /dev/null +++ b/previews/PR430/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                                    Interfacer

                                    This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                                    Coupled Simulation

                                    • CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                                    Component model simulations

                                    • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                                    • the current version requires that there is:
                                      • one AtmosModelSimulation
                                      • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                                        • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                                    Prescribed conditions

                                    • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                                    get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                                    +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                                    +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                                    +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                                    +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                                    +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                                    with the corresponding update_field! functions

                                    function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                                    +    sim.cache.area_fraction .= field
                                    +end
                                    +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                                    +    sim.cache.T_sfc .= field
                                    +end

                                    Interfacer API

                                    ClimaCoupler.Interfacer.get_fieldFunction
                                    get_field(::SurfaceStub, ::Val)

                                    A getter function, that should not allocate. If undefined, it returns a descriptive error.

                                    source
                                    get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                                    Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                                    source
                                    ClimaCoupler.Interfacer.update_field!Function
                                    update_field!(::ComponentModelSimulation, ::Val, _...)

                                    No update in unspecified in the particular component model simulation.

                                    source
                                    update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                                    Updates the specified value in the cache of SurfaceStub.

                                    source
                                    diff --git a/previews/PR430/performance/index.html b/previews/PR430/performance/index.html new file mode 100644 index 000000000..e4404d1c0 --- /dev/null +++ b/previews/PR430/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                                    Performance Analysis Tools

                                    ClimaCoupler.jl provides basic tools for analyzing performance:

                                    1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                                    2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                                    Flame Graph Interpretation

                                    • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                                    • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                                    canvas

                                    • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                                    • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                                    References

                                    diff --git a/previews/PR430/postprocessor/index.html b/previews/PR430/postprocessor/index.html new file mode 100644 index 000000000..e89883843 --- /dev/null +++ b/previews/PR430/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                                    PostProcessor

                                    This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                                    Diagnostics API

                                    ClimaCoupler.PostProcessor.postprocessFunction
                                    postprocess(
                                    +    name::Symbol,
                                    +    raw_data::Union{Fields.Field, Array},
                                    +    p_methods::Tuple;
                                    +    lev_slice = 1,
                                    +    datafile_latlon = nothing,
                                    +    nlat = 90,
                                    +    nlon = 180,
                                    +)

                                    Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                                    Arguments:

                                    • name: [Symbol] variable name
                                    • raw_data: [Union{Fields.Field, Array}] variable data
                                    • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                                    • lev_slice: [Int] level index along which the :horizontal_slice is applied
                                    • datafile_latlon: [String] name of the regrid file
                                    • nlat: [Int] number of latitudes of the regridded array
                                    • nlon: [Symbol] number of longitudes of the regridded array
                                    source
                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                                    Missing docstring.

                                    Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                                    ClimaCoupler.PostProcessor.DataPackageType
                                    DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                                    A container for storing the tyoe, name, data and coordinates of a variable.

                                    source

                                    Diagnostics Internal Functions

                                    diff --git a/previews/PR430/regridder/index.html b/previews/PR430/regridder/index.html new file mode 100644 index 000000000..670a457c3 --- /dev/null +++ b/previews/PR430/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                                    Regridder

                                    This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                                    Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                                    Regridder API

                                    ClimaCoupler.Regridder.write_to_hdf5Function
                                    write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                                    Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                                    Arguments

                                    • REGRID_DIR: [String] directory to save output files in.
                                    • hd_outfile_root: [String] root of the output file name.
                                    • time: [Dates.DateTime] the timestamp of the data being written.
                                    • field: [Fields.Field] object to be written.
                                    • varname: [String] variable name of data.
                                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                    source
                                    ClimaCoupler.Regridder.read_from_hdf5Function
                                    read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                                    Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                                    Arguments

                                    • REGRID_DIR: [String] directory to save output files in.
                                    • hd_outfile_root: [String] root of the output file name.
                                    • time: [Dates.DateTime] the timestamp of the data being written.
                                    • varname: [String] variable name of data.
                                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                                    Returns

                                    • Field or FieldVector
                                    source
                                    ClimaCoupler.Regridder.dummmy_remap!Function
                                    dummmy_remap!(target, source)

                                    Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                                    Arguments

                                    • target: [Fields.Field] destination of remapping.
                                    • source: [Fields.Field] source of remapping.
                                    source
                                    ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                                    remap_field_cgll_to_rll(
                                    +    name,
                                    +    field::Fields.Field,
                                    +    remap_tmpdir,
                                    +    datafile_rll;
                                    +    nlat = 90,
                                    +    nlon = 180
                                    +)

                                    Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                                    Arguments

                                    • name: [Symbol] variable name.
                                    • field: [Fields.Field] data to be remapped.
                                    • remap_tmpdir: [String] directory used for remapping.
                                    • datafile_rll: [String] filename of remapped data output.
                                    source
                                    ClimaCoupler.Regridder.land_fractionFunction
                                    function land_fraction(
                                    +    FT,
                                    +    REGRID_DIR,
                                    +    comms_ctx::ClimaComms.AbstractCommsContext,
                                    +    infile,
                                    +    varname,
                                    +    boundary_space;
                                    +    outfile_root = "land_sea_cgll",
                                    +    mono = false,
                                    +    threshold = 0.7,
                                    +)

                                    Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                                    See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                                    Arguments

                                    • FT: [DataType] Float type
                                    • REGRID_DIR: [String] directory to save output files in.
                                    • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                    • infile: [String] filename containing input data.
                                    • varname: [Symbol] variable name.
                                    • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                                    • outfile_root: [String] root for output file name.
                                    • mono: [Bool] flag for monotone remapping.
                                    • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                                    Returns

                                    • Fields.Field
                                    source
                                    ClimaCoupler.Regridder.update_surface_fractions!Function
                                    update_surface_fractions!(cs::CoupledSimulation)

                                    Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                                    Arguments

                                    • cs: [CoupledSimulation] containing area fraction information.
                                    source
                                    ClimaCoupler.Regridder.combine_surfaces!Function
                                    combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                                    Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                                    Arguments

                                    • combined_field: [Fields.Field] output object containing weighted values.
                                    • sims: [NamedTuple] containing simulations .
                                    • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                                    Example

                                    • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                                    source

                                    Regridder Internal Functions

                                    ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                                    reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                                    Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                                    Arguments

                                    • field: [Fields.Field] object populated with the input array.
                                    • in_array: [Array] input used to fill field.
                                    • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                                    source
                                    ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                                    hdwrite_regridfile_rll_to_cgll(
                                    +    FT,
                                    +    REGRID_DIR,
                                    +    datafile_rll,
                                    +    varname,
                                    +    space;
                                    +    hd_outfile_root = "data_cgll",
                                    +    mono = false,
                                    +)

                                    Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                                    Arguments

                                    • FT: [DataType] Float type.
                                    • REGRID_DIR: [String] directory to save output files in.
                                    • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                                    • varname: [String] the name of the variable to be remapped.
                                    • space: [Spaces.AbstractSpace] the space to which we are mapping.
                                    • hd_outfile_root: [String] root of the output file name.
                                    • mono: [Bool] flag to specify monotone remapping.
                                    source
                                    ClimaCoupler.Regridder.write_datafile_ccFunction
                                    write_datafile_cc(datafile_cc, field, name)

                                    Write the data stored in field to an NCDataset file datafile_cc.

                                    Arguments

                                    • datafile_cc: [String] filename of output file.
                                    • field: [Fields.Field] to be written to file.
                                    • name: [Symbol] variable name.
                                    source
                                    ClimaCoupler.Regridder.binary_maskFunction
                                    binary_mask(var::FT; threshold = 0.5)

                                    Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                                    Arguments

                                    • var: [FT] value to be converted.
                                    • threshold: [Float] cutoff value for conversions.
                                    source
                                    diff --git a/previews/PR430/search/index.html b/previews/PR430/search/index.html new file mode 100644 index 000000000..a34096559 --- /dev/null +++ b/previews/PR430/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                    Loading search...

                                      diff --git a/previews/PR430/search_index.js b/previews/PR430/search_index.js new file mode 100644 index 000000000..6035a9f68 --- /dev/null +++ b/previews/PR430/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.float_type","page":"Utilities","title":"ClimaCoupler.Utilities.float_type","text":"float_type(::CoupledSimulation)\n\nReturn the floating point type backing T: T can either be an object or a type.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs, currently in Utilities - TODO) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.8.1 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: ODEProblem, solve, step!, init, reinit!\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\nif !(@isdefined parsed_args)\n include(\"cli_options.jl\")\n parsed_args = parse_commandline(argparse_settings())\nend\n\nif isinteractive()\n parsed_args[\"surface_setup\"] = \"PrescribedSurface\" #hide # necessary to stop Atmos from calculating its own surface fluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"parsedargs[\"dtsave_restart\"] = \"5days\" #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" parsed_args[\"job_id\"] = \"interactive_debug_run\"\n parsed_args[\"monthly_checkpoint\"] = true\nend\n\n# read in some parsed command line arguments\nmode_name = parsed_args[\"mode_name\"]\nrun_name = parsed_args[\"run_name\"]\nenergy_check = parsed_args[\"energy_check\"]\nif !(@isdefined FT)\n const FT = parsed_args[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nend\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(parsed_args[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(parsed_args[\"dt_cpl\"])\nsaveat = time_to_seconds(parsed_args[\"dt_save_to_sol\"])\ndate0 = date = DateTime(parsed_args[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = parsed_args[\"mono_surface\"]\nmonthly_checkpoint = parsed_args[\"monthly_checkpoint\"]\nrestart_dir = parsed_args[\"restart_dir\"]\nrestart_t = Int(parsed_args[\"restart_t\"])\n\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: CoupledSimulation, float_type, swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator:\n PartitionedStateFluxes,\n CombinedStateFluxes,\n combined_turbulent_fluxes!,\n MoninObukhovScheme,\n partitioned_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\npkg_dir = pkgdir(ClimaCoupler)\nCOUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\n@info parsed_args\n\n# get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration\ninclude(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")\n\n# user-specified diagnostics\ninclude(\"user_io/user_diagnostics.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\ninclude(\"components/atmosphere/climaatmos_init.jl\")\natmos_sim = atmos_init(FT, parsed_args);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D boundary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)\n\n# init surface (slab) model components\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/slab_seaice_init.jl\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n parsed_args[\"config\"],\n parsed_args[\"albedo_type\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n date_ref = date0,\n t_start = FT(0),\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_turb_ρτxz,\n :F_turb_ρτyz,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot, :q_liq_ice),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name == \"slabplanet\" && !ClimaAtmos.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks =\n (; energy = EnergyConservationCheck([], [], [], [], [], []), water = WaterConservationCheck([], [], [], []))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n parsed_args,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = nothing\nif parsed_args[\"turb_flux_partition\"] == \"PartitionedStateFluxes\"\n turbulent_fluxes = PartitionedStateFluxes()\nelseif parsed_args[\"turb_flux_partition\"] == \"CombinedStateFluxes\"\n turbulent_fluxes = CombinedStateFluxes()\nelse\n error(\"turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes\")\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each surface component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if turbulent_fluxes isa CombinedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate fluxes using combined surface states on the atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts\nelseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surface models and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n ClimaAtmos.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n update_field!(\n ocean_sim,\n Val(:surface_temperature),\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info),\n )\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info)\n update_field!(ice_sim, Val(:area_fraction), get_ice_fraction.(SIC_init, mono_surface)) # TODO: change to SIC\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs, get_slab_energy, get_land_energy) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\n if turbulent_fluxes isa CombinedStateFluxes\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)\n elseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surfaces and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n ClimaAtmos.SurfaceConditions.update_surface_conditions!(\n atmos_sim.integrator.u,\n new_p,\n atmos_sim.integrator.t,\n ) # to set T_sfc (but SF calculation not necessary - CA modification)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\n end\n\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent\n\n # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && parsed_args[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_ARTIFACTS_DIR)\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa_fluxes = (:regrid, :horizontal_slice),\n precipitation_rate = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n tubulent_energy_fluxes = (:regrid, :horizontal_slice),\n q_liq_ice = (:regrid, :zonal_mean),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 30), units = \"g/kg\"),\n toa_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n precipitation_rate = (clims = (0, 1e-4), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n tubulent_energy_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n q_liq_ice = (; clims = (0, 10), units = \"g/kg\"),\n )\n amip_data = amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa_fluxes = (:horizontal_slice,),\n precipitation_rate = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n tubulent_energy_fluxes = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_data = ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, CTS.SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, CTS.SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, CTS.SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using SciMLBase integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedStateFluxes\n ClimaCoupler.FluxCalculator.CombinedStateFluxes\n ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedStateFluxes","text":"PartitionedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedStateFluxes","text":"CombinedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","text":"combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","text":"atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractCheck\n\nStruct of type AbstractCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::CoupledSimulation, get_slab_energy, get_land_energy)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim,\n get_slab_energy,\n get_land_energy,\n )\n\ncomputes the total energy, ∫ ρe dV, of the various components of the coupled simulations, and updates cc with the values.\n\nTODO: move get_slab_energy and get_land_energy to their respective sims upon optimization refactor.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim,\nget_slab_energy,\nget_land_energy,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\nplot_global_conservation(\n cc::WaterConservationCheck,\n coupler_sim::CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (water, rho q_tot):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack, SciMLBase\nimport ClimaTimeSteppers as CTS\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, CTS.SSP333(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR430/siteinfo.js b/previews/PR430/siteinfo.js new file mode 100644 index 000000000..aff5bad88 --- /dev/null +++ b/previews/PR430/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR430"; diff --git a/previews/PR430/testhelper/index.html b/previews/PR430/testhelper/index.html new file mode 100644 index 000000000..1572b4c96 --- /dev/null +++ b/previews/PR430/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                                      TestHelper

                                      This module defines helper functions, objects, and constants to be used by various files in the test folder.

                                      TestHelper API

                                      ClimaCoupler.TestHelper.create_spaceFunction
                                      create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                                      +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                                      Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                                      Arguments

                                      • FT: [DataType] Float type
                                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                      • R: [FT] radius of the sphere underlying space.
                                      • ne: [Integer] number of elements used in the space's mesh.
                                      • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                                      • nz: [Integer] number of vertical elements
                                      source
                                      ClimaCoupler.TestHelper.gen_ncdataFunction
                                      gen_ncdata(FT, path, varname, val)

                                      Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                                      Arguments

                                      • FT: [DataType] Float type.
                                      • path: [String] location to store output datafile.
                                      • varname: [Symbol] variable name.
                                      • val: [FT] value to store as varname at all indices.
                                      source
                                      diff --git a/previews/PR430/timemanager/index.html b/previews/PR430/timemanager/index.html new file mode 100644 index 000000000..1d1a6bd3c --- /dev/null +++ b/previews/PR430/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                                      TimeManager

                                      This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                                      TimeManager API

                                      ClimaCoupler.TimeManager.current_dateFunction
                                      current_date(cs::CoupledSimulation, t::Int)

                                      Return the model date at the current timestep.

                                      Arguments

                                      • cs: [CoupledSimulation] containing info about the simulation
                                      • t: [Real] number of seconds since simulation began
                                      source
                                      ClimaCoupler.TimeManager.trigger_callbackFunction
                                      trigger_callback(cs, ::Monthly)

                                      Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                                      Arguments

                                      • cs: [CoupledSimulation] containing info about the simulation
                                      source
                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                                      diff --git a/previews/PR430/timestepping/index.html b/previews/PR430/timestepping/index.html new file mode 100644 index 000000000..02301de72 --- /dev/null +++ b/previews/PR430/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                      Coupled Simulations & Timestepping

                                      ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                      Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                      • step!: advances the component model in time
                                      • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                      • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                      ClimaCoupler.run!Function
                                      run!(::CoupledSimulation)

                                      A simple outer timestepping loop for coupled system runs.

                                      This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                      source
                                      ClimaCoupler.step!Function
                                      step!(sim, dt)

                                      Advances a simulation sim by dt.

                                      Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                      source
                                      ClimaCoupler.coupler_push!Function
                                      coupler_push!(coupler::CouplerState, model)

                                      Update coupler with fields retrieved from the coupler.

                                      coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                      source
                                      ClimaCoupler.coupler_pull!Function
                                      coupler_pull!(model, coupler::CouplerState)

                                      Update model with fields retrieved from the coupler.

                                      coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                      source
                                      diff --git a/previews/PR430/utilities/index.html b/previews/PR430/utilities/index.html new file mode 100644 index 000000000..3b1c6930c --- /dev/null +++ b/previews/PR430/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                                      Utilities

                                      This module contains functions, objects, and constants used by various modules in the coupler.

                                      Utilities API

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                                      ClimaCoupler.Utilities.swap_space!Function
                                      swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                                      Remap the values of a field onto a new space.

                                      Arguments

                                      • field_in: [Fields.Field] to be remapped to new space.
                                      • field_out: [Fields.Field] to remap field_in to.
                                      source
                                      diff --git a/previews/PR456/assets/documenter.js b/previews/PR456/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR456/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR456/assets/logo.svg b/previews/PR456/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR456/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR456/assets/search.js b/previews/PR456/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR456/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                    • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR456/assets/themes/documenter-dark.css b/previews/PR456/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR456/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR456/assets/themes/documenter-light.css b/previews/PR456/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR456/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR456/assets/themeswap.js b/previews/PR456/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR456/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR456/assets/warner.js b/previews/PR456/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR456/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                                      Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR456/bcreader/index.html b/previews/PR456/bcreader/index.html new file mode 100644 index 000000000..0f19a2e44 --- /dev/null +++ b/previews/PR456/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                                      BCReader

                                      This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                                      BCReader API

                                      ClimaCoupler.BCReader.BCFileInfoType
                                      BCFileInfo

                                      Stores information specific to each boundary condition from a file and each variable.

                                      Inputs:

                                      • bcfile_dir::b # directory of the BC file
                                      • comms_ctx::X # communication context used for MPI
                                      • hdoutfileroot::S # filename root for regridded data
                                      • varname::V # name of the variable
                                      • all_dates::D # vector of all dates contained in the original data file
                                      • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                                      • scaling_function::O # function that scales, offsets or transforms the raw variable
                                      • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                                      • segment_idx::Vector{Int} # index of the monthly data in the file
                                      • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                                      • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                                      • interpolate_daily::Bool # switch to trigger daily interpolation
                                      source
                                      ClimaCoupler.BCReader.bcfile_info_initFunction
                                      bcfile_info_init(
                                      +    FT,
                                      +    bcfile_dir,
                                      +    datafile_rll,
                                      +    varname,
                                      +    boundary_space,
                                      +    comms_ctx;
                                      +    interpolate_daily = false,
                                      +    segment_idx0 = nothing,
                                      +    scaling_function = no_scaling,
                                      +    land_fraction = nothing,
                                      +    date0 = nothing,
                                      +    mono = true,
                                      +)

                                      Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                                      Arguments

                                      • FT: [DataType] Float type.
                                      • bcfile_dir: [String] directory the BC file is stored in.
                                      • datafile_rll: [String] file containing data to regrid.
                                      • varname: [String] name of the variable to be regridded.
                                      • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                      • interpolate_daily: [Bool] switch to trigger daily interpolation.
                                      • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                                      • scaling function: [Function] scales, offsets or transforms varname.
                                      • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                                      • date0: [Dates.DateTime] start date of the file data.
                                      • mono: [Bool] flag for monotone remapping of datafile_rll.

                                      Returns

                                      • BCFileInfo
                                      source
                                      ClimaCoupler.BCReader.update_midmonth_data!Function
                                      update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                                      Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                                      Arguments

                                      • date: [Dates.DateTime] start date for data.
                                      • bcf_info: [BCFileInfo] containing boundary condition data.
                                      source
                                      ClimaCoupler.BCReader.next_date_in_fileFunction
                                      next_date_in_file(bcf_info)

                                      Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                                      Arguments

                                      • bcf_info: [BCFileInfo] containing the date information.

                                      Returns

                                      • Dates.DateTime
                                      source
                                      ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                                      interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                                      Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                                      Arguments

                                      • date: [Dates.DateTime] start date for data.
                                      • bcf_info: [BCFileInfo] contains fields to be interpolated.

                                      Returns

                                      • Fields.field
                                      source

                                      BCReader Internal Functions

                                      ClimaCoupler.BCReader.no_scalingFunction
                                      no_scaling(field, bcf_info)

                                      Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                                      Arguments

                                      • field: [Fields.Field] contains the values to be remapped.
                                      • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                                      source
                                      ClimaCoupler.BCReader.interpolFunction
                                      interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                                      Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                                      Arguments

                                      • f1: [FT] first value to be interpolated (f(t1) = f1).
                                      • f2: [FT] second value to be interpolated.
                                      • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                                      • Δt_t2t1: [FT] time between t1 and t2.

                                      Returns

                                      • FT
                                      source
                                      diff --git a/previews/PR456/checkpointer/index.html b/previews/PR456/checkpointer/index.html new file mode 100644 index 000000000..847e43191 --- /dev/null +++ b/previews/PR456/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

                                      Checkpointer

                                      This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

                                      Checkpointer API

                                      ClimaCoupler.Checkpointer.get_model_state_vectorFunction
                                      get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

                                      Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

                                      source
                                      ClimaCoupler.Checkpointer.restart_model_state!Function
                                      restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

                                      Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

                                      source
                                      ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
                                      checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

                                      Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

                                      source
                                      diff --git a/previews/PR456/conservation/index.html b/previews/PR456/conservation/index.html new file mode 100644 index 000000000..1c8fb7f87 --- /dev/null +++ b/previews/PR456/conservation/index.html @@ -0,0 +1,15 @@ + +Conservation Checks · ClimaCoupler.jl

                                      Conservation Checks

                                      If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                                      Only energy and water are currently implemented.

                                      Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                                      Coupler Object API

                                      ClimaCoupler.ConservationChecker.check_conservation!Function
                                      check_conservation!(coupler_sim::Interfacer.CoupledSimulation; runtime_check = false)

                                      itertes over all specified conservation checks.

                                      source
                                          check_conservation!(
                                      +    cc::EnergyConservationCheck,
                                      +    coupler_sim::Interfacer.CoupledSimulation,
                                      +    runtime_check = false,
                                      +    )

                                      computes the total energy, ∫ ρe dV, of the model components of the coupled simulations and the TOA radiation, and updates cc with these values.

                                      source
                                      check_conservation!(
                                      +cc::WaterConservationCheck,
                                      +coupler_sim::Interfacer.CoupledSimulation,
                                      +runtime_check = false,
                                      +)

                                      computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                                      Note: in the future this should not use push!.

                                      source
                                      ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                                      plot_global_conservation(
                                      +    cc::EnergyConservationCheck,
                                      +    coupler_sim::Interfacer.CoupledSimulation;
                                      +    figname1 = "total_energy.png",
                                      +    figname2 = "total_energy_log.png",
                                      +)

                                      Creates two plots of the globally integrated quantity (energy, $\rho e$):

                                      1. global quantity of each model component as a function of time,

                                      relative to the initial value;

                                      1. fractional change in the sum of all components over time on a log scale.
                                      source
                                      diff --git a/previews/PR456/couplerstate/index.html b/previews/PR456/couplerstate/index.html new file mode 100644 index 000000000..50c4d2db1 --- /dev/null +++ b/previews/PR456/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                      Coupler State

                                      The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                      The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                      Coupler Object API

                                      ClimaCoupler.CouplerStateType
                                      CouplerState()

                                      Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                      A field is exported by one component and imported by one or more other components.

                                      source
                                      ClimaCoupler.coupler_add_field!Function
                                      coupler_add_field!(
                                      +        coupler::CouplerState,
                                      +        fieldname::Symbol,
                                      +        fieldvalue,
                                      +    )

                                      Add a field to the coupler that is accessible with key fieldname.

                                      Arguments

                                      • coupler: coupler object the field is added to.
                                      • fieldname: key to access the field in the coupler.
                                      • fieldvalue: data array of field values.
                                      source
                                      ClimaCoupler.coupler_getFunction
                                      coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                      Retrieve data array corresponding to fieldname.

                                      If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                      source
                                      diff --git a/previews/PR456/diagnostics/index.html b/previews/PR456/diagnostics/index.html new file mode 100644 index 000000000..a2fc77e20 --- /dev/null +++ b/previews/PR456/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                                      Diagnostics

                                      This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                                      Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                                      Diagnostics API

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                                      ClimaCoupler.Diagnostics.get_varFunction
                                      get_var(cs::CoupledSimulation, x)

                                      Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                                      Example:

                                      getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                                      source
                                      ClimaCoupler.Diagnostics.save_diagnosticsFunction
                                      save_diagnostics(cs::CoupledSimulation)
                                      +
                                      +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                                      Saves all entries in dg in separate HDF5 files per variable in output_dir.

                                      source

                                      Diagnostics Internal Functions

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                                      ClimaCoupler.Diagnostics.operationFunction
                                      operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                                      Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                      source
                                      operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                                      Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                      source
                                      ClimaCoupler.Diagnostics.pre_saveFunction
                                      pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                                      Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                                      source
                                      pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                                      Collects variables and performs all specified operations before saving the snapshot diagnostics.

                                      source
                                      diff --git a/previews/PR456/fieldexchanger/index.html b/previews/PR456/fieldexchanger/index.html new file mode 100644 index 000000000..14d52fcef --- /dev/null +++ b/previews/PR456/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                                      FieldExchanger

                                      This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                                      The FieldExchanger needs to populate the coupler with

                                      • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                                      • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                                      The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                                      • AtmosModelSimulation: albedo, surface_temperature
                                        • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                                      • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                                      If an update_field! function is not defined for a particular component model, it will be ignored.

                                      Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                                      FieldExchanger API

                                      ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                                      import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                      Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                                      Arguments

                                      • csf: [NamedTuple] containing coupler fields.
                                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                      • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                      source
                                      ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                                      import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                      Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                                      Arguments

                                      • csf: [NamedTuple] containing coupler fields.
                                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                      • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                      source
                                      ClimaCoupler.FieldExchanger.update_model_sims!Function
                                      update_model_sims!(model_sims, csf, turbulent_fluxes)

                                      Iterates update_sim! over all component model simulations saved in cs.model_sims.

                                      Arguments

                                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                      • csf: [NamedTuple] containing coupler fields.
                                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                      source
                                      ClimaCoupler.FieldExchanger.update_sim!Function
                                      update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                                      Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                                      Arguments

                                      • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                                      • csf: [NamedTuple] containing coupler fields.
                                      source
                                      update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                                      Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                                      Arguments

                                      • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                                      • csf: [NamedTuple] containing coupler fields.
                                      source
                                      update_sim!(::SurfaceStub, csf, area_fraction)

                                      The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                                      source
                                      ClimaCoupler.FieldExchanger.step_model_sims!Function
                                      step_model_sims!(model_sims, t)

                                      Iterates step! over all component model simulations saved in cs.model_sims.

                                      Arguments

                                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                      • t: [AbstractFloat] denoting the simulation time.
                                      source

                                      FieldExchanger Internal Functions

                                      CommonSolve.step!Function
                                      step!(::SurfaceStub, t)

                                      The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                                      source
                                      SciMLBase.reinit!Function
                                      reinit!(cs::SurfaceStub)

                                      The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                                      source
                                      diff --git a/previews/PR456/fluxcalculator/index.html b/previews/PR456/fluxcalculator/index.html new file mode 100644 index 000000000..c49dc15b3 --- /dev/null +++ b/previews/PR456/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                                      FluxCalculator

                                      This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                                      Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                                      1. Combined fluxes (called with CombinedStateFluxes())
                                      • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                                      1. Partitioned fluxes (called with PartitionedStateFluxes())
                                      • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.

                                      FluxCalculator API

                                      ClimaCoupler.FluxCalculator.CombinedStateFluxesType
                                      CombinedStateFluxes <: TurbulentFluxPartition

                                      A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                                      source
                                      ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!Function
                                      combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                                      Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                                      Arguments

                                      • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                      • csf: [NamedTuple] containing coupler fields.
                                      • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                      source
                                      ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!Function
                                      atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                                      A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                                      Arguments

                                      • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                                      • csf: [NamedTuple] containing coupler fields.

                                      Example:

                                      function atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                                      +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                                      +end
                                      source
                                      diff --git a/previews/PR456/generated/amip/coupler_driver_modular/index.html b/previews/PR456/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..0c349ae4a --- /dev/null +++ b/previews/PR456/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,515 @@ + +AMIP Driver · ClimaCoupler.jl

                                      AMIP Driver

                                      Overview

                                      AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                                      • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                                      • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                                      For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                                      This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                                      Start Up

                                      Before starting Julia, ensure your environment is properly set up:

                                      module purge
                                      +module load julia/1.9.3 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                                      +
                                      +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                                      +export JUlIA_MPI_BINARY="system"
                                      +export JULIA_HDF5_PATH=""

                                      Next instantiate/build all packages listed in Manifest.toml:

                                      julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                                      +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                                      The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                                      julia --project --threads 8

                                      Initialization

                                      Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                                      import SciMLBase: step!, reinit!
                                      +using OrdinaryDiffEq
                                      +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                                      +using LinearAlgebra
                                      +import Test: @test
                                      +using Dates
                                      +using UnPack
                                      +using Plots
                                      +using Statistics: mean
                                      +import ClimaAtmos as CA
                                      +import YAML
                                      +
                                      +using ClimaCore.Utilities: half, PlusHalf
                                      +using ClimaCore: InputOutput, Fields
                                      +import ClimaCore.Spaces as Spaces
                                      +
                                      +# coupler specific imports
                                      +import ClimaCoupler
                                      +import ClimaCoupler.Regridder
                                      +import ClimaCoupler.Regridder:
                                      +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                                      +import ClimaCoupler.ConservationChecker:
                                      +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                                      +import ClimaCoupler.Utilities: swap_space!
                                      +import ClimaCoupler.BCReader:
                                      +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                                      +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                                      +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                                      +import ClimaCoupler.PostProcessor: postprocess
                                      +
                                      +import ClimaCoupler.Interfacer:
                                      +    CoupledSimulation,
                                      +    float_type,
                                      +    AtmosModelSimulation,
                                      +    SurfaceModelSimulation,
                                      +    SurfaceStub,
                                      +    SeaIceModelSimulation,
                                      +    LandModelSimulation,
                                      +    OceanModelSimulation,
                                      +    get_field,
                                      +    update_field!,
                                      +    update_sim!
                                      +import ClimaCoupler.FluxCalculator:
                                      +    PartitionedStateFluxes,
                                      +    CombinedStateFluxes,
                                      +    combined_turbulent_fluxes!,
                                      +    MoninObukhovScheme,
                                      +    partitioned_turbulent_fluxes!
                                      +import ClimaCoupler.FieldExchanger:
                                      +    import_atmos_fields!,
                                      +    import_combined_surface_fields!,
                                      +    update_sim!,
                                      +    update_model_sims!,
                                      +    reinit_model_sims!,
                                      +    step_model_sims!
                                      +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
                                      +
                                      +# helpers for component models
                                      +include("components/atmosphere/climaatmos_init.jl")
                                      +include("components/land/bucket_init.jl")
                                      +include("components/land/bucket_utils.jl")
                                      +include("components/ocean/slab_ocean_init.jl")
                                      +include("components/ocean/prescr_seaice_init.jl")
                                      +include("components/ocean/eisenman_seaice_init.jl")
                                      +
                                      +# helpers for user-specified IO
                                      +include("user_io/user_diagnostics.jl")
                                      +include("user_io/user_logging.jl")
                                      +
                                      +# coupler defaults
                                      +include("cli_options.jl")
                                      +parsed_args = parse_commandline(argparse_settings())
                                      +
                                      +# setup coupler and model configurations

                                      modify parsed args for fast testing from REPL #hide

                                      pkg_dir = pkgdir(ClimaCoupler)
                                      +if isinteractive()
                                      +    include("user_io/debug_plots.jl")
                                      +    parsed_args["config_file"] =
                                      +        isnothing(parsed_args["config_file"]) ? joinpath(pkg_dir, "config/model_configs/interactive_debug.yml") :
                                      +        parsed_args["config_file"]
                                      +end

                                      read in config dictionary from file, overriding the coupler defaults

                                      config_dict = YAML.load_file(parsed_args["config_file"])
                                      +config_dict = merge(parsed_args, config_dict)

                                      get component model dictionaries

                                      config_dict_atmos = get_atmos_config(config_dict)

                                      merge dictionaries of command line arguments, coupler dictionary and component model dictionaries (if there are common keys, the last dictorionary in the merge arguments takes precedence)

                                      config_dict = merge(config_dict_atmos, config_dict)
                                      +
                                      +# read in some parsed command line arguments
                                      +mode_name = config_dict["mode_name"]
                                      +run_name = config_dict["run_name"]
                                      +energy_check = config_dict["energy_check"]
                                      +const FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                                      +land_sim_name = "bucket"
                                      +t_end = Int(time_to_seconds(config_dict["t_end"]))
                                      +tspan = (Int(0), t_end)
                                      +Δt_cpl = Int(config_dict["dt_cpl"])
                                      +saveat = time_to_seconds(config_dict["dt_save_to_sol"])
                                      +date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd")
                                      +mono_surface = config_dict["mono_surface"]
                                      +monthly_checkpoint = config_dict["monthly_checkpoint"]
                                      +restart_dir = config_dict["restart_dir"]
                                      +restart_t = Int(config_dict["restart_t"])
                                      +
                                      +# I/O directory setup
                                      +if isinteractive()
                                      +    COUPLER_OUTPUT_DIR = joinpath("output", joinpath(mode_name, run_name)) # TempestRemap fails if interactive and paths are too long
                                      +else
                                      +    COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                                      +end
                                      +mkpath(COUPLER_OUTPUT_DIR)
                                      +
                                      +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                                      +mkpath(REGRID_DIR)
                                      +
                                      +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
                                      +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
                                      +
                                      +@info COUPLER_OUTPUT_DIR
                                      +config_dict["print_config_dict"] ? @info(config_dict) : nothing

                                      get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration

                                      include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                                      +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                                      +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                                      +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")

                                      Component Model Initialization

                                      Here we set initial and boundary conditions for each component model.

                                      Atmosphere

                                      This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                                      # init atmos model component
                                      +atmos_sim = atmos_init(FT, config_dict_atmos);
                                      +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                                      We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                                      # init a 2D boundary space at the surface
                                      +boundary_space = atmos_sim.domain.face_space.horizontal_space

                                      init land-sea fraction

                                      land_fraction =
                                      +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)

                                      Land

                                      We use ClimaLSM.jl's bucket model.

                                      land_sim = bucket_init(
                                      +    FT,
                                      +    FT.(tspan),
                                      +    config_dict["land_domain_type"],
                                      +    config_dict["land_albedo_type"],
                                      +    comms_ctx,
                                      +    REGRID_DIR;
                                      +    dt = FT(Δt_cpl),
                                      +    space = boundary_space,
                                      +    saveat = FT(saveat),
                                      +    area_fraction = land_fraction,
                                      +    date_ref = date0,
                                      +    t_start = FT(0),
                                      +)

                                      Ocean and Sea Ice

                                      In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                                      In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                                      @info mode_name
                                      +if mode_name == "amip"
                                      +    @info "AMIP boundary conditions - do not expect energy conservation"
                                      +
                                      +    # ocean
                                      +    SST_info = bcfile_info_init(
                                      +        FT,
                                      +        REGRID_DIR,
                                      +        sst_data,
                                      +        "SST",
                                      +        boundary_space,
                                      +        comms_ctx,
                                      +        interpolate_daily = true,
                                      +        scaling_function = clean_sst, ## convert to Kelvin
                                      +        land_fraction = land_fraction,
                                      +        date0 = date0,
                                      +        mono = mono_surface,
                                      +    )
                                      +
                                      +    update_midmonth_data!(date0, SST_info)
                                      +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                                      +    ocean_sim = SurfaceStub((;
                                      +        T_sfc = SST_init,
                                      +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                      +        z0m = FT(1e-3),
                                      +        z0b = FT(1e-3),
                                      +        beta = FT(1),
                                      +        α = FT(0.06),
                                      +        area_fraction = (FT(1) .- land_fraction),
                                      +        phase = TD.Liquid(),
                                      +        thermo_params = thermo_params,
                                      +    ))
                                      +    # sea ice
                                      +    SIC_info = bcfile_info_init(
                                      +        FT,
                                      +        REGRID_DIR,
                                      +        sic_data,
                                      +        "SEAICE",
                                      +        boundary_space,
                                      +        comms_ctx,
                                      +        interpolate_daily = true,
                                      +        scaling_function = clean_sic, ## convert to fraction
                                      +        land_fraction = land_fraction,
                                      +        date0 = date0,
                                      +        mono = mono_surface,
                                      +    )
                                      +    update_midmonth_data!(date0, SIC_info)
                                      +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                                      +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                                      +    ice_sim = ice_init(
                                      +        FT;
                                      +        tspan = tspan,
                                      +        dt = Δt_cpl,
                                      +        space = boundary_space,
                                      +        saveat = saveat,
                                      +        area_fraction = ice_fraction,
                                      +        thermo_params = thermo_params,
                                      +    )
                                      +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)
                                      +
                                      +elseif mode_name == "slabplanet"
                                      +    # ocean
                                      +    ocean_sim = ocean_init(
                                      +        FT;
                                      +        tspan = tspan,
                                      +        dt = Δt_cpl,
                                      +        space = boundary_space,
                                      +        saveat = saveat,
                                      +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                                      +        thermo_params = thermo_params,
                                      +    )
                                      +
                                      +    # sea ice (here set to zero area coverage)
                                      +    ice_sim = SurfaceStub((;
                                      +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                                      +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                      +        z0m = FT(0),
                                      +        z0b = FT(0),
                                      +        beta = FT(1),
                                      +        α = FT(1),
                                      +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                                      +        phase = TD.Ice(),
                                      +        thermo_params = thermo_params,
                                      +    ))
                                      +
                                      +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                                      +
                                      +elseif mode_name == "slabplanet_eisenman"
                                      +    # ocean
                                      +    ocean_sim = ocean_init(
                                      +        FT;
                                      +        tspan = tspan,
                                      +        dt = Δt_cpl,
                                      +        space = boundary_space,
                                      +        saveat = saveat,
                                      +        area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below
                                      +        thermo_params = thermo_params,
                                      +    )
                                      +
                                      +    # sea ice (here set to zero area coverage)
                                      +    ice_sim = eisenman_seaice_init(
                                      +        FT,
                                      +        tspan,
                                      +        space = boundary_space,
                                      +        area_fraction = (FT(1) .- land_fraction),
                                      +        dt = Δt_cpl,
                                      +        saveat = saveat,
                                      +        thermo_params = thermo_params,
                                      +    )
                                      +
                                      +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                                      +end

                                      Coupler Initialization

                                      The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                                      # coupler exchange fields
                                      +coupler_field_names = (
                                      +    :T_S,
                                      +    :z0m_S,
                                      +    :z0b_S,
                                      +    :ρ_sfc,
                                      +    :q_sfc,
                                      +    :albedo,
                                      +    :beta,
                                      +    :F_turb_energy,
                                      +    :F_turb_moisture,
                                      +    :F_turb_ρτxz,
                                      +    :F_turb_ρτyz,
                                      +    :F_radiative,
                                      +    :P_liq,
                                      +    :P_snow,
                                      +    :F_radiative_TOA,
                                      +    :P_net,
                                      +)
                                      +coupler_fields =
                                      +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                                      +
                                      +# model simulations
                                      +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                                      +
                                      +# dates
                                      +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                                      Online Diagnostics

                                      User can write custom diagnostics in the user_diagnostics.jl.

                                      monthly_3d_diags = init_diagnostics(
                                      +    (:T, :u, :q_tot, :q_liq_ice),
                                      +    atmos_sim.domain.center_space;
                                      +    save = Monthly(),
                                      +    operations = (; accumulate = TimeMean([Int(0)])),
                                      +    output_dir = COUPLER_OUTPUT_DIR,
                                      +    name_tag = "monthly_mean_3d_",
                                      +)
                                      +
                                      +monthly_2d_diags = init_diagnostics(
                                      +    (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),
                                      +    boundary_space;
                                      +    save = Monthly(),
                                      +    operations = (; accumulate = TimeMean([Int(0)])),
                                      +    output_dir = COUPLER_OUTPUT_DIR,
                                      +    name_tag = "monthly_mean_2d_",
                                      +)
                                      +
                                      +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                                      Initialize Conservation Checks

                                      # init conservation info collector
                                      +conservation_checks = nothing
                                      +if energy_check
                                      +    @assert(
                                      +        mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)),
                                      +        "Only non-distributed slabplanet allowable for energy_check"
                                      +    )
                                      +    conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims))
                                      +end
                                      +
                                      +# coupler simulation
                                      +cs = CoupledSimulation{FT}(
                                      +    comms_ctx,
                                      +    dates,
                                      +    boundary_space,
                                      +    coupler_fields,
                                      +    config_dict,
                                      +    conservation_checks,
                                      +    [tspan[1], tspan[2]],
                                      +    atmos_sim.integrator.t,
                                      +    Δt_cpl,
                                      +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                                      +    model_sims,
                                      +    mode_specifics,
                                      +    diagnostics,
                                      +);

                                      Restart component model states if specified

                                      if restart_dir !== "unspecified"
                                      +    for sim in cs.model_sims
                                      +        if get_model_state_vector(sim) !== nothing
                                      +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
                                      +        end
                                      +    end
                                      +end

                                      Initialize Component Model Exchange

                                      turbulent_fluxes = nothing
                                      +if config_dict["turb_flux_partition"] == "PartitionedStateFluxes"
                                      +    turbulent_fluxes = PartitionedStateFluxes()
                                      +elseif config_dict["turb_flux_partition"] == "CombinedStateFluxes"
                                      +    turbulent_fluxes = CombinedStateFluxes()
                                      +else
                                      +    error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes")
                                      +end
                                      1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                                      update_surface_fractions!(cs)
                                      +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                      +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                      +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                      1. each surface component model calculates its own vapor specific humidity (q_sfc)

                                      TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                                      step!(land_sim, Δt_cpl)
                                      +step!(ocean_sim, Δt_cpl)
                                      +step!(ice_sim, Δt_cpl)
                                      1. coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions
                                      if turbulent_fluxes isa CombinedStateFluxes

                                      calculate fluxes using combined surface states on the atmos grid

                                          import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc
                                      +    combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts
                                      +elseif turbulent_fluxes isa PartitionedStateFluxes

                                      calculate turbulent fluxes in surface models and save the weighted average in coupler fields

                                          partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                      update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)

                                          new_p = get_new_cache(atmos_sim, cs.fields)
                                      +    CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)
                                      +    atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                      +end
                                      1. given the new sfc_conditions, atmos calls the radiative flux callback
                                      reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux
                                      1. coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types

                                      and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.

                                      import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                      +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                                      Coupling Loop

                                      function solve_coupler!(cs)
                                      +    @info "Starting coupling loop"
                                      +
                                      +    @unpack model_sims, Δt_cpl, tspan = cs
                                      +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                                      +
                                      +    # step in time
                                      +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                                      +
                                      +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                                      +
                                      +        # print date on the first of month
                                      +        if cs.dates.date[1] >= cs.dates.date1[1]
                                      +            @show(cs.dates.date[1])
                                      +        end
                                      +
                                      +        if cs.mode.name == "amip"
                                      +
                                      +            # monthly read of boundary condition data for SST and SIC
                                      +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                                      +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                                      +            end
                                      +            SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)
                                      +            update_field!(ocean_sim, Val(:surface_temperature), SST_current)
                                      +
                                      +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                                      +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                                      +            end
                                      +            SIC_current =
                                      +                get_ice_fraction.(interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), mono_surface)
                                      +            update_field!(ice_sim, Val(:area_fraction), SIC_current)
                                      +
                                      +            # calculate and accumulate diagnostics at each timestep
                                      +            ClimaComms.barrier(comms_ctx)
                                      +            accumulate_diagnostics!(cs)
                                      +
                                      +            # save and reset monthly averages
                                      +            save_diagnostics(cs)
                                      +
                                      +        end
                                      +
                                      +        # compute global energy
                                      +        !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing
                                      +
                                      +        # run component models sequentially for one coupling timestep (Δt_cpl)
                                      +        ClimaComms.barrier(comms_ctx)
                                      +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                      +
                                      +        # step sims
                                      +        step_model_sims!(cs.model_sims, t)
                                      +
                                      +        # exchange combined fields and (if specified) calculate fluxes using combined states
                                      +        update_surface_fractions!(cs)
                                      +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                                      +        if turbulent_fluxes isa CombinedStateFluxes
                                      +            combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)
                                      +        elseif turbulent_fluxes isa PartitionedStateFluxes

                                      calculate turbulent fluxes in surfaces and save the weighted average in coupler fields

                                                  partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                      update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)

                                                  new_p = get_new_cache(atmos_sim, cs.fields)
                                      +            CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification)
                                      +            atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                      +        end
                                      +
                                      +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent
                                      +
                                      +        # monthly callbacks
                                      +        if trigger_callback(cs, Monthly())
                                      +            # step to the next calendar month
                                      +            cs.dates.date1[1] += Dates.Month(1)
                                      +            # checkpoint model state
                                      +            if monthly_checkpoint
                                      +                for sim in cs.model_sims
                                      +                    if get_model_state_vector(sim) !== nothing
                                      +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
                                      +                    end
                                      +                end
                                      +            end
                                      +        end
                                      +
                                      +    end
                                      +    @show walltime
                                      +
                                      +    return cs
                                      +end
                                      +
                                      +
                                      +# run the coupled simulation
                                      +solve_coupler!(cs);

                                      Postprocessing

                                      Currently all postprocessing is performed using the root process only.

                                      if ClimaComms.iamroot(comms_ctx)
                                      +
                                      +    # energy check plots
                                      +    if !isnothing(cs.conservation_checks) && cs.mode.name[1:10] == "slabplanet"
                                      +        @info "Conservation Check Plots"
                                      +        plot_global_conservation(
                                      +            cs.conservation_checks.energy,
                                      +            cs,
                                      +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_bucket.png"),
                                      +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_log_bucket.png"),
                                      +        )
                                      +        plot_global_conservation(
                                      +            cs.conservation_checks.water,
                                      +            cs,
                                      +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_bucket.png"),
                                      +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_log_bucket.png"),
                                      +        )
                                      +    end
                                      +
                                      +    # sample animations
                                      +    if !is_distributed && config_dict["anim"]
                                      +        @info "Animations"
                                      +        include("user_io/viz_explorer.jl")
                                      +        plot_anim(cs, COUPLER_ARTIFACTS_DIR)
                                      +    end
                                      +
                                      +    # plotting AMIP results
                                      +    if cs.mode.name == "amip"
                                      +        @info "AMIP plots"
                                      +
                                      +        # ClimaESM
                                      +        include("user_io/amip_visualizer.jl")
                                      +        post_spec = (;
                                      +            T = (:regrid, :zonal_mean),
                                      +            u = (:regrid, :zonal_mean),
                                      +            q_tot = (:regrid, :zonal_mean),
                                      +            toa_fluxes = (:regrid, :horizontal_slice),
                                      +            precipitation_rate = (:regrid, :horizontal_slice),
                                      +            T_sfc = (:regrid, :horizontal_slice),
                                      +            tubulent_energy_fluxes = (:regrid, :horizontal_slice),
                                      +            q_liq_ice = (:regrid, :zonal_mean),
                                      +        )
                                      +
                                      +        plot_spec = (;
                                      +            T = (; clims = (190, 320), units = "K"),
                                      +            u = (; clims = (-50, 50), units = "m/s"),
                                      +            q_tot = (; clims = (0, 30), units = "g/kg"),
                                      +            toa_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                      +            precipitation_rate = (clims = (0, 1e-4), units = "kg/m^2/s"),
                                      +            T_sfc = (clims = (225, 310), units = "K"),
                                      +            tubulent_energy_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                      +            q_liq_ice = (; clims = (0, 10), units = "g/kg"),
                                      +        )
                                      +        amip_data = amip_paperplots(
                                      +            post_spec,
                                      +            plot_spec,
                                      +            COUPLER_OUTPUT_DIR,
                                      +            files_root = ".monthly",
                                      +            output_dir = COUPLER_ARTIFACTS_DIR,
                                      +        )
                                      +
                                      +        # NCEP reanalysis
                                      +        @info "NCEP plots"
                                      +        include("user_io/ncep_visualizer.jl")
                                      +        ncep_post_spec = (;
                                      +            T = (:zonal_mean,),
                                      +            u = (:zonal_mean,),
                                      +            q_tot = (:zonal_mean,),
                                      +            toa_fluxes = (:horizontal_slice,),
                                      +            precipitation_rate = (:horizontal_slice,),
                                      +            T_sfc = (:horizontal_slice,),
                                      +            tubulent_energy_fluxes = (:horizontal_slice,),
                                      +        )
                                      +        ncep_plot_spec = plot_spec
                                      +        ncep_data = ncep_paperplots(
                                      +            ncep_post_spec,
                                      +            ncep_plot_spec,
                                      +            COUPLER_OUTPUT_DIR,
                                      +            output_dir = COUPLER_ARTIFACTS_DIR,
                                      +            month_date = cs.dates.date[1],
                                      +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                                      +    end
                                      +
                                      +    # clean up
                                      +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                                      +end

                                      This page was generated using Literate.jl.

                                      diff --git a/previews/PR456/generated/sea_breeze/atmos_rhs/index.html b/previews/PR456/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..21f1ace15 --- /dev/null +++ b/previews/PR456/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                                      Atmospheric Model

                                      Atmosphere Conservation Equations

                                      Density:

                                      \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                                      Momentum (flux form):

                                      \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                                      Potential temperature:

                                      \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                                      Total Energy (possibly replace potential temperature equation with total energy conservation):

                                      \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                                      where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                                      Tracer transport:

                                      \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                                      Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                                      \[\rho\tau = -2\rho\nu\nabla u.\]

                                      Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                                      \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                                      with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                                      Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                                      Consider components of the viscous stress tensor in three dimensions:

                                      \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                                      Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                                      \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                                      Which can be interpreted as, for horizontal-momentum:

                                      1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                      2. Vertical divergence of vertical gradients of cell-centered variables $u$
                                      3. Vertical divergence of horizontal gradients of cell-face variables $w$

                                      and for vertical-momentum, as:

                                      1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                      2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                                      3. Vertical divergence of vertical gradients of cell-face variables $w$.

                                      Model Code

                                      push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                                      +
                                      +using Test
                                      +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                                      +
                                      +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                                      +using ClimaCore.Geometry
                                      +using ClimaCore.Utilities: PlusHalf
                                      +
                                      +using Logging: global_logger
                                      +using TerminalLoggers: TerminalLogger
                                      +global_logger(TerminalLogger())
                                      +
                                      +using ClimaCoupler
                                      +
                                      +# set up function space
                                      +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                                      +    FT = Float64
                                      +    vertdomain = Domains.IntervalDomain(
                                      +        Geometry.ZPoint{FT}(zlim[1]),
                                      +        Geometry.ZPoint{FT}(zlim[2]);
                                      +        boundary_tags = (:bottom, :top),
                                      +    )
                                      +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                                      +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                                      +
                                      +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                      +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                                      +    horztopology = Topologies.IntervalTopology(horzmesh)
                                      +
                                      +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                                      +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                                      +
                                      +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                                      +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                                      +    return (hv_center_space, hv_face_space)
                                      +end
                                      +
                                      +function pressure(ρθ)
                                      +    if ρθ >= 0
                                      +        return MSLP * (R_d * ρθ / MSLP)^γ
                                      +    else
                                      +        return NaN
                                      +    end
                                      +end
                                      +
                                      +Φ(z) = grav * z
                                      +
                                      +abstract type BCtag end
                                      +struct ZeroFlux <: BCtag end
                                      +
                                      +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                      +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                      +
                                      +function init_sea_breeze_2d(x, z)
                                      +    θ₀ = atm_T_ini
                                      +    cp_d = C_p
                                      +    cv_d = C_v
                                      +    p₀ = MSLP
                                      +    g = grav
                                      +    γ = cp_d / cv_d
                                      +    z_c = 100.0
                                      +    θ_b = atm_T_ini
                                      +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                                      +    θ = θ_b + θ_p # potential temperature
                                      +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                                      +    T = π_exn * θ # temperature
                                      +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                                      +    ρ = p / R_d / T # density
                                      +    ρθ = ρ * θ # potential temperature density
                                      +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                                      +end
                                      +
                                      +function atm_rhs!(dY, Y, params, t)
                                      +    ρw = Y.ρw
                                      +    Yc = Y.Yc
                                      +    dYc = dY.Yc
                                      +    dρw = dY.ρw
                                      +
                                      +    center_coords = Fields.coordinate_field(axes(Yc))
                                      +
                                      +    # spectral horizontal operators
                                      +    hdiv = Operators.Divergence()
                                      +    hgrad = Operators.Gradient()
                                      +    hwdiv = Operators.WeakDivergence()
                                      +    hwgrad = Operators.WeakGradient()
                                      +
                                      +    # vertical FD operators with BC's
                                      +    vdivf2c = Operators.DivergenceF2C(
                                      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                      +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                      +    )
                                      +    vvdivc2f = Operators.DivergenceC2F(
                                      +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                                      +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                                      +    )
                                      +    uvdivf2c = Operators.DivergenceF2C(
                                      +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                      +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                      +    )
                                      +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                      +    Ic = Operators.InterpolateF2C()
                                      +    ∂ = Operators.DivergenceF2C(
                                      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                      +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                      +    )
                                      +    ∂f = Operators.GradientC2F()
                                      +    ∂c = Operators.GradientF2C()
                                      +    B = Operators.SetBoundaryOperator(
                                      +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                      +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                      +    )
                                      +
                                      +    ∇_z_ρθ = Operators.DivergenceF2C(
                                      +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                                      +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                                      +    )
                                      +
                                      +    uₕ = @. Yc.ρuₕ / Yc.ρ
                                      +    w = @. ρw / If(Yc.ρ)
                                      +    wc = @. Ic(ρw) / Yc.ρ
                                      +    p = @. pressure(Yc.ρθ)
                                      +    θ = @. Yc.ρθ / Yc.ρ
                                      +    Yfρ = @. If(Yc.ρ)
                                      +
                                      +    ### HYPERVISCOSITY
                                      +    # 1) compute hyperviscosity coefficients
                                      +    @. dYc.ρθ = hwdiv(hgrad(θ))
                                      +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                                      +    @. dρw = hwdiv(hgrad(w))
                                      +    Spaces.weighted_dss!(dYc)
                                      +    Spaces.weighted_dss!(dρw)
                                      +
                                      +    κ₄ = 0.0 # m^4/s
                                      +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                                      +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                                      +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                                      +
                                      +    # density
                                      +    @. dYc.ρ = -∂(ρw)
                                      +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                                      +
                                      +    # potential temperature
                                      +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                                      +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                                      +
                                      +    # horizontal momentum
                                      +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                                      +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                                      +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                                      +
                                      +    # vertical momentum
                                      +    @. dρw +=
                                      +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                                      +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                                      +    @. dρw -= hdiv(uₕf ⊗ ρw)
                                      +
                                      +    # DIFFUSION
                                      +    κ₂ = 5.0 # m^2/s
                                      +    #  1a) horizontal div of horizontal grad of horiz momentun
                                      +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                                      +    #  1b) vertical div of vertical grad of horiz momentun
                                      +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                                      +
                                      +    #  1c) horizontal div of horizontal grad of vert momentum
                                      +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                                      +    #  1d) vertical div of vertical grad of vert momentun
                                      +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                                      +
                                      +    #  2a) horizontal div of horizontal grad of potential temperature
                                      +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                                      +    #  2b) vertical div of vertial grad of potential temperature
                                      +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                                      +
                                      +    Spaces.weighted_dss!(dYc)
                                      +    Spaces.weighted_dss!(dρw)
                                      +    return dY
                                      +end
                                      +
                                      +# init simulation
                                      +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                                      +
                                      +    # construct domain spaces
                                      +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                                      +    center_coords = Fields.coordinate_field(hv_center_space)
                                      +    face_coords = Fields.coordinate_field(hv_face_space)
                                      +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                                      +
                                      +    # initialize prognostic variables
                                      +    Yc = map(center_coords) do coord
                                      +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                                      +        sea_breeze
                                      +    end
                                      +
                                      +    ρw = map(face_coords) do coord
                                      +        Geometry.WVector(0.0)
                                      +    end
                                      +
                                      +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                                      +
                                      +    # select boundary conditions
                                      +    if bc === nothing
                                      +        bc = (
                                      +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                                      +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                                      +        )
                                      +    end
                                      +
                                      +    return Y, bc, domain
                                      +end
                                      +
                                      +using OrdinaryDiffEq
                                      +function atm_run!(Y, bc, domain)
                                      +    dYdt = similar(Y)
                                      +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                                      +    atm_rhs!(dYdt, Y, params, 0.0)
                                      +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                                      +    Δt = 0.025
                                      +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                                      +end

                                      Coupled Atmos Wrappers

                                      # Atmos Simulation - later to live in ClimaAtmos
                                      +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                                      +    integrator::Any
                                      +end
                                      +
                                      +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                      +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                                      +
                                      +    atm_integ = init(
                                      +        atm_prob,
                                      +        timestepper,
                                      +        dt = dt,
                                      +        saveat = saveat,
                                      +        progress = true,
                                      +        progress_message = (dt, u, params, t) -> t,
                                      +        callback = callbacks,
                                      +    )
                                      +
                                      +    return AtmosSimulation(atm_integ)
                                      +end
                                      +
                                      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                                      +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                                      +end
                                      +
                                      +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                                      +    # reset flux accumulator
                                      +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                                      +
                                      +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                                      +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                                      +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                                      +end

                                      Coupled Boundary Conditions

                                      The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                                      To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                                      struct CoupledFlux <: BCtag end
                                      +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                                      +    # flux calculation
                                      +    Yc = Y.Yc
                                      +    uₕ = Yc.ρuₕ ./ Yc.ρ
                                      +    ρw = Y.ρw
                                      +    If2c = Operators.InterpolateF2C()
                                      +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                      +    w = If2c.(ρw) ./ Yc.ρ
                                      +    cuv = @. Geometry.UWVector(uₕ)
                                      +    windspeed = @. norm(cuv)
                                      +    windspeed_boundary = Fields.level(windspeed, 1)
                                      +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                                      +    ρ_boundary = Fields.level(Yc.ρ, 1)
                                      +
                                      +    # build atmos face fields on surface boundary space to enable broadcasting
                                      +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                                      +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                                      +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                                      +
                                      +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                                      +    dθ = @. θ_boundary - p.T_sfc
                                      +    heat_flux = @. -λ * dθ
                                      +    @. dY.F_sfc += heat_flux # accumulation
                                      +
                                      +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                                      +end

                                      This page was generated using Literate.jl.

                                      diff --git a/previews/PR456/generated/sea_breeze/land_rhs/index.html b/previews/PR456/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..e9dde5359 --- /dev/null +++ b/previews/PR456/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                                      Land Model

                                      Slab Land ODE

                                      For our land component, we solve a simple slab land ODE:

                                      \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                                      • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                                      • and $F_{integ}$ is the integrated surface fluxes in time.

                                      Model Code

                                      function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                                      +    """
                                      +    Slab layer equation
                                      +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                                      +        where
                                      +            F_accumulated = F_integrated / Δt_coupler
                                      +    """
                                      +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                                      +    @unpack T_sfc = du
                                      +
                                      +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                                      +end
                                      +
                                      +# set up domain
                                      +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                      +    FT = Float64
                                      +
                                      +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                      +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                      +    topology = Topologies.IntervalTopology(mesh)
                                      +
                                      +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                      +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                      +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                      +
                                      +    return space
                                      +end
                                      +
                                      +# init simulation
                                      +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                      +
                                      +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                      +    space = hspace_1D((xmin, xmax), npoly, helem)
                                      +    coords = Fields.coordinate_field(space)
                                      +    domain = space
                                      +
                                      +    # initial condition
                                      +    T_sfc = map(coords) do coord
                                      +        T_sfc = 273.0
                                      +    end
                                      +
                                      +    # prognostic variable
                                      +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                      +
                                      +    return Y, domain
                                      +end

                                      Coupled Land Wrappers

                                      # Land Simulation - later to live in ClimaLSM
                                      +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                                      +    integrator::Any
                                      +end
                                      +
                                      +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                      +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                                      +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                      +    return LandSimulation(lnd_integ)
                                      +end
                                      +
                                      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                                      +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                                      +end
                                      +
                                      +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                                      +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                                      +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                                      +end

                                      This page was generated using Literate.jl.

                                      diff --git a/previews/PR456/generated/sea_breeze/ocean_rhs/index.html b/previews/PR456/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..f93177ec8 --- /dev/null +++ b/previews/PR456/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                                      Ocean Model

                                      Slab Ocean ODE

                                      For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                                      \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                                      • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                                      • and $F_{integ}$ is the integrated surface fluxes in time.

                                      Model Code

                                      function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                                      +    """
                                      +    Slab layer equation
                                      +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                                      +        where
                                      +            F_accumulated = F_integrated / Δt_coupler
                                      +    """
                                      +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                                      +    @unpack T_sfc = du
                                      +
                                      +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                                      +end
                                      +
                                      +# set up domain
                                      +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                      +    FT = Float64
                                      +
                                      +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                      +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                      +    topology = Topologies.IntervalTopology(mesh)
                                      +
                                      +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                      +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                      +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                      +
                                      +    return space
                                      +end
                                      +
                                      +# init simulation
                                      +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                      +
                                      +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                      +    space = hspace_1D((xmin, xmax), npoly, helem)
                                      +    coords = Fields.coordinate_field(space)
                                      +    domain = space
                                      +
                                      +    # initial condition
                                      +    T_sfc = map(coords) do coord
                                      +        T_sfc = 267.0
                                      +    end
                                      +
                                      +    # prognostic variable
                                      +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                      +
                                      +    return Y, domain
                                      +end

                                      Coupled Ocean Wrappers

                                      # Ocean Simulation - Later to live in Oceananigans
                                      +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                                      +    integrator::Any
                                      +end
                                      +
                                      +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                      +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                                      +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                      +    return OceanSimulation(ocn_integ)
                                      +end
                                      +
                                      +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                                      +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                                      +end
                                      +
                                      +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                                      +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                                      +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                                      +end

                                      This page was generated using Literate.jl.

                                      diff --git a/previews/PR456/generated/sea_breeze/run/index.html b/previews/PR456/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..e0ef698a5 --- /dev/null +++ b/previews/PR456/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                                      Coupled Sea Breeze

                                      Overview

                                      This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                                      In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                                      import ClimaCore.Spaces as Spaces

                                      Model Initialization

                                      Component Models

                                      Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                                      In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                                      include("atmos_rhs.jl")
                                      +include("ocean_rhs.jl")
                                      +include("land_rhs.jl")
                                      +
                                      +# model parameters
                                      +const atm_T_ini = FT(270.0)
                                      +const MSLP = FT(1e5)
                                      +const grav = FT(9.8)
                                      +const R_d = FT(287.058)
                                      +const γ = FT(1.4)
                                      +const C_p = FT(R_d * γ / (γ - 1))
                                      +const C_v = FT(R_d / (γ - 1))
                                      +const R_m = R_d
                                      +cpl_parameters = (
                                      +    # atmos parameters
                                      +    atm_μ = FT(0.0001), # diffusion coefficient
                                      +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                                      +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                                      +    MSLP = MSLP, # mean sea level pressure
                                      +    grav = grav, # gravitational constant
                                      +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                                      +    γ = γ, # heat capacity ratio
                                      +    C_p = C_p, # heat capacity at constant pressure
                                      +    C_v = C_v, # heat capacity at constant volume
                                      +    R_m = R_m, # moist R, assumed to be dry
                                      +    # land slab parameters
                                      +    lnd_h = FT(0.5), # depth of slab layer [m]
                                      +    lnd_ρ = FT(1500), # density [kg m^-3]
                                      +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                                      +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                      +    # ocean slab parameters
                                      +    ocn_h = FT(0.5), # depth of slab layer [m]
                                      +    ocn_ρ = FT(1025), # density [kg m^-3]
                                      +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                                      +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                      +    # coupling parameters
                                      +    C_H = FT(0.0015),
                                      +)
                                      +
                                      +# DSS callback
                                      +function make_dss_func()
                                      +    function _dss!(x::Fields.Field)
                                      +        Spaces.weighted_dss!(x)
                                      +    end
                                      +    function _dss!(::Any)
                                      +        nothing
                                      +    end
                                      +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                                      +    return dss_func
                                      +end
                                      +dss_func = make_dss_func()
                                      +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                                      Initialization

                                      The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                                      Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                                      @info "Init Models and Maps"
                                      +
                                      +t_start, t_end = (0.0, 1.0)
                                      +Δt_coupled = 0.1
                                      +saveat = 1e2
                                      +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                                      +
                                      +# Initialize Models
                                      +atm_Y_default, atm_bc, atm_domain = atm_init(
                                      +    xmin = -500,
                                      +    xmax = 500,
                                      +    zmin = 0,
                                      +    zmax = 1000,
                                      +    npoly = 4,
                                      +    helem = 20,
                                      +    velem = 20,
                                      +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                                      +)
                                      +
                                      +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                                      +
                                      +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                                      Remapping

                                      Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                                      atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                                      +
                                      +maps = (
                                      +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                                      +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                                      +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                                      +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                                      +)
                                      +
                                      +# initialize coupling fields
                                      +atm_T_sfc =
                                      +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                                      +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                                      +atm_F_sfc = Fields.zeros(atm_boundary)
                                      +ocn_F_sfc = Fields.zeros(ocn_domain)
                                      +lnd_F_sfc = Fields.zeros(lnd_domain)

                                      Simulations

                                      Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                                      atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                                      +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                                      +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                                      +
                                      +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                                      +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                                      +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                                      +
                                      +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                                      +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                                      +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                                      Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                                      struct AOLCoupledSimulation{
                                      +    A <: AtmosSimulation,
                                      +    O <: OceanSimulation,
                                      +    L <: LandSimulation,
                                      +    C <: ClimaCoupler.CouplerState,
                                      +} <: ClimaCoupler.AbstractCoupledSimulation
                                      +    # Atmosphere Simulation
                                      +    atmos::A
                                      +    # Ocean Simulation
                                      +    ocean::O
                                      +    # Land Simulation
                                      +    land::L
                                      +    # Coupler storage
                                      +    coupler::C
                                      +end

                                      step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                                      function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                                      +    Δt = t_stop - sim.integrator.t
                                      +    step!(sim.integrator, Δt, true)
                                      +end

                                      The Coupler

                                      The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                                      After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                                      Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                                      Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                                      \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                                      where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                                      coupler = CouplerState(Δt_coupled)
                                      +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                                      +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                                      +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                                      +for (name, map) in pairs(maps)
                                      +    coupler_add_map!(coupler, name, map)
                                      +end
                                      +
                                      +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                                      Coupled Time Integration

                                      Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                                      Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                                      Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                                      \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                                      where $F_{integ}$ has units of $J m^{-2}$.

                                      function cpl_run(simulation::AOLCoupledSimulation)
                                      +    @info "Run model"
                                      +    @unpack atmos, ocean, land, coupler = simulation
                                      +    Δt_coupled = coupler.Δt_coupled
                                      +    # coupler stepping
                                      +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                                      +        # Atmos
                                      +        coupler_pull!(atmos, coupler)
                                      +        step!(atmos, t)
                                      +        coupler_push!(coupler, atmos)
                                      +
                                      +        # Ocean
                                      +        coupler_pull!(ocean, coupler)
                                      +        step!(ocean, t)
                                      +        coupler_push!(coupler, ocean)
                                      +
                                      +        # Land
                                      +        coupler_pull!(land, coupler)
                                      +        step!(land, t)
                                      +        coupler_push!(coupler, land)
                                      +    end
                                      +    @info "Simulation Complete"
                                      +end
                                      +
                                      +# Run simulation
                                      +cpl_run(sim)

                                      References


                                      This page was generated using Literate.jl.

                                      diff --git a/previews/PR456/images/canvas_coupler.png b/previews/PR456/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                                      F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF 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 XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR456/images/cplsetup.png b/previews/PR456/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR456/index.html b/previews/PR456/index.html new file mode 100644 index 000000000..6b03ccd19 --- /dev/null +++ b/previews/PR456/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                      ClimaCoupler.jl

                                      Coupling CliMA Models

                                      ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                      • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                      • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                      The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                      Coupler Scheme
                                      ClimaCoupler.jl allows for independent development of interchangeable component models.
                                      diff --git a/previews/PR456/interfacer/index.html b/previews/PR456/interfacer/index.html new file mode 100644 index 000000000..512cf9333 --- /dev/null +++ b/previews/PR456/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                                      Interfacer

                                      This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                                      Coupled Simulation

                                      • CoupledSimulation (cs) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                                      Component model simulations

                                      • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                                      • the current version requires that there is:
                                        • one AtmosModelSimulation
                                        • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                                          • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                                      Prescribed conditions

                                      • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                                      get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                                      +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                                      +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                                      +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                                      +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                                      +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                                      with the corresponding update_field! functions

                                      function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                                      +    sim.cache.area_fraction .= field
                                      +end
                                      +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                                      +    sim.cache.T_sfc .= field
                                      +end

                                      Interfacer API

                                      ClimaCoupler.Interfacer.get_fieldFunction
                                      get_field(::SurfaceStub, ::Val)

                                      A getter function, that should not allocate. If undefined, it returns a descriptive error.

                                      source
                                      get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                                      Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                                      source
                                      ClimaCoupler.Interfacer.update_field!Function
                                      update_field!(::ComponentModelSimulation, ::Val, _...)

                                      No update in unspecified in the particular component model simulation.

                                      source
                                      update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                                      Updates the specified value in the cache of SurfaceStub.

                                      source
                                      diff --git a/previews/PR456/performance/index.html b/previews/PR456/performance/index.html new file mode 100644 index 000000000..3ce34585a --- /dev/null +++ b/previews/PR456/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                                      Performance Analysis Tools

                                      ClimaCoupler.jl provides basic tools for analyzing performance:

                                      1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                                      2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                                      Flame Graph Interpretation

                                      • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                                      • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                                      canvas

                                      • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                                      • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                                      References

                                      diff --git a/previews/PR456/postprocessor/index.html b/previews/PR456/postprocessor/index.html new file mode 100644 index 000000000..85c7a2a1b --- /dev/null +++ b/previews/PR456/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                                      PostProcessor

                                      This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                                      Diagnostics API

                                      ClimaCoupler.PostProcessor.postprocessFunction
                                      postprocess(
                                      +    name::Symbol,
                                      +    raw_data::Union{Fields.Field, Array},
                                      +    p_methods::Tuple;
                                      +    lev_slice = 1,
                                      +    datafile_latlon = nothing,
                                      +    nlat = 90,
                                      +    nlon = 180,
                                      +)

                                      Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                                      Arguments:

                                      • name: [Symbol] variable name
                                      • raw_data: [Union{Fields.Field, Array}] variable data
                                      • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                                      • lev_slice: [Int] level index along which the :horizontal_slice is applied
                                      • datafile_latlon: [String] name of the regrid file
                                      • nlat: [Int] number of latitudes of the regridded array
                                      • nlon: [Symbol] number of longitudes of the regridded array
                                      source
                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                                      Missing docstring.

                                      Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                                      ClimaCoupler.PostProcessor.DataPackageType
                                      DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                                      A container for storing the tyoe, name, data and coordinates of a variable.

                                      source

                                      Diagnostics Internal Functions

                                      diff --git a/previews/PR456/regridder/index.html b/previews/PR456/regridder/index.html new file mode 100644 index 000000000..f0c413a23 --- /dev/null +++ b/previews/PR456/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                                      Regridder

                                      This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                                      Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                                      Regridder API

                                      ClimaCoupler.Regridder.write_to_hdf5Function
                                      write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                                      Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                                      Arguments

                                      • REGRID_DIR: [String] directory to save output files in.
                                      • hd_outfile_root: [String] root of the output file name.
                                      • time: [Dates.DateTime] the timestamp of the data being written.
                                      • field: [Fields.Field] object to be written.
                                      • varname: [String] variable name of data.
                                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                      source
                                      ClimaCoupler.Regridder.read_from_hdf5Function
                                      read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                                      Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                                      Arguments

                                      • REGRID_DIR: [String] directory to save output files in.
                                      • hd_outfile_root: [String] root of the output file name.
                                      • time: [Dates.DateTime] the timestamp of the data being written.
                                      • varname: [String] variable name of data.
                                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                                      Returns

                                      • Field or FieldVector
                                      source
                                      ClimaCoupler.Regridder.dummmy_remap!Function
                                      dummmy_remap!(target, source)

                                      Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                                      Arguments

                                      • target: [Fields.Field] destination of remapping.
                                      • source: [Fields.Field] source of remapping.
                                      source
                                      ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                                      remap_field_cgll_to_rll(
                                      +    name,
                                      +    field::Fields.Field,
                                      +    remap_tmpdir,
                                      +    datafile_rll;
                                      +    nlat = 90,
                                      +    nlon = 180
                                      +)

                                      Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                                      Arguments

                                      • name: [Symbol] variable name.
                                      • field: [Fields.Field] data to be remapped.
                                      • remap_tmpdir: [String] directory used for remapping.
                                      • datafile_rll: [String] filename of remapped data output.
                                      source
                                      ClimaCoupler.Regridder.land_fractionFunction
                                      function land_fraction(
                                      +    FT,
                                      +    REGRID_DIR,
                                      +    comms_ctx::ClimaComms.AbstractCommsContext,
                                      +    infile,
                                      +    varname,
                                      +    boundary_space;
                                      +    outfile_root = "land_sea_cgll",
                                      +    mono = false,
                                      +    threshold = 0.7,
                                      +)

                                      Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                                      See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                                      Arguments

                                      • FT: [DataType] Float type
                                      • REGRID_DIR: [String] directory to save output files in.
                                      • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                      • infile: [String] filename containing input data.
                                      • varname: [Symbol] variable name.
                                      • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                                      • outfile_root: [String] root for output file name.
                                      • mono: [Bool] flag for monotone remapping.
                                      • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                                      Returns

                                      • Fields.Field
                                      source
                                      ClimaCoupler.Regridder.update_surface_fractions!Function
                                      update_surface_fractions!(cs::CoupledSimulation)

                                      Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                                      Arguments

                                      • cs: [CoupledSimulation] containing area fraction information.
                                      source
                                      ClimaCoupler.Regridder.combine_surfaces!Function
                                      combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                                      Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                                      Arguments

                                      • combined_field: [Fields.Field] output object containing weighted values.
                                      • sims: [NamedTuple] containing simulations .
                                      • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                                      Example

                                      • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                                      source

                                      Regridder Internal Functions

                                      ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                                      reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                                      Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                                      Arguments

                                      • field: [Fields.Field] object populated with the input array.
                                      • in_array: [Array] input used to fill field.
                                      • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                                      source
                                      ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                                      hdwrite_regridfile_rll_to_cgll(
                                      +    FT,
                                      +    REGRID_DIR,
                                      +    datafile_rll,
                                      +    varname,
                                      +    space;
                                      +    hd_outfile_root = "data_cgll",
                                      +    mono = false,
                                      +)

                                      Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                                      Arguments

                                      • FT: [DataType] Float type.
                                      • REGRID_DIR: [String] directory to save output files in.
                                      • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                                      • varname: [String] the name of the variable to be remapped.
                                      • space: [Spaces.AbstractSpace] the space to which we are mapping.
                                      • hd_outfile_root: [String] root of the output file name.
                                      • mono: [Bool] flag to specify monotone remapping.
                                      source
                                      ClimaCoupler.Regridder.write_datafile_ccFunction
                                      write_datafile_cc(datafile_cc, field, name)

                                      Write the data stored in field to an NCDataset file datafile_cc.

                                      Arguments

                                      • datafile_cc: [String] filename of output file.
                                      • field: [Fields.Field] to be written to file.
                                      • name: [Symbol] variable name.
                                      source
                                      ClimaCoupler.Regridder.binary_maskFunction
                                      binary_mask(var::FT; threshold = 0.5)

                                      Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                                      Arguments

                                      • var: [FT] value to be converted.
                                      • threshold: [Float] cutoff value for conversions.
                                      source
                                      diff --git a/previews/PR456/search/index.html b/previews/PR456/search/index.html new file mode 100644 index 000000000..8fc3e9212 --- /dev/null +++ b/previews/PR456/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                      Loading search...

                                        diff --git a/previews/PR456/search_index.js b/previews/PR456/search_index.js new file mode 100644 index 000000000..ec1b0fdc0 --- /dev/null +++ b/previews/PR456/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.9.3 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\nimport ClimaAtmos as CA\nimport YAML\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\n# coupler specific imports\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n CoupledSimulation,\n float_type,\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator:\n PartitionedStateFluxes,\n CombinedStateFluxes,\n combined_turbulent_fluxes!,\n MoninObukhovScheme,\n partitioned_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\n# helpers for component models\ninclude(\"components/atmosphere/climaatmos_init.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/prescr_seaice_init.jl\")\ninclude(\"components/ocean/eisenman_seaice_init.jl\")\n\n# helpers for user-specified IO\ninclude(\"user_io/user_diagnostics.jl\")\ninclude(\"user_io/user_logging.jl\")\n\n# coupler defaults\ninclude(\"cli_options.jl\")\nparsed_args = parse_commandline(argparse_settings())\n\n# setup coupler and model configurations","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"modify parsed args for fast testing from REPL #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"pkg_dir = pkgdir(ClimaCoupler)\nif isinteractive()\n include(\"user_io/debug_plots.jl\")\n parsed_args[\"config_file\"] =\n isnothing(parsed_args[\"config_file\"]) ? joinpath(pkg_dir, \"config/model_configs/interactive_debug.yml\") :\n parsed_args[\"config_file\"]\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"read in config dictionary from file, overriding the coupler defaults","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict = YAML.load_file(parsed_args[\"config_file\"])\nconfig_dict = merge(parsed_args, config_dict)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"get component model dictionaries","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict_atmos = get_atmos_config(config_dict)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"merge dictionaries of command line arguments, coupler dictionary and component model dictionaries (if there are common keys, the last dictorionary in the merge arguments takes precedence)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict = merge(config_dict_atmos, config_dict)\n\n# read in some parsed command line arguments\nmode_name = config_dict[\"mode_name\"]\nrun_name = config_dict[\"run_name\"]\nenergy_check = config_dict[\"energy_check\"]\nconst FT = config_dict[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(config_dict[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(config_dict[\"dt_cpl\"])\nsaveat = time_to_seconds(config_dict[\"dt_save_to_sol\"])\ndate0 = date = DateTime(config_dict[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = config_dict[\"mono_surface\"]\nmonthly_checkpoint = config_dict[\"monthly_checkpoint\"]\nrestart_dir = config_dict[\"restart_dir\"]\nrestart_t = Int(config_dict[\"restart_t\"])\n\n# I/O directory setup\nif isinteractive()\n COUPLER_OUTPUT_DIR = joinpath(\"output\", joinpath(mode_name, run_name)) # TempestRemap fails if interactive and paths are too long\nelse\n COUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nend\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\nconfig_dict[\"print_config_dict\"] ? @info(config_dict) : nothing","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"include(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\natmos_sim = atmos_init(FT, config_dict_atmos);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D boundary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n config_dict[\"land_domain_type\"],\n config_dict[\"land_albedo_type\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n date_ref = date0,\n t_start = FT(0),\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\n\nelseif mode_name == \"slabplanet_eisenman\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = eisenman_seaice_init(\n FT,\n tspan,\n space = boundary_space,\n area_fraction = (FT(1) .- land_fraction),\n dt = Δt_cpl,\n saveat = saveat,\n thermo_params = thermo_params,\n )\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_turb_ρτxz,\n :F_turb_ρτyz,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot, :q_liq_ice),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name[1:10] == \"slabplanet\" && !CA.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n config_dict,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = nothing\nif config_dict[\"turb_flux_partition\"] == \"PartitionedStateFluxes\"\n turbulent_fluxes = PartitionedStateFluxes()\nelseif config_dict[\"turb_flux_partition\"] == \"CombinedStateFluxes\"\n turbulent_fluxes = CombinedStateFluxes()\nelse\n error(\"turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes\")\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each surface component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if turbulent_fluxes isa CombinedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate fluxes using combined surface states on the atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts\nelseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surface models and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)\n update_field!(ocean_sim, Val(:surface_temperature), SST_current)\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n SIC_current =\n get_ice_fraction.(interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), mono_surface)\n update_field!(ice_sim, Val(:area_fraction), SIC_current)\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\n if turbulent_fluxes isa CombinedStateFluxes\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)\n elseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surfaces and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\n end\n\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent\n\n # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name[1:10] == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && config_dict[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_ARTIFACTS_DIR)\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa_fluxes = (:regrid, :horizontal_slice),\n precipitation_rate = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n tubulent_energy_fluxes = (:regrid, :horizontal_slice),\n q_liq_ice = (:regrid, :zonal_mean),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 30), units = \"g/kg\"),\n toa_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n precipitation_rate = (clims = (0, 1e-4), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n tubulent_energy_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n q_liq_ice = (; clims = (0, 10), units = \"g/kg\"),\n )\n amip_data = amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa_fluxes = (:horizontal_slice,),\n precipitation_rate = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n tubulent_energy_fluxes = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_data = ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedStateFluxes\n ClimaCoupler.FluxCalculator.CombinedStateFluxes\n ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedStateFluxes","text":"PartitionedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedStateFluxes","text":"CombinedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","text":"combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","text":"atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractConservationCheck\n\nStruct of type AbstractConservationCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractConservationCheck\n\nStruct of type AbstractConservationCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::Interfacer.CoupledSimulation; runtime_check = false)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim::Interfacer.CoupledSimulation,\n runtime_check = false,\n )\n\ncomputes the total energy, ∫ ρe dV, of the model components of the coupled simulations and the TOA radiation, and updates cc with these values.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim::Interfacer.CoupledSimulation,\nruntime_check = false,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::Interfacer.CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR456/siteinfo.js b/previews/PR456/siteinfo.js new file mode 100644 index 000000000..3151336fd --- /dev/null +++ b/previews/PR456/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR456"; diff --git a/previews/PR456/testhelper/index.html b/previews/PR456/testhelper/index.html new file mode 100644 index 000000000..43c6a551f --- /dev/null +++ b/previews/PR456/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                                        TestHelper

                                        This module defines helper functions, objects, and constants to be used by various files in the test folder.

                                        TestHelper API

                                        ClimaCoupler.TestHelper.create_spaceFunction
                                        create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                                        +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                                        Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                                        Arguments

                                        • FT: [DataType] Float type
                                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                        • R: [FT] radius of the sphere underlying space.
                                        • ne: [Integer] number of elements used in the space's mesh.
                                        • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                                        • nz: [Integer] number of vertical elements
                                        source
                                        ClimaCoupler.TestHelper.gen_ncdataFunction
                                        gen_ncdata(FT, path, varname, val)

                                        Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                                        Arguments

                                        • FT: [DataType] Float type.
                                        • path: [String] location to store output datafile.
                                        • varname: [Symbol] variable name.
                                        • val: [FT] value to store as varname at all indices.
                                        source
                                        diff --git a/previews/PR456/timemanager/index.html b/previews/PR456/timemanager/index.html new file mode 100644 index 000000000..bdb987e38 --- /dev/null +++ b/previews/PR456/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                                        TimeManager

                                        This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                                        TimeManager API

                                        ClimaCoupler.TimeManager.current_dateFunction
                                        current_date(cs::CoupledSimulation, t::Int)

                                        Return the model date at the current timestep.

                                        Arguments

                                        • cs: [CoupledSimulation] containing info about the simulation
                                        • t: [Real] number of seconds since simulation began
                                        source
                                        ClimaCoupler.TimeManager.trigger_callbackFunction
                                        trigger_callback(cs, ::Monthly)

                                        Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                                        Arguments

                                        • cs: [CoupledSimulation] containing info about the simulation
                                        source
                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                                        diff --git a/previews/PR456/timestepping/index.html b/previews/PR456/timestepping/index.html new file mode 100644 index 000000000..a36a1a014 --- /dev/null +++ b/previews/PR456/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                        Coupled Simulations & Timestepping

                                        ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                        Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                        • step!: advances the component model in time
                                        • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                        • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                        ClimaCoupler.run!Function
                                        run!(::CoupledSimulation)

                                        A simple outer timestepping loop for coupled system runs.

                                        This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                        source
                                        ClimaCoupler.step!Function
                                        step!(sim, dt)

                                        Advances a simulation sim by dt.

                                        Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                        source
                                        ClimaCoupler.coupler_push!Function
                                        coupler_push!(coupler::CouplerState, model)

                                        Update coupler with fields retrieved from the coupler.

                                        coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                        source
                                        ClimaCoupler.coupler_pull!Function
                                        coupler_pull!(model, coupler::CouplerState)

                                        Update model with fields retrieved from the coupler.

                                        coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                        source
                                        diff --git a/previews/PR456/utilities/index.html b/previews/PR456/utilities/index.html new file mode 100644 index 000000000..f9ead549e --- /dev/null +++ b/previews/PR456/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                                        Utilities

                                        This module contains functions, objects, and constants used by various modules in the coupler.

                                        Utilities API

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.Utilities.float_type. Check Documenter's build log for details.

                                        ClimaCoupler.Utilities.swap_space!Function
                                        swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                                        Remap the values of a field onto a new space.

                                        Arguments

                                        • field_in: [Fields.Field] to be remapped to new space.
                                        • field_out: [Fields.Field] to remap field_in to.
                                        source
                                        diff --git a/previews/PR459/assets/documenter.js b/previews/PR459/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR459/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR459/assets/logo.svg b/previews/PR459/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR459/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR459/assets/search.js b/previews/PR459/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR459/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                      • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR459/assets/themes/documenter-dark.css b/previews/PR459/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR459/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR459/assets/themes/documenter-light.css b/previews/PR459/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR459/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR459/assets/themeswap.js b/previews/PR459/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR459/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR459/assets/warner.js b/previews/PR459/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR459/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                                        Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR459/bcreader/index.html b/previews/PR459/bcreader/index.html new file mode 100644 index 000000000..f2ccef3dd --- /dev/null +++ b/previews/PR459/bcreader/index.html @@ -0,0 +1,15 @@ + +BCReader · ClimaCoupler.jl

                                        BCReader

                                        This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.

                                        BCReader API

                                        ClimaCoupler.BCReader.BCFileInfoType
                                        BCFileInfo

                                        Stores information specific to each boundary condition from a file and each variable.

                                        Inputs:

                                        • bcfile_dir::b # directory of the BC file
                                        • comms_ctx::X # communication context used for MPI
                                        • hdoutfileroot::S # filename root for regridded data
                                        • varname::V # name of the variable
                                        • all_dates::D # vector of all dates contained in the original data file
                                        • monthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation
                                        • scaling_function::O # function that scales, offsets or transforms the raw variable
                                        • land_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice
                                        • segment_idx::Vector{Int} # index of the monthly data in the file
                                        • segmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0
                                        • segment_length::Vector{Int} # length of each month segment (used in the daily interpolation)
                                        • interpolate_daily::Bool # switch to trigger daily interpolation
                                        source
                                        ClimaCoupler.BCReader.bcfile_info_initFunction
                                        bcfile_info_init(
                                        +    FT,
                                        +    bcfile_dir,
                                        +    datafile_rll,
                                        +    varname,
                                        +    boundary_space,
                                        +    comms_ctx;
                                        +    interpolate_daily = false,
                                        +    segment_idx0 = nothing,
                                        +    scaling_function = no_scaling,
                                        +    land_fraction = nothing,
                                        +    date0 = nothing,
                                        +    mono = true,
                                        +)

                                        Regrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.

                                        Arguments

                                        • FT: [DataType] Float type.
                                        • bcfile_dir: [String] directory the BC file is stored in.
                                        • datafile_rll: [String] file containing data to regrid.
                                        • varname: [String] name of the variable to be regridded.
                                        • boundary_space: [Spaces.AbstractSpace] the space to which we are mapping.
                                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                        • interpolate_daily: [Bool] switch to trigger daily interpolation.
                                        • segment_idx0: [Vector{Int}] index of the file data that is closest to date0.
                                        • scaling function: [Function] scales, offsets or transforms varname.
                                        • land_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.
                                        • date0: [Dates.DateTime] start date of the file data.
                                        • mono: [Bool] flag for monotone remapping of datafile_rll.

                                        Returns

                                        • BCFileInfo
                                        source
                                        ClimaCoupler.BCReader.update_midmonth_data!Function
                                        update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}

                                        Extracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).

                                        Arguments

                                        • date: [Dates.DateTime] start date for data.
                                        • bcf_info: [BCFileInfo] containing boundary condition data.
                                        source
                                        ClimaCoupler.BCReader.next_date_in_fileFunction
                                        next_date_in_file(bcf_info)

                                        Returns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.

                                        Arguments

                                        • bcf_info: [BCFileInfo] containing the date information.

                                        Returns

                                        • Dates.DateTime
                                        source
                                        ClimaCoupler.BCReader.interpolate_midmonth_to_dailyFunction
                                        interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}

                                        Interpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.

                                        Arguments

                                        • date: [Dates.DateTime] start date for data.
                                        • bcf_info: [BCFileInfo] contains fields to be interpolated.

                                        Returns

                                        • Fields.field
                                        source

                                        BCReader Internal Functions

                                        ClimaCoupler.BCReader.no_scalingFunction
                                        no_scaling(field, bcf_info)

                                        Remap the values of a field onto the space of the bcf_info's land_fraction without scaling.

                                        Arguments

                                        • field: [Fields.Field] contains the values to be remapped.
                                        • bcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.
                                        source
                                        ClimaCoupler.BCReader.interpolFunction
                                        interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)

                                        Performs linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.

                                        Arguments

                                        • f1: [FT] first value to be interpolated (f(t1) = f1).
                                        • f2: [FT] second value to be interpolated.
                                        • Δt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).
                                        • Δt_t2t1: [FT] time between t1 and t2.

                                        Returns

                                        • FT
                                        source
                                        diff --git a/previews/PR459/checkpointer/index.html b/previews/PR459/checkpointer/index.html new file mode 100644 index 000000000..f1c29699b --- /dev/null +++ b/previews/PR459/checkpointer/index.html @@ -0,0 +1,2 @@ + +Checkpointer · ClimaCoupler.jl

                                        Checkpointer

                                        This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.

                                        Checkpointer API

                                        ClimaCoupler.Checkpointer.get_model_state_vectorFunction
                                        get_model_state_vector(sim::Interfacer.ComponentModelSimulation)

                                        Returns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.

                                        source
                                        ClimaCoupler.Checkpointer.restart_model_state!Function
                                        restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = "input")

                                        Sets the model state of a simulation from a HDF5 file from a given time, t (in seconds).

                                        source
                                        ClimaCoupler.Checkpointer.checkpoint_model_stateFunction
                                        checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = "output")

                                        Checkpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).

                                        source
                                        diff --git a/previews/PR459/conservation/index.html b/previews/PR459/conservation/index.html new file mode 100644 index 000000000..21d77282a --- /dev/null +++ b/previews/PR459/conservation/index.html @@ -0,0 +1,15 @@ + +Conservation Checks · ClimaCoupler.jl

                                        Conservation Checks

                                        If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.

                                        Only energy and water are currently implemented.

                                        Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components.

                                        Coupler Object API

                                        ClimaCoupler.ConservationChecker.check_conservation!Function
                                        check_conservation!(coupler_sim::Interfacer.CoupledSimulation; runtime_check = false)

                                        itertes over all specified conservation checks.

                                        source
                                            check_conservation!(
                                        +    cc::EnergyConservationCheck,
                                        +    coupler_sim::Interfacer.CoupledSimulation,
                                        +    runtime_check = false,
                                        +    )

                                        computes the total energy, ∫ ρe dV, of the model components of the coupled simulations and the TOA radiation, and updates cc with these values.

                                        source
                                        check_conservation!(
                                        +cc::WaterConservationCheck,
                                        +coupler_sim::Interfacer.CoupledSimulation,
                                        +runtime_check = false,
                                        +)

                                        computes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.

                                        Note: in the future this should not use push!.

                                        source
                                        ClimaCoupler.ConservationChecker.plot_global_conservationFunction
                                        plot_global_conservation(
                                        +    cc::EnergyConservationCheck,
                                        +    coupler_sim::Interfacer.CoupledSimulation;
                                        +    figname1 = "total_energy.png",
                                        +    figname2 = "total_energy_log.png",
                                        +)

                                        Creates two plots of the globally integrated quantity (energy, $\rho e$):

                                        1. global quantity of each model component as a function of time,

                                        relative to the initial value;

                                        1. fractional change in the sum of all components over time on a log scale.
                                        source
                                        diff --git a/previews/PR459/couplerstate/index.html b/previews/PR459/couplerstate/index.html new file mode 100644 index 000000000..6d69c5e29 --- /dev/null +++ b/previews/PR459/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                        Coupler State

                                        The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                        The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                        Coupler Object API

                                        ClimaCoupler.CouplerStateType
                                        CouplerState()

                                        Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                        A field is exported by one component and imported by one or more other components.

                                        source
                                        ClimaCoupler.coupler_add_field!Function
                                        coupler_add_field!(
                                        +        coupler::CouplerState,
                                        +        fieldname::Symbol,
                                        +        fieldvalue,
                                        +    )

                                        Add a field to the coupler that is accessible with key fieldname.

                                        Arguments

                                        • coupler: coupler object the field is added to.
                                        • fieldname: key to access the field in the coupler.
                                        • fieldvalue: data array of field values.
                                        source
                                        ClimaCoupler.coupler_getFunction
                                        coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                        Retrieve data array corresponding to fieldname.

                                        If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                        source
                                        diff --git a/previews/PR459/diagnostics/index.html b/previews/PR459/diagnostics/index.html new file mode 100644 index 000000000..a4c565eac --- /dev/null +++ b/previews/PR459/diagnostics/index.html @@ -0,0 +1,4 @@ + +Diagnostics · ClimaCoupler.jl

                                        Diagnostics

                                        This module contains functions for defining, gathering and outputting model diagnostics from the Coupler.

                                        Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment.

                                        Diagnostics API

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.Diagnostics.AbstractOutputGroup. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.Diagnostics.DiagnosticsGroup. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.Diagnostics.TimeMean. Check Documenter's build log for details.

                                        ClimaCoupler.Diagnostics.get_varFunction
                                        get_var(cs::CoupledSimulation, x)

                                        Defines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.

                                        Example:

                                        getvar(cs, ::Val{:Tsfc}) = cs.fields.T_S

                                        source
                                        ClimaCoupler.Diagnostics.save_diagnosticsFunction
                                        save_diagnostics(cs::CoupledSimulation)
                                        +
                                        +save_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)

                                        Saves all entries in dg in separate HDF5 files per variable in output_dir.

                                        source

                                        Diagnostics Internal Functions

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.Diagnostics.iterate_operations. Check Documenter's build log for details.

                                        ClimaCoupler.Diagnostics.operationFunction
                                        operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)

                                        Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                        source
                                        operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)

                                        Accumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.

                                        source
                                        ClimaCoupler.Diagnostics.pre_saveFunction
                                        pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)

                                        Divides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.

                                        source
                                        pre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup

                                        Collects variables and performs all specified operations before saving the snapshot diagnostics.

                                        source
                                        diff --git a/previews/PR459/fieldexchanger/index.html b/previews/PR459/fieldexchanger/index.html new file mode 100644 index 000000000..d7db34ae4 --- /dev/null +++ b/previews/PR459/fieldexchanger/index.html @@ -0,0 +1,2 @@ + +FieldExchanger · ClimaCoupler.jl

                                        FieldExchanger

                                        This module contains general functions for the exchange of fields between the atmospheric and surface component models.

                                        The FieldExchanger needs to populate the coupler with

                                        • atmospheric fields (mostly fluxes), via the import_atmos_fields! function
                                        • average surface properties of each coupler gridpoint, via the import_combined_surface_fields! function

                                        The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:

                                        • AtmosModelSimulation: albedo, surface_temperature
                                          • if calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta
                                        • SurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation

                                        If an update_field! function is not defined for a particular component model, it will be ignored.

                                        Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.

                                        FieldExchanger API

                                        ClimaCoupler.FieldExchanger.import_atmos_fields!Function
                                        import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                        Updates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.

                                        Arguments

                                        • csf: [NamedTuple] containing coupler fields.
                                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                        • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                        source
                                        ClimaCoupler.FieldExchanger.import_combined_surface_fields!Function
                                        import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)

                                        Updates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.

                                        Arguments

                                        • csf: [NamedTuple] containing coupler fields.
                                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                        • boundary_space: [Spaces.AbstractSpace] the space of the coupler surface.
                                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                        source
                                        ClimaCoupler.FieldExchanger.update_model_sims!Function
                                        update_model_sims!(model_sims, csf, turbulent_fluxes)

                                        Iterates update_sim! over all component model simulations saved in cs.model_sims.

                                        Arguments

                                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                        • csf: [NamedTuple] containing coupler fields.
                                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                        source
                                        ClimaCoupler.FieldExchanger.update_sim!Function
                                        update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)

                                        Updates the surface fields for temperature, roughness length, albedo, and specific humidity.

                                        Arguments

                                        • atmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.
                                        • csf: [NamedTuple] containing coupler fields.
                                        source
                                        update_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)

                                        Updates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.

                                        Arguments

                                        • sim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.
                                        • csf: [NamedTuple] containing coupler fields.
                                        source
                                        update_sim!(::SurfaceStub, csf, area_fraction)

                                        The stub surface simulation only updates the air density (needed for the turbulent flux calculation).

                                        source
                                        ClimaCoupler.FieldExchanger.step_model_sims!Function
                                        step_model_sims!(model_sims, t)

                                        Iterates step! over all component model simulations saved in cs.model_sims.

                                        Arguments

                                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                        • t: [AbstractFloat] denoting the simulation time.
                                        source

                                        FieldExchanger Internal Functions

                                        CommonSolve.step!Function
                                        step!(::SurfaceStub, t)

                                        The stub surface simulation is not updated by this function. Extends SciMLBase.step!.

                                        source
                                        SciMLBase.reinit!Function
                                        reinit!(cs::SurfaceStub)

                                        The stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.

                                        source
                                        diff --git a/previews/PR459/fluxcalculator/index.html b/previews/PR459/fluxcalculator/index.html new file mode 100644 index 000000000..ca17654ae --- /dev/null +++ b/previews/PR459/fluxcalculator/index.html @@ -0,0 +1,4 @@ + +FluxCalculator · ClimaCoupler.jl

                                        FluxCalculator

                                        This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.

                                        Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:

                                        1. Combined fluxes (called with CombinedStateFluxes())
                                        • these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.
                                        1. Partitioned fluxes (called with PartitionedStateFluxes())
                                        • these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.

                                        FluxCalculator API

                                        ClimaCoupler.FluxCalculator.CombinedStateFluxesType
                                        CombinedStateFluxes <: TurbulentFluxPartition

                                        A flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.

                                        source
                                        ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!Function
                                        combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)

                                        Calls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.

                                        Arguments

                                        • model_sims: [NamedTuple] containing ComponentModelSimulations.
                                        • csf: [NamedTuple] containing coupler fields.
                                        • turbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.
                                        source
                                        ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!Function
                                        atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)

                                        A function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.

                                        Arguments

                                        • sim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.
                                        • csf: [NamedTuple] containing coupler fields.

                                        Example:

                                        function atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)
                                        +    atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)
                                        +end
                                        source
                                        diff --git a/previews/PR459/generated/amip/coupler_driver_modular/index.html b/previews/PR459/generated/amip/coupler_driver_modular/index.html new file mode 100644 index 000000000..b6331d964 --- /dev/null +++ b/previews/PR459/generated/amip/coupler_driver_modular/index.html @@ -0,0 +1,543 @@ + +AMIP Driver · ClimaCoupler.jl

                                        AMIP Driver

                                        Overview

                                        AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:

                                        • SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html
                                        • land-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf

                                        For more information, see the PCMDI's specifications for AMIP I and AMIP II.

                                        This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.

                                        Start Up

                                        Before starting Julia, ensure your environment is properly set up:

                                        module purge
                                        +module load julia/1.9.3 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1
                                        +
                                        +export CLIMACORE_DISTRIBUTED="MPI" #include if using MPI, otherwise leave empty
                                        +export JUlIA_MPI_BINARY="system"
                                        +export JULIA_HDF5_PATH=""

                                        Next instantiate/build all packages listed in Manifest.toml:

                                        julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'
                                        +julia --project -e 'using Pkg; Pkg.build("MPI"); Pkg.build("HDF5")'

                                        The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:

                                        julia --project --threads 8

                                        Initialization

                                        Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.

                                        import SciMLBase: step!, reinit!
                                        +using OrdinaryDiffEq
                                        +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler
                                        +using LinearAlgebra
                                        +import Test: @test
                                        +using Dates
                                        +using UnPack
                                        +using Plots
                                        +using Statistics: mean
                                        +import ClimaAtmos as CA
                                        +import YAML
                                        +
                                        +using ClimaCore.Utilities: half, PlusHalf
                                        +using ClimaCore: InputOutput, Fields
                                        +import ClimaCore.Spaces as Spaces
                                        +
                                        +# coupler specific imports
                                        +import ClimaCoupler
                                        +import ClimaCoupler.Regridder
                                        +import ClimaCoupler.Regridder:
                                        +    update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask
                                        +import ClimaCoupler.ConservationChecker:
                                        +    EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation
                                        +import ClimaCoupler.Utilities: swap_space!
                                        +import ClimaCoupler.BCReader:
                                        +    bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily
                                        +import ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep
                                        +import ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean
                                        +import ClimaCoupler.PostProcessor: postprocess
                                        +
                                        +import ClimaCoupler.Interfacer:
                                        +    CoupledSimulation,
                                        +    float_type,
                                        +    AtmosModelSimulation,
                                        +    SurfaceModelSimulation,
                                        +    SurfaceStub,
                                        +    SeaIceModelSimulation,
                                        +    LandModelSimulation,
                                        +    OceanModelSimulation,
                                        +    get_field,
                                        +    update_field!,
                                        +    update_sim!
                                        +import ClimaCoupler.FluxCalculator:
                                        +    PartitionedStateFluxes,
                                        +    CombinedStateFluxes,
                                        +    combined_turbulent_fluxes!,
                                        +    MoninObukhovScheme,
                                        +    partitioned_turbulent_fluxes!
                                        +import ClimaCoupler.FieldExchanger:
                                        +    import_atmos_fields!,
                                        +    import_combined_surface_fields!,
                                        +    update_sim!,
                                        +    update_model_sims!,
                                        +    reinit_model_sims!,
                                        +    step_model_sims!
                                        +import ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!
                                        +
                                        +include("../../../artifacts/download_artifacts.jl")
                                        +
                                        +# helpers for component models
                                        +include("components/atmosphere/climaatmos_init.jl")
                                        +include("components/land/bucket_init.jl")
                                        +include("components/land/bucket_utils.jl")
                                        +include("components/ocean/slab_ocean_init.jl")
                                        +include("components/ocean/prescr_seaice_init.jl")
                                        +include("components/ocean/eisenman_seaice_init.jl")
                                        +
                                        +# helpers for user-specified IO
                                        +include("user_io/user_diagnostics.jl")
                                        +include("user_io/user_logging.jl")
                                        +
                                        +# coupler defaults
                                        +include("cli_options.jl")
                                        +parsed_args = parse_commandline(argparse_settings())
                                        +
                                        +# setup coupler and model configurations

                                        modify parsed args for fast testing from REPL #hide

                                        pkg_dir = pkgdir(ClimaCoupler)
                                        +if isinteractive()
                                        +    include("user_io/debug_plots.jl")
                                        +    parsed_args["config_file"] =
                                        +        isnothing(parsed_args["config_file"]) ? joinpath(pkg_dir, "config/model_configs/interactive_debug.yml") :
                                        +        parsed_args["config_file"]
                                        +end

                                        read in config dictionary from file, overriding the coupler defaults

                                        config_dict = YAML.load_file(parsed_args["config_file"])
                                        +config_dict = merge(parsed_args, config_dict)

                                        get component model dictionaries

                                        config_dict_atmos = get_atmos_config(config_dict)

                                        merge dictionaries of command line arguments, coupler dictionary and component model dictionaries (if there are common keys, the last dictorionary in the merge arguments takes precedence)

                                        config_dict = merge(config_dict_atmos, config_dict)
                                        +
                                        +# read in some parsed command line arguments
                                        +mode_name = config_dict["mode_name"]
                                        +run_name = config_dict["run_name"]
                                        +energy_check = config_dict["energy_check"]
                                        +const FT = config_dict["FLOAT_TYPE"] == "Float64" ? Float64 : Float32
                                        +land_sim_name = "bucket"
                                        +t_end = Int(time_to_seconds(config_dict["t_end"]))
                                        +tspan = (Int(0), t_end)
                                        +Δt_cpl = Int(config_dict["dt_cpl"])
                                        +saveat = time_to_seconds(config_dict["dt_save_to_sol"])
                                        +date0 = date = DateTime(config_dict["start_date"], dateformat"yyyymmdd")
                                        +mono_surface = config_dict["mono_surface"]
                                        +monthly_checkpoint = config_dict["monthly_checkpoint"]
                                        +restart_dir = config_dict["restart_dir"]
                                        +restart_t = Int(config_dict["restart_t"])
                                        +
                                        +# I/O directory setup
                                        +if isinteractive()
                                        +    COUPLER_OUTPUT_DIR = joinpath("output", joinpath(mode_name, run_name)) # TempestRemap fails if interactive and paths are too long
                                        +else
                                        +    COUPLER_OUTPUT_DIR = joinpath(pkg_dir, "experiments/AMIP/modular/output", joinpath(mode_name, run_name))
                                        +end
                                        +mkpath(COUPLER_OUTPUT_DIR)
                                        +
                                        +REGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, "regrid_tmp/")
                                        +mkpath(REGRID_DIR)
                                        +
                                        +COUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * "_artifacts"
                                        +isdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)
                                        +
                                        +@info COUPLER_OUTPUT_DIR
                                        +config_dict["print_config_dict"] ? @info(config_dict) : nothing

                                        get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration

                                        include(joinpath(pkgdir(ClimaCoupler), "artifacts", "artifact_funcs.jl"))
                                        +sst_data = joinpath(sst_dataset_path(), "sst.nc")
                                        +sic_data = joinpath(sic_dataset_path(), "sic.nc")
                                        +co2_data = joinpath(co2_dataset_path(), "mauna_loa_co2.nc")
                                        +land_mask_data = joinpath(mask_dataset_path(), "seamask.nc")

                                        Component Model Initialization

                                        Here we set initial and boundary conditions for each component model.

                                        Atmosphere

                                        This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.

                                        # init atmos model component
                                        +atmos_sim = atmos_init(FT, config_dict_atmos);
                                        +thermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models

                                        We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.

                                        # init a 2D boundary space at the surface
                                        +boundary_space = atmos_sim.domain.face_space.horizontal_space

                                        init land-sea fraction

                                        land_fraction =
                                        +    Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, "LSMASK", boundary_space, mono = mono_surface)

                                        Land

                                        We use ClimaLSM.jl's bucket model.

                                        land_sim = bucket_init(
                                        +    FT,
                                        +    FT.(tspan),
                                        +    config_dict["land_domain_type"],
                                        +    config_dict["land_albedo_type"],
                                        +    comms_ctx,
                                        +    REGRID_DIR;
                                        +    dt = FT(Δt_cpl),
                                        +    space = boundary_space,
                                        +    saveat = FT(saveat),
                                        +    area_fraction = land_fraction,
                                        +    date_ref = date0,
                                        +    t_start = FT(0),
                                        +)

                                        Ocean and Sea Ice

                                        In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.

                                        In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.

                                        @info mode_name
                                        +if mode_name == "amip"
                                        +    @info "AMIP boundary conditions - do not expect energy conservation"
                                        +
                                        +    # ocean
                                        +    SST_info = bcfile_info_init(
                                        +        FT,
                                        +        REGRID_DIR,
                                        +        sst_data,
                                        +        "SST",
                                        +        boundary_space,
                                        +        comms_ctx,
                                        +        interpolate_daily = true,
                                        +        scaling_function = clean_sst, ## convert to Kelvin
                                        +        land_fraction = land_fraction,
                                        +        date0 = date0,
                                        +        mono = mono_surface,
                                        +    )
                                        +
                                        +    update_midmonth_data!(date0, SST_info)
                                        +    SST_init = interpolate_midmonth_to_daily(date0, SST_info)
                                        +    ocean_sim = SurfaceStub((;
                                        +        T_sfc = SST_init,
                                        +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                        +        z0m = FT(1e-3),
                                        +        z0b = FT(1e-3),
                                        +        beta = FT(1),
                                        +        α = FT(0.06),
                                        +        area_fraction = (FT(1) .- land_fraction),
                                        +        phase = TD.Liquid(),
                                        +        thermo_params = thermo_params,
                                        +    ))
                                        +    # sea ice
                                        +    SIC_info = bcfile_info_init(
                                        +        FT,
                                        +        REGRID_DIR,
                                        +        sic_data,
                                        +        "SEAICE",
                                        +        boundary_space,
                                        +        comms_ctx,
                                        +        interpolate_daily = true,
                                        +        scaling_function = clean_sic, ## convert to fraction
                                        +        land_fraction = land_fraction,
                                        +        date0 = date0,
                                        +        mono = mono_surface,
                                        +    )
                                        +    update_midmonth_data!(date0, SIC_info)
                                        +    SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)
                                        +    ice_fraction = get_ice_fraction.(SIC_init, mono_surface)
                                        +    ice_sim = ice_init(
                                        +        FT;
                                        +        tspan = tspan,
                                        +        dt = Δt_cpl,
                                        +        space = boundary_space,
                                        +        saveat = saveat,
                                        +        area_fraction = ice_fraction,
                                        +        thermo_params = thermo_params,
                                        +    )
                                        +
                                        +    # CO2 concentration
                                        +    CO2_info = bcfile_info_init(
                                        +        FT,
                                        +        REGRID_DIR,
                                        +        co2_data,
                                        +        "co2",
                                        +        boundary_space,
                                        +        comms_ctx,
                                        +        interpolate_daily = true,
                                        +        land_fraction = ones(boundary_space),
                                        +        date0 = date0,
                                        +        mono = mono_surface,
                                        +    )
                                        +
                                        +    update_midmonth_data!(date0, CO2_info)
                                        +    CO2_init = interpolate_midmonth_to_daily(date0, CO2_info)
                                        +    update_field!(atmos_sim, Val(:co2_gm), CO2_init)
                                        +
                                        +    mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info)
                                        +
                                        +elseif mode_name == "slabplanet"
                                        +    # ocean
                                        +    ocean_sim = ocean_init(
                                        +        FT;
                                        +        tspan = tspan,
                                        +        dt = Δt_cpl,
                                        +        space = boundary_space,
                                        +        saveat = saveat,
                                        +        area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)
                                        +        thermo_params = thermo_params,
                                        +    )
                                        +
                                        +    # sea ice (here set to zero area coverage)
                                        +    ice_sim = SurfaceStub((;
                                        +        T_sfc = ClimaCore.Fields.ones(boundary_space),
                                        +        ρ_sfc = ClimaCore.Fields.zeros(boundary_space),
                                        +        z0m = FT(0),
                                        +        z0b = FT(0),
                                        +        beta = FT(1),
                                        +        α = FT(1),
                                        +        area_fraction = ClimaCore.Fields.zeros(boundary_space),
                                        +        phase = TD.Ice(),
                                        +        thermo_params = thermo_params,
                                        +    ))
                                        +
                                        +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                                        +
                                        +elseif mode_name == "slabplanet_eisenman"
                                        +    # ocean
                                        +    ocean_sim = ocean_init(
                                        +        FT;
                                        +        tspan = tspan,
                                        +        dt = Δt_cpl,
                                        +        space = boundary_space,
                                        +        saveat = saveat,
                                        +        area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below
                                        +        thermo_params = thermo_params,
                                        +    )
                                        +
                                        +    # sea ice (here set to zero area coverage)
                                        +    ice_sim = eisenman_seaice_init(
                                        +        FT,
                                        +        tspan,
                                        +        space = boundary_space,
                                        +        area_fraction = (FT(1) .- land_fraction),
                                        +        dt = Δt_cpl,
                                        +        saveat = saveat,
                                        +        thermo_params = thermo_params,
                                        +    )
                                        +
                                        +    mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)
                                        +end

                                        Coupler Initialization

                                        The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.

                                        # coupler exchange fields
                                        +coupler_field_names = (
                                        +    :T_S,
                                        +    :z0m_S,
                                        +    :z0b_S,
                                        +    :ρ_sfc,
                                        +    :q_sfc,
                                        +    :albedo,
                                        +    :beta,
                                        +    :F_turb_energy,
                                        +    :F_turb_moisture,
                                        +    :F_turb_ρτxz,
                                        +    :F_turb_ρτyz,
                                        +    :F_radiative,
                                        +    :P_liq,
                                        +    :P_snow,
                                        +    :F_radiative_TOA,
                                        +    :P_net,
                                        +)
                                        +coupler_fields =
                                        +    NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))
                                        +
                                        +# model simulations
                                        +model_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);
                                        +
                                        +# dates
                                        +dates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])

                                        Online Diagnostics

                                        User can write custom diagnostics in the user_diagnostics.jl.

                                        monthly_3d_diags = init_diagnostics(
                                        +    (:T, :u, :q_tot, :q_liq_ice),
                                        +    atmos_sim.domain.center_space;
                                        +    save = Monthly(),
                                        +    operations = (; accumulate = TimeMean([Int(0)])),
                                        +    output_dir = COUPLER_OUTPUT_DIR,
                                        +    name_tag = "monthly_mean_3d_",
                                        +)
                                        +
                                        +monthly_2d_diags = init_diagnostics(
                                        +    (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),
                                        +    boundary_space;
                                        +    save = Monthly(),
                                        +    operations = (; accumulate = TimeMean([Int(0)])),
                                        +    output_dir = COUPLER_OUTPUT_DIR,
                                        +    name_tag = "monthly_mean_2d_",
                                        +)
                                        +
                                        +diagnostics = (monthly_3d_diags, monthly_2d_diags)

                                        Initialize Conservation Checks

                                        # init conservation info collector
                                        +conservation_checks = nothing
                                        +if energy_check
                                        +    @assert(
                                        +        mode_name[1:10] == "slabplanet" && !CA.is_distributed(ClimaComms.context(boundary_space)),
                                        +        "Only non-distributed slabplanet allowable for energy_check"
                                        +    )
                                        +    conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims))
                                        +end
                                        +
                                        +# coupler simulation
                                        +cs = CoupledSimulation{FT}(
                                        +    comms_ctx,
                                        +    dates,
                                        +    boundary_space,
                                        +    coupler_fields,
                                        +    config_dict,
                                        +    conservation_checks,
                                        +    [tspan[1], tspan[2]],
                                        +    atmos_sim.integrator.t,
                                        +    Δt_cpl,
                                        +    (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),
                                        +    model_sims,
                                        +    mode_specifics,
                                        +    diagnostics,
                                        +);

                                        Restart component model states if specified

                                        if restart_dir !== "unspecified"
                                        +    for sim in cs.model_sims
                                        +        if get_model_state_vector(sim) !== nothing
                                        +            restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)
                                        +        end
                                        +    end
                                        +end

                                        Initialize Component Model Exchange

                                        turbulent_fluxes = nothing
                                        +if config_dict["turb_flux_partition"] == "PartitionedStateFluxes"
                                        +    turbulent_fluxes = PartitionedStateFluxes()
                                        +elseif config_dict["turb_flux_partition"] == "CombinedStateFluxes"
                                        +    turbulent_fluxes = CombinedStateFluxes()
                                        +else
                                        +    error("turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes")
                                        +end
                                        1. coupler combines surface states and calculates rho_sfc using surface and atmos variables
                                        update_surface_fractions!(cs)
                                        +import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                        +import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                        +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                        1. each surface component model calculates its own vapor specific humidity (q_sfc)

                                        TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!

                                        step!(land_sim, Δt_cpl)
                                        +step!(ocean_sim, Δt_cpl)
                                        +step!(ice_sim, Δt_cpl)
                                        1. coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions
                                        if turbulent_fluxes isa CombinedStateFluxes

                                        calculate fluxes using combined surface states on the atmos grid

                                            import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc
                                        +    combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts
                                        +elseif turbulent_fluxes isa PartitionedStateFluxes

                                        calculate turbulent fluxes in surface models and save the weighted average in coupler fields

                                            partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                        update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)

                                            new_p = get_new_cache(atmos_sim, cs.fields)
                                        +    CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)
                                        +    atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                        +end
                                        1. given the new sfc_conditions, atmos calls the radiative flux callback
                                        reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux
                                        1. coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types

                                        and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.

                                        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)
                                        +update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)

                                        Coupling Loop

                                        function solve_coupler!(cs)
                                        +    @info "Starting coupling loop"
                                        +
                                        +    @unpack model_sims, Δt_cpl, tspan = cs
                                        +    @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims
                                        +
                                        +    # step in time
                                        +    walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])
                                        +
                                        +        cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.
                                        +
                                        +        # print date on the first of month
                                        +        if cs.dates.date[1] >= cs.dates.date1[1]
                                        +            @show(cs.dates.date[1])
                                        +        end
                                        +
                                        +        if cs.mode.name == "amip"
                                        +
                                        +            # monthly read of boundary condition data for SST and SIC and CO2
                                        +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)
                                        +                update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)
                                        +            end
                                        +            SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)
                                        +            update_field!(ocean_sim, Val(:surface_temperature), SST_current)
                                        +
                                        +            if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)
                                        +                update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)
                                        +            end
                                        +            SIC_current =
                                        +                get_ice_fraction.(interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), mono_surface)
                                        +            update_field!(ice_sim, Val(:area_fraction), SIC_current)
                                        +
                                        +            if cs.dates.date[1] >= next_date_in_file(cs.mode.CO2_info)
                                        +                update_midmonth_data!(cs.dates.date[1], cs.mode.CO2_info)
                                        +            end
                                        +            CO2_current = interpolate_midmonth_to_daily(date0, CO2_info)
                                        +            update_field!(atmos_sim, Val(:co2_gm), CO2_current)
                                        +
                                        +            # calculate and accumulate diagnostics at each timestep
                                        +            ClimaComms.barrier(comms_ctx)
                                        +            accumulate_diagnostics!(cs)
                                        +
                                        +            # save and reset monthly averages
                                        +            save_diagnostics(cs)
                                        +
                                        +        end
                                        +
                                        +        # compute global energy
                                        +        !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing
                                        +
                                        +        # run component models sequentially for one coupling timestep (Δt_cpl)
                                        +        ClimaComms.barrier(comms_ctx)
                                        +        update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)
                                        +
                                        +        # step sims
                                        +        step_model_sims!(cs.model_sims, t)
                                        +
                                        +        # exchange combined fields and (if specified) calculate fluxes using combined states
                                        +        update_surface_fractions!(cs)
                                        +        import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta
                                        +        if turbulent_fluxes isa CombinedStateFluxes
                                        +            combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)
                                        +        elseif turbulent_fluxes isa PartitionedStateFluxes

                                        calculate turbulent fluxes in surfaces and save the weighted average in coupler fields

                                                    partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)

                                        update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)

                                                    new_p = get_new_cache(atmos_sim, cs.fields)
                                        +            CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification)
                                        +            atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions
                                        +        end
                                        +
                                        +        import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent
                                        +
                                        +        # monthly callbacks
                                        +        if trigger_callback(cs, Monthly())
                                        +            # step to the next calendar month
                                        +            cs.dates.date1[1] += Dates.Month(1)
                                        +            # checkpoint model state
                                        +            if monthly_checkpoint
                                        +                for sim in cs.model_sims
                                        +                    if get_model_state_vector(sim) !== nothing
                                        +                        checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)
                                        +                    end
                                        +                end
                                        +            end
                                        +        end
                                        +
                                        +    end
                                        +    @show walltime
                                        +
                                        +    return cs
                                        +end
                                        +
                                        +
                                        +# run the coupled simulation
                                        +solve_coupler!(cs);

                                        Postprocessing

                                        Currently all postprocessing is performed using the root process only.

                                        if ClimaComms.iamroot(comms_ctx)
                                        +
                                        +    # energy check plots
                                        +    if !isnothing(cs.conservation_checks) && cs.mode.name[1:10] == "slabplanet"
                                        +        @info "Conservation Check Plots"
                                        +        plot_global_conservation(
                                        +            cs.conservation_checks.energy,
                                        +            cs,
                                        +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_bucket.png"),
                                        +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_energy_log_bucket.png"),
                                        +        )
                                        +        plot_global_conservation(
                                        +            cs.conservation_checks.water,
                                        +            cs,
                                        +            figname1 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_bucket.png"),
                                        +            figname2 = joinpath(COUPLER_ARTIFACTS_DIR, "total_water_log_bucket.png"),
                                        +        )
                                        +    end
                                        +
                                        +    # sample animations
                                        +    if !is_distributed && config_dict["anim"]
                                        +        @info "Animations"
                                        +        include("user_io/viz_explorer.jl")
                                        +        plot_anim(cs, COUPLER_ARTIFACTS_DIR)
                                        +    end
                                        +
                                        +    # plotting AMIP results
                                        +    if cs.mode.name == "amip"
                                        +        @info "AMIP plots"
                                        +
                                        +        # ClimaESM
                                        +        include("user_io/amip_visualizer.jl")
                                        +        post_spec = (;
                                        +            T = (:regrid, :zonal_mean),
                                        +            u = (:regrid, :zonal_mean),
                                        +            q_tot = (:regrid, :zonal_mean),
                                        +            toa_fluxes = (:regrid, :horizontal_slice),
                                        +            precipitation_rate = (:regrid, :horizontal_slice),
                                        +            T_sfc = (:regrid, :horizontal_slice),
                                        +            tubulent_energy_fluxes = (:regrid, :horizontal_slice),
                                        +            q_liq_ice = (:regrid, :zonal_mean),
                                        +        )
                                        +
                                        +        plot_spec = (;
                                        +            T = (; clims = (190, 320), units = "K"),
                                        +            u = (; clims = (-50, 50), units = "m/s"),
                                        +            q_tot = (; clims = (0, 30), units = "g/kg"),
                                        +            toa_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                        +            precipitation_rate = (clims = (0, 1e-4), units = "kg/m^2/s"),
                                        +            T_sfc = (clims = (225, 310), units = "K"),
                                        +            tubulent_energy_fluxes = (; clims = (-250, 250), units = "W/m^2"),
                                        +            q_liq_ice = (; clims = (0, 10), units = "g/kg"),
                                        +        )
                                        +        amip_data = amip_paperplots(
                                        +            post_spec,
                                        +            plot_spec,
                                        +            COUPLER_OUTPUT_DIR,
                                        +            files_root = ".monthly",
                                        +            output_dir = COUPLER_ARTIFACTS_DIR,
                                        +        )
                                        +
                                        +        # NCEP reanalysis
                                        +        @info "NCEP plots"
                                        +        include("user_io/ncep_visualizer.jl")
                                        +        ncep_post_spec = (;
                                        +            T = (:zonal_mean,),
                                        +            u = (:zonal_mean,),
                                        +            q_tot = (:zonal_mean,),
                                        +            toa_fluxes = (:horizontal_slice,),
                                        +            precipitation_rate = (:horizontal_slice,),
                                        +            T_sfc = (:horizontal_slice,),
                                        +            tubulent_energy_fluxes = (:horizontal_slice,),
                                        +        )
                                        +        ncep_plot_spec = plot_spec
                                        +        ncep_data = ncep_paperplots(
                                        +            ncep_post_spec,
                                        +            ncep_plot_spec,
                                        +            COUPLER_OUTPUT_DIR,
                                        +            output_dir = COUPLER_ARTIFACTS_DIR,
                                        +            month_date = cs.dates.date[1],
                                        +        ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)
                                        +    end
                                        +
                                        +    # clean up
                                        +    rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)
                                        +end

                                        This page was generated using Literate.jl.

                                        diff --git a/previews/PR459/generated/sea_breeze/atmos_rhs/index.html b/previews/PR459/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..1aa31f69e --- /dev/null +++ b/previews/PR459/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                                        Atmospheric Model

                                        Atmosphere Conservation Equations

                                        Density:

                                        \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                                        Momentum (flux form):

                                        \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                                        Potential temperature:

                                        \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                                        Total Energy (possibly replace potential temperature equation with total energy conservation):

                                        \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                                        where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                                        Tracer transport:

                                        \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                                        Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                                        \[\rho\tau = -2\rho\nu\nabla u.\]

                                        Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                                        \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                                        with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                                        Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                                        Consider components of the viscous stress tensor in three dimensions:

                                        \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                                        Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                                        \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                                        Which can be interpreted as, for horizontal-momentum:

                                        1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                        2. Vertical divergence of vertical gradients of cell-centered variables $u$
                                        3. Vertical divergence of horizontal gradients of cell-face variables $w$

                                        and for vertical-momentum, as:

                                        1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                        2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                                        3. Vertical divergence of vertical gradients of cell-face variables $w$.

                                        Model Code

                                        push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                                        +
                                        +using Test
                                        +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                                        +
                                        +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                                        +using ClimaCore.Geometry
                                        +using ClimaCore.Utilities: PlusHalf
                                        +
                                        +using Logging: global_logger
                                        +using TerminalLoggers: TerminalLogger
                                        +global_logger(TerminalLogger())
                                        +
                                        +using ClimaCoupler
                                        +
                                        +# set up function space
                                        +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                                        +    FT = Float64
                                        +    vertdomain = Domains.IntervalDomain(
                                        +        Geometry.ZPoint{FT}(zlim[1]),
                                        +        Geometry.ZPoint{FT}(zlim[2]);
                                        +        boundary_tags = (:bottom, :top),
                                        +    )
                                        +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                                        +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                                        +
                                        +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                        +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                                        +    horztopology = Topologies.IntervalTopology(horzmesh)
                                        +
                                        +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                                        +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                                        +
                                        +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                                        +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                                        +    return (hv_center_space, hv_face_space)
                                        +end
                                        +
                                        +function pressure(ρθ)
                                        +    if ρθ >= 0
                                        +        return MSLP * (R_d * ρθ / MSLP)^γ
                                        +    else
                                        +        return NaN
                                        +    end
                                        +end
                                        +
                                        +Φ(z) = grav * z
                                        +
                                        +abstract type BCtag end
                                        +struct ZeroFlux <: BCtag end
                                        +
                                        +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                        +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                        +
                                        +function init_sea_breeze_2d(x, z)
                                        +    θ₀ = atm_T_ini
                                        +    cp_d = C_p
                                        +    cv_d = C_v
                                        +    p₀ = MSLP
                                        +    g = grav
                                        +    γ = cp_d / cv_d
                                        +    z_c = 100.0
                                        +    θ_b = atm_T_ini
                                        +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                                        +    θ = θ_b + θ_p # potential temperature
                                        +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                                        +    T = π_exn * θ # temperature
                                        +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                                        +    ρ = p / R_d / T # density
                                        +    ρθ = ρ * θ # potential temperature density
                                        +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                                        +end
                                        +
                                        +function atm_rhs!(dY, Y, params, t)
                                        +    ρw = Y.ρw
                                        +    Yc = Y.Yc
                                        +    dYc = dY.Yc
                                        +    dρw = dY.ρw
                                        +
                                        +    center_coords = Fields.coordinate_field(axes(Yc))
                                        +
                                        +    # spectral horizontal operators
                                        +    hdiv = Operators.Divergence()
                                        +    hgrad = Operators.Gradient()
                                        +    hwdiv = Operators.WeakDivergence()
                                        +    hwgrad = Operators.WeakGradient()
                                        +
                                        +    # vertical FD operators with BC's
                                        +    vdivf2c = Operators.DivergenceF2C(
                                        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                        +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                        +    )
                                        +    vvdivc2f = Operators.DivergenceC2F(
                                        +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                                        +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                                        +    )
                                        +    uvdivf2c = Operators.DivergenceF2C(
                                        +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                        +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                        +    )
                                        +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                        +    Ic = Operators.InterpolateF2C()
                                        +    ∂ = Operators.DivergenceF2C(
                                        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                        +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                        +    )
                                        +    ∂f = Operators.GradientC2F()
                                        +    ∂c = Operators.GradientF2C()
                                        +    B = Operators.SetBoundaryOperator(
                                        +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                        +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                        +    )
                                        +
                                        +    ∇_z_ρθ = Operators.DivergenceF2C(
                                        +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                                        +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                                        +    )
                                        +
                                        +    uₕ = @. Yc.ρuₕ / Yc.ρ
                                        +    w = @. ρw / If(Yc.ρ)
                                        +    wc = @. Ic(ρw) / Yc.ρ
                                        +    p = @. pressure(Yc.ρθ)
                                        +    θ = @. Yc.ρθ / Yc.ρ
                                        +    Yfρ = @. If(Yc.ρ)
                                        +
                                        +    ### HYPERVISCOSITY
                                        +    # 1) compute hyperviscosity coefficients
                                        +    @. dYc.ρθ = hwdiv(hgrad(θ))
                                        +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                                        +    @. dρw = hwdiv(hgrad(w))
                                        +    Spaces.weighted_dss!(dYc)
                                        +    Spaces.weighted_dss!(dρw)
                                        +
                                        +    κ₄ = 0.0 # m^4/s
                                        +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                                        +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                                        +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                                        +
                                        +    # density
                                        +    @. dYc.ρ = -∂(ρw)
                                        +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                                        +
                                        +    # potential temperature
                                        +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                                        +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                                        +
                                        +    # horizontal momentum
                                        +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                                        +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                                        +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                                        +
                                        +    # vertical momentum
                                        +    @. dρw +=
                                        +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                                        +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                                        +    @. dρw -= hdiv(uₕf ⊗ ρw)
                                        +
                                        +    # DIFFUSION
                                        +    κ₂ = 5.0 # m^2/s
                                        +    #  1a) horizontal div of horizontal grad of horiz momentun
                                        +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                                        +    #  1b) vertical div of vertical grad of horiz momentun
                                        +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                                        +
                                        +    #  1c) horizontal div of horizontal grad of vert momentum
                                        +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                                        +    #  1d) vertical div of vertical grad of vert momentun
                                        +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                                        +
                                        +    #  2a) horizontal div of horizontal grad of potential temperature
                                        +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                                        +    #  2b) vertical div of vertial grad of potential temperature
                                        +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                                        +
                                        +    Spaces.weighted_dss!(dYc)
                                        +    Spaces.weighted_dss!(dρw)
                                        +    return dY
                                        +end
                                        +
                                        +# init simulation
                                        +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                                        +
                                        +    # construct domain spaces
                                        +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                                        +    center_coords = Fields.coordinate_field(hv_center_space)
                                        +    face_coords = Fields.coordinate_field(hv_face_space)
                                        +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                                        +
                                        +    # initialize prognostic variables
                                        +    Yc = map(center_coords) do coord
                                        +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                                        +        sea_breeze
                                        +    end
                                        +
                                        +    ρw = map(face_coords) do coord
                                        +        Geometry.WVector(0.0)
                                        +    end
                                        +
                                        +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                                        +
                                        +    # select boundary conditions
                                        +    if bc === nothing
                                        +        bc = (
                                        +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                                        +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                                        +        )
                                        +    end
                                        +
                                        +    return Y, bc, domain
                                        +end
                                        +
                                        +using OrdinaryDiffEq
                                        +function atm_run!(Y, bc, domain)
                                        +    dYdt = similar(Y)
                                        +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                                        +    atm_rhs!(dYdt, Y, params, 0.0)
                                        +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                                        +    Δt = 0.025
                                        +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                                        +end

                                        Coupled Atmos Wrappers

                                        # Atmos Simulation - later to live in ClimaAtmos
                                        +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                                        +    integrator::Any
                                        +end
                                        +
                                        +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                        +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                                        +
                                        +    atm_integ = init(
                                        +        atm_prob,
                                        +        timestepper,
                                        +        dt = dt,
                                        +        saveat = saveat,
                                        +        progress = true,
                                        +        progress_message = (dt, u, params, t) -> t,
                                        +        callback = callbacks,
                                        +    )
                                        +
                                        +    return AtmosSimulation(atm_integ)
                                        +end
                                        +
                                        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                                        +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                                        +end
                                        +
                                        +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                                        +    # reset flux accumulator
                                        +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                                        +
                                        +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                                        +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                                        +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                                        +end

                                        Coupled Boundary Conditions

                                        The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                                        To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                                        struct CoupledFlux <: BCtag end
                                        +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                                        +    # flux calculation
                                        +    Yc = Y.Yc
                                        +    uₕ = Yc.ρuₕ ./ Yc.ρ
                                        +    ρw = Y.ρw
                                        +    If2c = Operators.InterpolateF2C()
                                        +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                        +    w = If2c.(ρw) ./ Yc.ρ
                                        +    cuv = @. Geometry.UWVector(uₕ)
                                        +    windspeed = @. norm(cuv)
                                        +    windspeed_boundary = Fields.level(windspeed, 1)
                                        +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                                        +    ρ_boundary = Fields.level(Yc.ρ, 1)
                                        +
                                        +    # build atmos face fields on surface boundary space to enable broadcasting
                                        +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                                        +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                                        +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                                        +
                                        +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                                        +    dθ = @. θ_boundary - p.T_sfc
                                        +    heat_flux = @. -λ * dθ
                                        +    @. dY.F_sfc += heat_flux # accumulation
                                        +
                                        +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                                        +end

                                        This page was generated using Literate.jl.

                                        diff --git a/previews/PR459/generated/sea_breeze/land_rhs/index.html b/previews/PR459/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..f092f08fd --- /dev/null +++ b/previews/PR459/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                                        Land Model

                                        Slab Land ODE

                                        For our land component, we solve a simple slab land ODE:

                                        \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                                        • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                                        • and $F_{integ}$ is the integrated surface fluxes in time.

                                        Model Code

                                        function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                                        +    """
                                        +    Slab layer equation
                                        +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                                        +        where
                                        +            F_accumulated = F_integrated / Δt_coupler
                                        +    """
                                        +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                                        +    @unpack T_sfc = du
                                        +
                                        +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                                        +end
                                        +
                                        +# set up domain
                                        +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                        +    FT = Float64
                                        +
                                        +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                        +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                        +    topology = Topologies.IntervalTopology(mesh)
                                        +
                                        +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                        +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                        +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                        +
                                        +    return space
                                        +end
                                        +
                                        +# init simulation
                                        +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                        +
                                        +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                        +    space = hspace_1D((xmin, xmax), npoly, helem)
                                        +    coords = Fields.coordinate_field(space)
                                        +    domain = space
                                        +
                                        +    # initial condition
                                        +    T_sfc = map(coords) do coord
                                        +        T_sfc = 273.0
                                        +    end
                                        +
                                        +    # prognostic variable
                                        +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                        +
                                        +    return Y, domain
                                        +end

                                        Coupled Land Wrappers

                                        # Land Simulation - later to live in ClimaLSM
                                        +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                                        +    integrator::Any
                                        +end
                                        +
                                        +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                        +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                                        +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                        +    return LandSimulation(lnd_integ)
                                        +end
                                        +
                                        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                                        +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                                        +end
                                        +
                                        +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                                        +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                                        +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                                        +end

                                        This page was generated using Literate.jl.

                                        diff --git a/previews/PR459/generated/sea_breeze/ocean_rhs/index.html b/previews/PR459/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..00a93e6f5 --- /dev/null +++ b/previews/PR459/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                                        Ocean Model

                                        Slab Ocean ODE

                                        For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                                        \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                                        • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                                        • and $F_{integ}$ is the integrated surface fluxes in time.

                                        Model Code

                                        function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                                        +    """
                                        +    Slab layer equation
                                        +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                                        +        where
                                        +            F_accumulated = F_integrated / Δt_coupler
                                        +    """
                                        +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                                        +    @unpack T_sfc = du
                                        +
                                        +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                                        +end
                                        +
                                        +# set up domain
                                        +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                        +    FT = Float64
                                        +
                                        +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                        +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                        +    topology = Topologies.IntervalTopology(mesh)
                                        +
                                        +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                        +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                        +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                        +
                                        +    return space
                                        +end
                                        +
                                        +# init simulation
                                        +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                        +
                                        +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                        +    space = hspace_1D((xmin, xmax), npoly, helem)
                                        +    coords = Fields.coordinate_field(space)
                                        +    domain = space
                                        +
                                        +    # initial condition
                                        +    T_sfc = map(coords) do coord
                                        +        T_sfc = 267.0
                                        +    end
                                        +
                                        +    # prognostic variable
                                        +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                        +
                                        +    return Y, domain
                                        +end

                                        Coupled Ocean Wrappers

                                        # Ocean Simulation - Later to live in Oceananigans
                                        +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                                        +    integrator::Any
                                        +end
                                        +
                                        +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                        +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                                        +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                        +    return OceanSimulation(ocn_integ)
                                        +end
                                        +
                                        +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                                        +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                                        +end
                                        +
                                        +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                                        +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                                        +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                                        +end

                                        This page was generated using Literate.jl.

                                        diff --git a/previews/PR459/generated/sea_breeze/run/index.html b/previews/PR459/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..a5494b631 --- /dev/null +++ b/previews/PR459/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                                        Coupled Sea Breeze

                                        Overview

                                        This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                                        In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                                        import ClimaCore.Spaces as Spaces

                                        Model Initialization

                                        Component Models

                                        Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                                        In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                                        include("atmos_rhs.jl")
                                        +include("ocean_rhs.jl")
                                        +include("land_rhs.jl")
                                        +
                                        +# model parameters
                                        +const atm_T_ini = FT(270.0)
                                        +const MSLP = FT(1e5)
                                        +const grav = FT(9.8)
                                        +const R_d = FT(287.058)
                                        +const γ = FT(1.4)
                                        +const C_p = FT(R_d * γ / (γ - 1))
                                        +const C_v = FT(R_d / (γ - 1))
                                        +const R_m = R_d
                                        +cpl_parameters = (
                                        +    # atmos parameters
                                        +    atm_μ = FT(0.0001), # diffusion coefficient
                                        +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                                        +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                                        +    MSLP = MSLP, # mean sea level pressure
                                        +    grav = grav, # gravitational constant
                                        +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                                        +    γ = γ, # heat capacity ratio
                                        +    C_p = C_p, # heat capacity at constant pressure
                                        +    C_v = C_v, # heat capacity at constant volume
                                        +    R_m = R_m, # moist R, assumed to be dry
                                        +    # land slab parameters
                                        +    lnd_h = FT(0.5), # depth of slab layer [m]
                                        +    lnd_ρ = FT(1500), # density [kg m^-3]
                                        +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                                        +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                        +    # ocean slab parameters
                                        +    ocn_h = FT(0.5), # depth of slab layer [m]
                                        +    ocn_ρ = FT(1025), # density [kg m^-3]
                                        +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                                        +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                        +    # coupling parameters
                                        +    C_H = FT(0.0015),
                                        +)
                                        +
                                        +# DSS callback
                                        +function make_dss_func()
                                        +    function _dss!(x::Fields.Field)
                                        +        Spaces.weighted_dss!(x)
                                        +    end
                                        +    function _dss!(::Any)
                                        +        nothing
                                        +    end
                                        +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                                        +    return dss_func
                                        +end
                                        +dss_func = make_dss_func()
                                        +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                                        Initialization

                                        The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                                        Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                                        @info "Init Models and Maps"
                                        +
                                        +t_start, t_end = (0.0, 1.0)
                                        +Δt_coupled = 0.1
                                        +saveat = 1e2
                                        +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                                        +
                                        +# Initialize Models
                                        +atm_Y_default, atm_bc, atm_domain = atm_init(
                                        +    xmin = -500,
                                        +    xmax = 500,
                                        +    zmin = 0,
                                        +    zmax = 1000,
                                        +    npoly = 4,
                                        +    helem = 20,
                                        +    velem = 20,
                                        +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                                        +)
                                        +
                                        +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                                        +
                                        +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                                        Remapping

                                        Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                                        atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                                        +
                                        +maps = (
                                        +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                                        +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                                        +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                                        +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                                        +)
                                        +
                                        +# initialize coupling fields
                                        +atm_T_sfc =
                                        +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                                        +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                                        +atm_F_sfc = Fields.zeros(atm_boundary)
                                        +ocn_F_sfc = Fields.zeros(ocn_domain)
                                        +lnd_F_sfc = Fields.zeros(lnd_domain)

                                        Simulations

                                        Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                                        atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                                        +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                                        +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                                        +
                                        +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                                        +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                                        +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                                        +
                                        +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                                        +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                                        +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                                        Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                                        struct AOLCoupledSimulation{
                                        +    A <: AtmosSimulation,
                                        +    O <: OceanSimulation,
                                        +    L <: LandSimulation,
                                        +    C <: ClimaCoupler.CouplerState,
                                        +} <: ClimaCoupler.AbstractCoupledSimulation
                                        +    # Atmosphere Simulation
                                        +    atmos::A
                                        +    # Ocean Simulation
                                        +    ocean::O
                                        +    # Land Simulation
                                        +    land::L
                                        +    # Coupler storage
                                        +    coupler::C
                                        +end

                                        step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                                        function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                                        +    Δt = t_stop - sim.integrator.t
                                        +    step!(sim.integrator, Δt, true)
                                        +end

                                        The Coupler

                                        The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                                        After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                                        Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                                        Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                                        \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                                        where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                                        coupler = CouplerState(Δt_coupled)
                                        +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                                        +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                                        +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                                        +for (name, map) in pairs(maps)
                                        +    coupler_add_map!(coupler, name, map)
                                        +end
                                        +
                                        +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                                        Coupled Time Integration

                                        Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                                        Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                                        Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                                        \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                                        where $F_{integ}$ has units of $J m^{-2}$.

                                        function cpl_run(simulation::AOLCoupledSimulation)
                                        +    @info "Run model"
                                        +    @unpack atmos, ocean, land, coupler = simulation
                                        +    Δt_coupled = coupler.Δt_coupled
                                        +    # coupler stepping
                                        +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                                        +        # Atmos
                                        +        coupler_pull!(atmos, coupler)
                                        +        step!(atmos, t)
                                        +        coupler_push!(coupler, atmos)
                                        +
                                        +        # Ocean
                                        +        coupler_pull!(ocean, coupler)
                                        +        step!(ocean, t)
                                        +        coupler_push!(coupler, ocean)
                                        +
                                        +        # Land
                                        +        coupler_pull!(land, coupler)
                                        +        step!(land, t)
                                        +        coupler_push!(coupler, land)
                                        +    end
                                        +    @info "Simulation Complete"
                                        +end
                                        +
                                        +# Run simulation
                                        +cpl_run(sim)

                                        References


                                        This page was generated using Literate.jl.

                                        diff --git a/previews/PR459/images/canvas_coupler.png b/previews/PR459/images/canvas_coupler.png new file mode 100644 index 0000000000000000000000000000000000000000..ec00d5002fb53fa57afa8f5faf9576360fb20d3a GIT binary patch literal 396337 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≻Sc%U)T8k{A-Bzr;xr@RVDbr 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

                                        F%(Oqj^TXm?G`O?VVc5@b5u4&3|(54GK6f9}rBF zozJV`Qfo6{of_EiWByB8eBo4ie$ZxsV2bREml~AaB~N-*I^q0>y4P6PG4IGO*wT9V z^)LT77!DFNe+Wr`gW-p_k-=~Y>i>0j?BgL^{Mp@d#0k%8!&?xiz-u?RDZ33)TJMZQ z>@Bu>q!)vpAd2VEf<~}_el4@of^%=X_VSge*1_BWBS>&gHtV@QfLpivt@bxOp&UyL z#9Cm&3-jMuhkfnD`^G{c&|dwW8|%0wly=&R#$)UrQo_CrH3r#mJCF@O(m!DYqj0CA zTiBF7mn0S;6{m1e*7z;u(7ZXqEG4Wy*fJH#%jQf>hzDa6fOwkw1c*(p zbVbgec`EZC%>|M&{xFQNLIFqs-t|+{4>VCKnt*96>W=ZM|QR>}#2bNKJ zA5G%GH5q7Yqlh~#VK1cE9OO;Ebz^c+q^7Rl=J}U3A+VX{ZF%%&A1PpcIxP3%!`{16 zxit|#(J5n_2y}UyvSvmUx*&lFJ;JKY3Di&?UoIYUT#dBb)a_UC?+J;PODaO&q&-_Pb3L6=D8eHbH>q8Z zPb2qJd1xL!?r1bffcN}KfUhyO+OECzy3|4u-{jnV^Fu$9qR&}iiAh`)cvynSKYVkM zB4x$GZ-h=KKd~O`-Yw!&vn8~GjLC(f{BmwXl?vjPcaR6)oSA0ZZrhpDM|8_%_|#YV z??s1h1O}lxNMGtMw?-0jeFl3J`*E@9W`3ah9ui>4CB zFLQD#xZUu1;gqCDC{fP+478!aVCKk4d`2tUi7LZc0Z$0T?u5M3+6GhBjYoddio(0q zm$q)v68`#S1I7B>bCB{TOgW1@jx~ICe7t^5zKpfnhXzNZ3!@Sq;yZt#YzHW{3I3tY}LdX9clXc?B{qPw-^I2{8Sw+c1 z;8+lN$hQ}*R*D>8kXu;(NZe5j#pI)*&F>3C3Tz?5?P!ydY3T1%e!~;yJ?57VrT-<% z-E(pMRyqd=Y2Szg?V~$jTIhf3A%S>!x6HSeyL}WlI}0A+8aQDxJLeE-+R~LwRBA8ni7;JZ+Bhfdy`7h==sEetJE*cNg6eOp65}~27koZA za{?0?1JQ-N0j!bLuk0A_`Q>&kQA!P4YqWZ#9T!&^$roUJFx15&Fx8^$1Ig}hHj><4 zPQT*YA!gXyhH;nPo0P%BU4mG%G0Je!QKAoqkD!rr4s^dK5g5|Z6(6aWRLs*qG0PW@ z^jpg@7~@&bGEbq{WCN23$f63C=+YP9}B!XV`+Raf!Vqj0fssFs| z0pC-|j|be6j^dF-z-h%*I_qNTDCwD8wfuqC%FrfCebcl@WG^td5*g!n^F;=@*ISff z>B%lg1JL$cV175a=|*h8BW$<04*j!xAw0csT7jA(3g$KeenQYjGE&{PoytPHRA;O&bw3k=-OY6${IchAZelVyVb}BA7<870 zVWL!O6K!=&I$5lNH4Mv(Z%@KWO>1S{vOueJUi4=Wtgb4&p2*rQ@{dZtkk@;WpGji4 zX)vWqrKTAMs*5*)R;tg>Pbs&cbc9YDJ=gZzA#np7i0U%5I41+-D1m@%--+RO$pj|v zYv0`L5VJG`>FJn-anV+7n+B)3s~G|+lTs$fQ}Xt&ZO2Oen^=3%n1nqnEPLob4p^t9}1OXmO=HK!5lDav(B9!bpoVcXOAptxI2 z+1*|<K=^xP;k>perc0T-Wf~;;QOtniyNg}I*Z$=eXMmVy9K>i zG^3!^udZ|h6MTO^IiBv7GD97}qM`6k&jt1v4}c&3@_ouHf<6Igrys`nf zPdrH$+_vnUopPw_=I5>=JVR0nFHW!);*;>8^v&>bMt?dtPKr8anAhHrp($E!{5s`<`4h772@yJ0Bxds;uov z{Kg7a)Hf}Bu1~aE;K#YuK9irVyalEGaaIhvmcLKvZ|)k|XQN4-0=7JLmfYu8@rS-E z2kxdFtV#uGXSoU{)#`y60Xn!5Gb%nHasAoDndB8RZ*2n10!|8;*!)ZXCJKr6j;34L zt);zWq(wuCv$!vI{0uf4@wc$_a}eLjrb8aac}TqXDsY@W=X-ONym(mp$NWor<>C9+ zL{!+D8NNsCbbbsGTPjdR4&|4|X37P(gyDQ#M|?cLcs>z5{&J)uri(R?duw>$K zhaXhhl5dJ{t_pXJg-Y27y&U=PHMI&gXkkC=3iEKNey`HRM*09baa#FL-j$UEJ1a$% zLvqNt3L&+-W+Ty>EC?G)-thPNe`PVBMqh5wxP3vZ?Ns-mgyr!n;7--Sq3XgaCsq?7 z-zZ0e*lU6Wm1zvEKG*JPrTaf;E-32eQBlbj^kV04vwHcG>DNs($0nvGQjE2>YT-E^ zHgS{uNt4+K3okMpC-tXm3@0fWRwg_4c6RfM9(TQB>U-@YYlTV(Y&4CvZ?-dr#U^A8 z8f2#B*h5B#_Q`pr)86U6<(22P81#MoB%nTP(!4?gKajHYwx15p6RE6eY6rQ;Cq%*d zDpWY@JFXcE!}QHc^-}r|>bd(TCrHs3KI$&fjAH9u(w^qaiX~;=muG#iu9_k2$Wf3V z3X@>LVZHs5R6SW)gSzwN*2y?A_u@mI<#T!NVJ!GxEvzO;PZvXdlQB$Tr7Ei`JbKyw zH161eSMfX#uXAi~$Glt}Lpp&=ih_sxMY2J>+G}dFANdl6FJ9)p_u;M1pzqW&j87!a zPgS&oF>`)T_n@OxE+9=ryi7Xn+73dkFDz3RJbqcqS)*ss z*16M19+wKqB{!=WCryFI?t~1l#KzNVm}4@J$9_7J`W^kA_|E&BFI6->%Z^FGc*{WC zDQ;6o{EeTu9p%B?4z>g1ROm;_sm;0((POjln5+E|7TaaIrm+1)*lEiE@BnNghHMM<_p^+P)&yHM&$%i`M4DHhn!8CJUWKX~ z7fPP=UGFg0b&utm1%S5;uO~jm0F2+F!$o)0Xv1rNOO}K)R8g~$+VoprkgmsinXE}( zZm5W{EMGIDk2!SGt0{N^Q9u_?_1&GGp-|A#P{L^9PHlIW1@x&&i>>+6c(q}+MKyuZ zW2go6jZtU9OBch_n~zAOc}E;V!ilC074D6_5n^7>NnZ-gcagGe;WnBaphiIp!Vl{v z*~!xzj3^u>HR>`7Ww$w5wIm8Kg)~N)$xht%LnOZ$o+`Ng?4zOl{gG%4yG*H(+Fdjr z{Ng8J7SQ476PZjU9)!A6>8F5Tl6{S8jZwXpJHynQjKUo&+KxGHS!_~SQK1}NkqWA_ z&eNl;JTE$;2D{AS*AX;(0<{e$qVQ9~90BI|iTEXxut$54N@%+07bT5yQq_%kNwo+M z+LejZz$AX-m#wiox3o7B8_9$ObahW=b4}i`ur4#3nNdx_yt`iwx4lBo+i)*{dPs-U zd%&i%ob}*sfwNqvx-mWGP`yvG?{AId>{rwg3OPD%I(4s$zF;x_wc~$gWQrR_Cw462 zTO=N*Nc@zcG-6OQLpH&8vJ_wXve&KI`ST_HBNgq-ofQ_#Y~RdT-&CuZiB|M=)8v-G z0H61C2jYVIyZxqYgr%~(gn4plbafk0mX6jZ<0g{Xq1ucI=g~yGepV*dMbY@u$rH|> z>KYzW7>*84+$p08Q(okoA}Pt6nNcW{SQyQ@Gci6$ZkQFJ{pAjy?_S2R@2WaZ?Y?gx zLN;mC%rSv$sZ1`PnBMF3B-r!l+|#2l~XVVHDMmPV&nHNvf;*RR=JIfK@%UOaLsPt4x59J}{)=+`6=`3P@n z_NNf!NUv!SE-}zDp;At&Y`f*rubS`hw#dnMAz%VlB3u zuPZubPq=PEqDClcUxx|ke$Q0ZtB!28EvJH}bn8_wb3h4r1!ulv3i`j-b1{0{`KX{| zHR}KeJ_1tRkFUXFyK)voj_)J%T}b?vJ~ru9H|Yub<-c$w;)A0J2!DXpaq{ZNV;X%NX5Lbh4c)ty$ zP7V)*qf|A-RU)%38IbAy_IP{&lFHt^v>u!tV(?$H#{ZJq!OW#D$IS+wW8i~e4VQ)0 z-Fix}cmoYy3*Ha8xZVk@qKHrBX2?{ue>571wN8%-6M~|*yUxJYLn_hZ-@>fHE!W!C(XlN#G>wH>SLhSmn#YXn_ge^Tdyzj7F13^9_*&N93SLi z$`T6V>2>pGNW+15+M*i|I2hBzK#H}$`PztL?P6jCZfN-|1^C$i!Q3!#h zn=6MAT^>P*%+D`G+ePt#O;&C!b7}FHzg~xfyBb#o2ZeF=qE>#tMdJ(2S7h`;i`WYY zTFXmnb;vBxrdktt>9dVT1uZ%du-XQ+Bk=S8x2pS}I~RC)|4psuE%`2!rzPGn&|%-S zvUnZKBT+Nr0+ofJ%lN>!dSZd9S%ViDM78aLSdGhq_EUass1+bafdkR}T=t2yd6zU; zQugCubcQS7K@j14I_|nc4(rF?HNzt5>psU+efyF0H&A5?sxWGmNJ7#c?^Ag zwXs8sNc2vZk5*Gewc8E1J)?4dPGhS~)IRjjtR0J*oa;*p6m@ogoZMNFp4C<%Y~|4R zbKG(8!44*@S(<7LmujaGQ`dgZ#l`%5KbFN}DS8Av3=E7_12N=bY=+}JAjyDx(z-3R z7KHgvi|@QwmrGdk^bfOB{r&X9zm5fh{lBm3G_ikG?wbd}3k&&u8SQ8}7SNCQVwZh* z3X_c!^=aam6n-2N{DF_ckTnk{AB5Pz4?J=BhTDUn_!B7a~)vyAoT^7lWuV1`@ zNkFfNx$3}|fU{2b!7Bz5>vR~Y*h$5WhKnVV#_;UTE^icy=B3zt8y#+YnL(IPIZS`({%?yw&+&cE z^Ab52+u8%X4JvePp{Gr2bj!_?MYwZTLqqdP^E>_Yium`I7#(ROIE`&_)`iXeS9HXu zf1UUlwY($G_DxW83@rUHIym0A&K#t6IReWXOcFmXyulbQGiO&Z`En@!(dC6}aKFB)FpEt7Z|?|ehUAO3D1L-&3C)4IZ;jOKe8x&#GVg}nTlpH&5FChy+TWyX%NPt*%D8iBaw zVM!k!Y0GXo{^_kN?g9WV9003Qk$8izh7YK_1%tpsrU3*r!jJEViLQ1cfh!n>a+Y~s%2fPw2T@X8F-FH`Se zsM%3miwsnw+ghnw-^Ia2-Lef&%E@3ttmkz)`2pAjT0KTv3EtD8?teoInh`CZ);(c$du zD8~^;jH=+Ao6_PbT8nUvppIcd%A+J}*^Tg#8N# zC8GJ-QjePbf(NIUwxc%V!6$mcz+WMOtW1o1ebQY$H>fhvVoT=xdh78F5a-jLp2>U| zUuf<(CxS`e&^xc5}~prvko6^?6$NX`ApIf6$W3Ocybe;IYI5xhv8X8 z%Bee|y*Dup3?c08lsa;KO&C1bIalozs=uVR6e$ftv`A=Vi0HqV3i#JCfN1GujNM5F z8jc;vhU3ov&~W^-tOKqqk?*WnCN3POFrd}Tcu>sN%n3=zZ{%2*7`qAFi6VPDGt}(z z0<5&lmjz@&9x+y@_^wW2_D#FD=%|AT`AKZC5h>y~PV9$DA&WPmWvj1#6Y?9y03lz; zePyd|7Vr?8c$^OXwefBv*6?m5qt*Xdf9kx@8x9EhK8dxDpVg!oo6%u1z~dam=JslE zg?I4|=)72$_L@qT1Dg8_N=a$GGEtVLVAB*@2v=Ft4-TrP1oK5nr7er^K%WjRC2Snk z@04_Ng^-|(lEVG6mzf}zPWL0eCX|oI^I&t&Pw*^WPw=aqe`4fKG+-~7OT5MycP?(# zn)YmR5j9vdWqQ$j=_v5pS1q*f)DL+&Xul{o4Z#VU~-gDyA!zv|)(CUej{uu`V)ufCez@?wh}i1d?bA){6Clv|7;@SAZ*R_xZkt;&Are^{W{wF);oePwngFj$$jPz z??Nxu%>=hwDtIc;;i*6RxHB@GUkaEI8=AQ2=+nq}-G$p6|4FRZ=VbyiMC5I^`SbdO zdoQT#whxGomN}@%)z}84miDtTtxsdSHyTX zAp-G&KyScoQc`?0y#=Tx$Mq=3b(C_nxPi zC#SGg;_P0p`EIhQr&Xa5)17z@QhYx!XjjW~i!XlTxnZ$|)Dw!h#>x{k_a^h#uy9He zR1WcJs*0^5A57iptIQE$;tVWJlG&%j!2)SYVAZN z&c@uwjBa|~cj<#_lu+lAwemGUmUTgV(2umL|4vs~C5N;dxs>eI=fBrR zlJMDo%YjZhzv6z{6?;1_1 z|4!K>eTAdarzmVt&LPTXGvy_E6DBSj^K>J6pH?Hs=NIFzuoto6MC0O~ZiLU}hEql| znILqc7Rr7?TirhiJ>2}I6GlEbY!)1)r{Te8*t83i`_XBQD0Y5?U3~Q-sI7T+|AxLi1-aG?xvo_KC#~J25HAn=0_8Hp?SAf8;EndhA+_d?N zz_)UCUYXFwB#P7ZdQH}uEyg|lTJXEhw7!eoSg~6z_$Ig5i?|=j2;p@PHs`Uz=X&IO z*JJx>^{Q9uWjs$MBf*p?WDS|DhT6Q#=oRp0#}91f(cp;=UH}*?Z2v%j@_$Fhk=GCT zSWupM9mJR=O^i7E%uV8(OTKXV9Vw&{VH|{BFT0IAVdD^YOWXuibW4KcqpzUE1cOef zOlz!OGW*SnU`$vU!e)3%sZUQro9(*~JY#$;%eLOOTgW{@+o@8V5BA}@>D~%4NrHDO z*`ZRAPS~Q?4{-6&M$LAgwe*=F|2esbe?G{62h+fWo}OBirP;bCh+ z;A}XYs4wKQSsY^8TqRP0Mk3k)SUZjvYucKCul9C5`W!Y~t%%J>Ek0#peK(6$=`)`F zL=mmN;M5Q?dv%7s$uZ#;0cONA6f(KlVHO(zymx|bN^6PmOfTL3bOpTs27vecHTzmo z7q5Q&bW1I@N5fkG(l5cI!BI+G6hBggkAgo%c#U7TbuBG@6332iy{DvG6`vcPSQ`mK za9$Ui?40{0P?Ht|pLPVZulBJi;tp~@-P5T!)syu*z4cd`;6JQY=8U|W2ORD&@=4xz z=~4U#4A33*A^4NyX9qgqKi`&PD!{fk0c?9OEi8B=%eySm%K^mA=Li1(mu(+0F`;C_ zukqgK^A8|jQ$0$L-|y?DMTgf(y0$#WC>>BjFHo&(ww;*O7{%l1<{GLiwml9=))Ppa zb)xE;8=GeNLh1U!u#Lx3?wIX#dZzSjh49()z4vT@ZO`sm*of8)E>KNRwtjEpZl>5} z8#2m2{ppvLla+`M_3@zIy*x_1tj3K@;&h3q7pHXnx=W}-jwPzJkKiZ52bM3_ zs*KE=mOoe;(Y?oZ8dFx83LYJH?=BY_Iz5_HHaV8;%WgS7|Eh;5Q93$Y<%v^r76YUm zHw4@|qDGSrX|)Eu78j@V?%ijg;^_hp&k-F`2}^912r$?q=`ZfAPVq}#5gR*CP!6Z9N3``Eju`hFsx5+nn%ewc-_?@2$L?+(318MiYSi*Y2 zHAFRURWIS~mO90%UghkUH8b%nQFxcW_>2L|-huOUPleBEeb2+BwYUnKmEh{D zWRtI1^poX$r66fyE+)QrL{+0HP@?yZ6AY?9&Gz!qAXXR?q`fa354M0&gxx(Q6ew!m zbc8tgY*(sAaYY1>q@tOwQ)=e3jHSC?_H5eeLTBh20O^pqfa-MmJ26jzjm4TnXldPd zQN!<1fhjO|s3S?;?kl>Vl!ETlcP*0ESRMh;)1~}YYM;52vp|=DPJ7{T{x8n^L)2ly zkoMHXn#h^*SMsnkx*_8E%@;d*4{*1;Yg@N}MvW9I|M@lv7m*^4zgMkM|27M4)`8!+ zotNKvMRyZo^%S^P*(#U+*Q>?FW7FH6!kMJ*YYnL%?&W)@)mVSMEh;#EovAua)cQrsEjg;XixGCcgA6}-JIczuN!PlQ9qV>W-NykBb{S|ztPmNIOyn!>XvaFiPcbd`< ze>ajMbKS)SwY?8P&eGgGjmj%WXEn-UqEa-aLQuple~=XlybggMs<^T$@qyPNqfkJ; z8-eKHgVcLzRDPO-%^lyCc{Xb=qBd;Z5-CMKE{u~q-h$Cx5{Dvga(uW-ilOg%FIc8& zHi|r<{e&L-gJHA?yvI?%IiKLh^^CS3ikA*@_v;S75PvU!Hf=*4o)OwS2j7}tF%IOf z1TKd~Xr1^;R&f1`x6GoDl44BaDkQnyZM3kGw?8RRwv}eXuiqAP<-X~mv>_T%T$C^e z0d2~Fwvc?dpcr#ACZp)!*UzHp-}#?@to?m)sYT(l&Uew-$w^R(idg(4Ho8lZtKyBXEF47Q@hxP5aBv*Q*l9rD%csZ5wozkaA*TJLkJILi zW=ed3t-=^1 z6tK2?*pep}Qqa?O-dzgvb3S!@x2iFv?qCFEKXr7=V`{M#1OR?$L8OU(hR9}i5kd6r zl?cKu?+&b6-Fnv5#lBPqNCN*SB56AXp0_od9t(`0KN!>I1V$v|T5g9VG=#mRwo7j5 zzW>v@MK?xE{nWI4pR1IbUc^NFl-ty*c(*&yO2*88X(^Vp>Y$m%vlVqL*ll{}kx!A( zDe+;}Xhk+(N(HH`w(y6DsE68{vt#>_`#bdLlQ8#|(OsQove{2bsF1C%v?QVeq8S5b zEBnTh+KxhR4iw;fu7ux(2za4lTU(v$JwyR&_?$6kwLQHNt`3w0-K2qPm&|GJ)Gr2~ z)b~xAtEXhRZ<(2&gUAeWSMALU&~wSqMSUa)Lc>JrfVw{I$^hnV{bg=-{OOsGJpA3+ z)noz1!oZt5qUu`?Qm^)XbQWZ9$wM~_3Ym=d_RqEq^^O*zu?I2y1pmSq(tw~g+1hR< z_kxO~;^iaG{moKT?{*a}4&d#hN?gO_z|-r05N;u)!D0N)$(WSOqb5jN&vR2aNUtYw zw>0qt3vNT)TfEYWDY61azlaFi2Q4+Uebb!wL*n*#^AEvUePD||G{e+)K|LiA$B6bg z85sN#mMTSQgqbRBB6w2J*nvoYl`nF9()>(xyjb@3m`zUeuBu(_qikrV8aAnyItuHk zimNCo3+O$t`cVZe_57tfY}VC*9^+2H@O4$}IQ~0e2oot(+spnDDAoVM8{hu1ROSJ^ z{HHF(+6t8>Ix14#<>PUSnKY{?tg4j+(FhakjIE=j(~{dk#_s$}TN{Fic3ceUM0Hxd z#GpIOhj9~|aOx>D8vjK3*_eASl5ljMN%5mI|1$M2V+#xraW&aO@_4Ky2MEZ_;L0#?SEA*`uR*anS2dsS-9&wqmi=I)5`dEO<-8h#cpMM zd`H1&$)}eNm^prL)96GH@p$2oOAByb=@iYjmt@L@Z2$R7RQ3R31-DBpu4nF-f+dw% zF`)N02WGMXpGVyh7bUbJTgRe>!rM zZvDsUp}G1G6QUH!)hB_d1+v;X(}?q3C^X9AA+HSD_D|+9JG-4Bk_mKZjad2r!f^_wpl__iV4D!yeKO|KiU|M@fc0J_LkXddXny$ z`zz|cZ`tb_9=A3O+#IGD)%sLPjYjL5IsCd}@=-Xf?fsVrM6sik0-lmR~5+1D&i5>DQEHw#u+#=uFSFSaahIirpU~9-_#*RAL-PuTM=TY*cKmnjw zS;+3o#CAUTc3y`*hmYY=mQpIrJ{s1hnZY`Q$wJ+wPBmt;2GcqC>{lyDa3cJ)p-PT; zlUXZaST80d+G%U^^Gk_a-%?+})Y~TI#m8RkwA)??3|yo3pUQv;COv!gsrFQ>q;?af zWqw^mPGxp`wr`~NyP?O*g}X3Euw88*0A&OFmdBQ#UiFrSqU?WXoA`Gxg^&0bP>o)G_Q@Q&!ms@|K8t_(2iw}9 zq-`)8VSke~ZF^T4JJJeAtmB=IV)d&@4u)Gz^(BtS=!0etEEGSM=<657*E^qO43sKo zTN)KjhM>2rg##XJ1=h`o7vT2Ykn{OP;gUB@5EDUWeh)J~_3+gvrnh_ym;N(d5zHFV zF1Ba*3yA?AzbcX<4!-Uj@`&%R5A6xJojaefxzuj>u4cu+xew5|G?D=?VJ~9kbxJRw{Q?6BmzMAjJjnh5fcWS9-XoGSTw&^l_V=g47cK0eaa(i#Q zZ15c$6=GvpjSU($9(acj{}TK$=|>sN+M{~;_IshMi3KxTl97|=h%60q48_t3(W=hb zv~YtB6e9mI=|1__Tz$6EF3lV>EcqvBa+ga%sRz!qD+$MQqfThG&aw4fEF^{GL#^7` zK58R~cY4Kr;V^7`bLfZNz?k#!=}7dSM546gCu!whh2FN>j_$-7exBtjI+i}RG^rm* zJw{1Bn~mDRhd{qyVD^blrjiBB?DlmFz1oOm;^`ZQ$s7etz^v!Hh3*9v%ww#zdqhTV zliWDLbs@-H2-KFhx0`^;q&luTjykfNO*I8BwJg0L#t=7jd*5S`A}T}CyK&B?PEsYZ zZujt6n_T(h{c(hH#n1d1`$HRZ?G~JyX-RoxX3lMP|U)~a1+F%p8jSvApaYT;vgiTC@? z9PjmorMl@5*D+X#V!FoTOFz<2;pG!tRgX;<(=2!(%%<=ySj+k@g+PP5vtqG_yoL4# zXP+na<6XIcbZ0#o_ez@L=++<=oT2x-N>CE284qqNwOdg9gR-IJ3}UEz+%klMeFBD; zT=5fYJ5)fdLCs$_Pbc=&x7WDk-2=OJBgfLJlW*zzY$h$-7Z?!(HtV7T zfoAH)FAbn3i`{($@S-kn{WC4E6k05<-}_&{JurKoB)y+&`62AAkH*w@$!qh74+D-V zEX0AesFIxYkkwwVI;7b)2oq9NMov9~sd+PQ3qSyV5x@gHaUNwVB(LQ@H-?E!QbERe zpoMl{Z3}gxi&(;_M zC74LEyjIb&VBGg>dL`pxlN3PINAK;C?&sXr2cmRK`TntiV46B=Tf?Arw zlJ>5{U8Hr(yX-Ue5Vja`sd}*KacW2uIItJ6Gp#N0hB6>ahe@eqO8`6#;tsbG)0Mr< zzwWAg5cKs9$bsP~{vfxz4ZT>2h z)FO0QNFYHqA^e*e2#dZ~kHpPTq#^~I&FgxsW$XVFsyCG9t`jtF8s_Od8^CvRlf1mgx7WP z7)OCK==)M4wODw6h3XaBy~)HQyE76eH0W$1-8sj+3EX|IJ zJ5bt^w6u^bwsC*@)#)M9aao#r0mcECEcP^g6atruWL2B15F#?imA4MaxPm5bzYj+v z5OaHo-$;9N4w1>1`m7_N0Hyr8-gi6F)YVGk%mXaACc`E- zYpts1RPJJ}hc_y=lis@BE&8g69Sg_Ut`}SIIYlWi!42J%>bi?rF9OCxX54k2~J)Cy@s6&|H?i2@Hz7poRS#=W(TL;2#Dmu zM7D&VSY(0$P@=!h1`S1VfxMl80p?I^iMOVL6EL*j&+T1GyYQN!_qMaq6poiH@o) zc%+wsY7(yaP=*{c_8F0?z4W2v-*tJC~k`Rg~(%2^ccbV2fjPQO^1N!`0m!r~M9 zV>a1Kp~4U94c_{ymoU#ol=B_Ajsd;bv{3PD@FtG)CN7nE$Kj@+rw#@op^U;~dA`C3 zS-UkN6fq;u#i=Olxt_qK+-97ksfV-}pLd(|?tYIC-X0v|i@z0~6n$nHNmEFZ<^3Ki zm%G<0C)siQq4GVxboO)a+BU8Nx9zvoEstz?VIPF%Vy%+7>V1x@W`&+%v+_;pKd!hw zm{1>){JQ=ac5Sbr_>pn4osH+tC(1~*VC#G>|GXf9`dQp@%9E{89WFP?RK8=7`M)NwwAI#@nRD{~6-SIWjeWNc_xs1J0me zWjrQlDk|b>!Duc9MaNcrL;ju!ov-#ebufK4Y?3T+{;Uqr?PVP8qli3 zIsk&7*)mQww`n@#H68swl)VL5RA1XKOrx}vbc)o_(yby2(%m2>CEeXhD#*|v-7s`_ z2}20djW~37^X-BE^PcC8^PO|NF1eg>W|+P9-fP|KS2xhMIsjJ32Uqgg?(6~4h9xC# zUwZ+)lZk)9gP!;0>-&r0l@T*AQ3NwNMF_&l-WVURbTYas1k-AHZ@kP8lJ{)?9S$#z zVMhQ$Q<&sv7n6A^5tibxu^rL!Nn>rHE>gPLd$tIhssiIXwd5)4y@9Nzd>Ly5pyBwz z{<=XN8 z3{vgiuqR5}QRSK~0Z+pqp(W%LMzNE@qXlp8w5>aI0`Q`{1(~i;9f4=tvzJ=csQ6jDKU5*;ucY3% zd2JxB#}gwCzu$og1+!#fJCUJ&R1+Z?aByeLZ4JG)0b-mDx?eVlwIAZ);>ktBHQ4^d4*|`@+A?cn*zJdoG0|jK8GeA_ znD*RzMa{12y44x!vNTg6E`%~=Ss|a1(>1d7aTj-KbXzv?mB3Ahc8KZCLfn@Yz=qHP8J!GL-AU@ z%Uu-(?eTDj6_k1XwxbP7gY@;>+;%+4$C5JI(b9jv5#pI@o!$Dn>Ti0oIR1e+yU z!2}?X1ML0Iw%Xa&?q2&xdpfG4ul!l{t6$PWlYqeN_nKlyw(~SxZ;)kuMcOO6w`gR_ zf?W5gf0jz(_r?3?U+0PLmwY-*>HvK(d z^k3LD-ED`TEsDwe#tJ1Dslmp;%5KvgC_>eKNQ3!)J{G>f&SydRz+jh12j?CE3l5Ll^H)fLo5Xx|17jxZY%Z*N&DuCu8NHPrKN6T}hF^>eIfGqjWvbHJy z9E-@qI{U3gUy2P83UieBD8>>V`jPmI39XGQ`I@lOxZb*@8}*?HJhT~T z0XMxHj7&R~bq|aZ$?T;-(4W?69Fe8iIN+e?+O> zrMMSoRR=HvdGg|GmN_Oof3!r5F8mnDqZ+T-bFn=?+mS;Zq{WXFnShxt-CX}T9>R|@ zHgMPj|2imt9`(TJ%uiPWF{-ox-{V)W<0I_qt1vBCHn%6mz)+fVL5%6yQ4HnqEuE4F z&FH9o??rv*!wq82ZnYkLhnKuJm_@WdG>qf6)jM&*j{6+c>ZM7iD=zf7!7tYW!#ys?&L%ddqNhVId`p)RxZ<1PE9-ixO2oV-hM-V3Dkyy zr9f;AP;*?l0>$e8-6E7;_ww;%dY&IWs1u*(GcGrY*mqOiEYvTIpm;V}6QYsA56@;P z4*iJ+dIIg0gJAB~Dg#@IYT>$^$PO@3O98tuEzc%r7c;=gn?Thk(q&+D%Jy-QHhNaK z3a=}ANVzQ`O+>d#0%XRuq8n8?$RO@1!FExSwbx)>AF!})rCD=*fPuJ6Qek*4swz70y9*LAPRU6M@cVqfmKaT!6IRjx6P0v5!U|Ma|kgnHELUH7dmt5RVgVZ zU4`^g_J?5lv>y398a;U75{noly>v4)fVjQ<2zPN06sRX{mC^q(*cXB=YOD#a7Y1=K z@wUGTKWoel1v(UTJ5+U{M1us61l0lBZO&WndhyO0a%OVX4?1g#-(kWdo4YsV_gclk zC94ycEipg<{lZKby1NKKToWfWFv4v;G_N0G(Fwr-zO4B9Wp6^DIOJLsO**uEU~AGB z(iw9y1cLg?X}qJE2J{|pIL*+EC0W0pC17KkxnxPbi+-JFE@&1k-Y)`~E9ktfgv*cN`!IvR#-y92~^$J1NgG*|_-@XX{~Z$)AG zPrNyThi2>Nc!)fX8jEHA&vH|(mFQ+6b+1lHjS2Uc7-ahP$a&zKhq{prVZdz<)OIX} zxSFM2gY`8BgF!^wh`4E6)wbHpc%D|7ys{8O_r20(&a>PFMU6ebWa8cL@&y_)0wTj= zouQPw5Q<^9_B));+(0$uX2#OtAX?GP<-GYkqY?hze_tRVMh8vt%Vf^A_sR4WlRWVH z?Eh(vxNSpWnDg*|S-~aA^tokxo&?nO=P~r4a+J)Etn!gwVl$e@?H{!0x)J(MaN~V= zDwk_ecEUz#&t@WNcp^augEh2zGN(JAl&eL+LjSvBcQYVlTatwd}7O z<4OdQgzmsULB0G)`-2F_NxgMCnh}ch_b=udLryV)h;YRqdrkQrNa;|aICFz~J=V22 zI7gF)s#G|4IO!>AJ*>LCw?;zXfjl-31axIeNvf*ZBtfoG+Sa!JVCr_eoK?JGyMsuy zS~Rw4B8-B9gTJy?lH%)#7KbU|st<*YIu9Ue>1qv^BH}b~ayW*|`7w%#(3r+I#sgBD z`ANWPzZ}S056=&A=a}u|hA!%Qu9o1!CntN+`<4tdi#otWrE@?N4K!r+Lt5gQ`W-BZU?O2|01aG zSRbf(Q$#et*9*E6dnXdaQ$#UlOI=y&=20yd#zqV@&Vj(rRFF~@Q{y*(NQ;)H`<5pd zT13{Z2#`n<38$BD%OMy{@C{+IS%5z|wW)1KqIzkXn5y(R`{DY}Rl4ZV*9g4fG`jey z&th_H@j8;HR(qz-}!5D;>fUg8o{0;!r6Vt@ypoK_l~Y? z@RTeA0^2*2P}kW+b3hh_wFji_We_x)@j*oSdmuRtr~iTx3126ediuU6MrFsH z-1duzNVN>!EN{-U{ylw|zS|OI^Ph1}I(p}q0PvqJ@e>GV2FxZ*AmxAI3ksUI>jurXpT1cBh(B*7 z1vdJHaG)Icorb|?I`HrJsqo?pv16!sDuoaL+>u^`-F-}+CKfbL6% z%IiprA%3SOBKOk10AK$iW;JOP+LHyv1t)QoNIr4c?Sw;x8f0i{`C*-EHG zv!g$Z`9S-eaTZcp&K-U6)tJxS7!X=sWvT$Qakn)`aM0U59^1`@CoGU_DEf5puSf2d zy9@B3O~Fzx`0VCg?^E;mA(n+O;z~{D1_DN3V*%C zI5+P61O2LCkP~#P=bmsI^*d`uM{@BXJ|PDc$=3I}xz)^t`SBBqrPYjRFO!obI9DvJ zOle?rQE$m@k&l!cq1tA(IBkSH`>3isz>nPf&z`|7;H-~&0m$kxctz-8=etYqUj=}xpDk(UfZ*Fl=%Kl9 z?ypyN}T)*<>)EpNzP<3#)-FJsdzzr6a6k^D4z0{fNqG$%z`kk14c&t zg+yz~k8-Je{HT1VybmQ`b(3j7-?&Tm-IaSvE-@y#^nWEVt*9T$5=dq(x6yD8fgBPw z)wmRnIW`}DZ2)N}o&6Wm2|(M^9=M`cb8*J~pu zSHk(>YXGvYr~XhKTKIGh0P};xuFP)GpPDRtq3df2$Eg0?Z z{uvegPc-mFXxR~k({zjNbbU)=W9}ZA!K|X_Jz9JV!q9bhUtpm*b%v7_Cu1=n@?HF zf8V74p0eCBGTkhoYB~L;X|gaRZ1~am1e#Sm8}&T>reAnslC+bLnbOOAftboRN)9A^ zts7v1I7uBVee*fjTJ-2$OZVhOm6Ryrciy~uA0->Enu#78jH0zSmppv9 zrxhkA8S*VP%nGBomKqL&w`^J^1zHA0h0fEoKW~b*GHV#6a7nV!PS%|j99sL*&)iJ5 zswAb9j-2_VkjcSgU#`m51k2@YG`mVu9qQiRXu3wCQ7Q{zR1#qzc3p8(NWXt6_xJr! zcER;_vs+&X{n5;fSB<(JAE@E{Rj#(mwo$WUikfZs1s8jGE2tuS%(Qc~JH`Gh!G%7< zOh5^S648^q_2R znpo;2jlr;w;e+2~V(SzO#yN)_O567od)ek(5ZyK|6~Y{@b8EJUT)d#Bd3?Kdec3<6Z&Vc5Lf)Vs`u!yKHH$S zx-!4!FEO07c4RZ~YTlr3J2iJntxX+fbCk$s%f-W3+#~f*&y$~qfNzc}tUI}V9Ogga z)ZM-b&V)>0T%GzB*3VTgra4BOQ~ovU1d!dephj!Wo;%Uuwig)Y{a7QVuv#Yll~lp-$6)tZDV)knNSy!iV0<26>Fih*6B0HFE+>mT~?OHD-Oj* z4R(CJ8G15Nlwsk8K+AT`*Z~h5`8Q@TCtjhSzmc`=5Xo3Dwss1GxHl(v@RyLa>-Dwv8G~?+oemfN>@+jT22PGt7;z;Qa>bUgE8P{M1o8C$Zki<1yNEu~aP4kwRNj;TrlA?(3 zqm@mkoMJ2b<`(%Bgi|buUw^ALf13@1dxY0VoFsXr;2W! z?7NL&??lFIue|gpO?+pn-^?d-lqR*ZZk-Fnmin}3Ty$#G^dz)I0cmy`IWzA>17JJP z6kj~3ZiXIOI1k%DR&rGSp~w6SXgK8G?(n#$%H@j*M0dO&(nJsl3wv(pt`+1wTVCq> zNplyEh?mIgj?W)PhFQxzw@D3Jd#$4twh9@BG*wleYDmtDfXYhs$E|cdkQVCs<%d zHe{#`7FeSnGS_cdKP71-$f-H>C6&Z(vCVHMfjAh}U2`&!=Z)XtAX~>C!PaB+3DSfa z2&3pYbV7q}&0>M~K0riHQ;h0m?2g9;g2?Ul`2ApXfiS=aUvhKx&KO?%#=Uj&bH@Yi zAxP$`01Z-rmFK=Gt)SkcYzb+AbZ|c!0s34wy=l(}#=C$8NWkX-iZ;*s%Q<)*jr{hZ ztrq{GloWt;ouk<{DFFPm9?%?@to`uELyIv03detd!tpV`J(t9&f~Nr_KTQHYn+!Dz zX!98W%a?HE1Hr37D8>s5AVnRXqI+oQrFJzBB+9okVD13<0X!^i0R}42tP8wOFNDi?T4$p7;muQbv2w@>*f7LNA3lf6->eKgN2BYEG_{HzQ#Bo zMWmrSd6>ehd(i(^*aPhy28|4%L!HqDzUW{m{QLduNFP3JuWcS8zUuYCt@ek}6XJdvS0qF-`Tw>m_Co!2I0!l*G2u&>;P0JU(0 ztsQVCi!8~bfS&c(-FX@J5{-{i4+?;8*qc}1kZekU8e{bpP^P*^1}Fu>6A1owNQ{pKSg9j>l&+?frT@DI#kta{zOEo`h2nMxj;7*UA$7h0A=2 z!q_+}G>)N7>{e@G>@Nq}Bnup5#e9f3R6HG5>8XCr7a^5H`X~#EL)f49MZS`BwtH)^ z8adS0OaWo{}Jf*V6@iRCRTDpL#=NCJl zp3jT05rV_){(eWeihjI5Xj?o=4J52fyeuaBRA0!N()(eYK@vHKh?uw)!_By!CpVUT z7fXdPw=HimJ;1(mg|<2zXB+29&2B-+WIVO8RU2t^Tp3nCY|e?IqDjaXV`2Y*wI#Q5 zpmRuhS9OTVJb561^16Rd3uGkL(c_xbtdm<-|CB8rPs=#dulyoZ_+lpaekvJ^v@G?> zDfDPoGOlZ@Olx4b^i)3fleAQf)<1i8mh9EkORtlM%@n4KXQm>wM)x3Cv)k;tnLJ84 zw|88rr}lNTWF+B#f#i{Al~FTRirPt$?D;I@FF(3Oz5jz zkE-^(75?gRyR^aVhDlpHP|hlb{SAfBv$%9W9mQWA|a7Yd2OYRbab!=2GOew;s2u>MV(yhM#=rtH==? zSCMLR`8XZ2pJODTyK6zV<9BO6!1nblfsYDO1uXRUyp2QMi>x`fgox%GgOxXB2@%6s zrPc`t{gn|RSDz6k2koOA4GW_Db=JOC-kJgt$>ne3MZ_gMej0HK{s`%QQ6H;5>JFQf z+Mg(VS$EW+n&4v^Cc9Q4gV`lrB$=^fcxOaE$7>$#v>k6suO~#VW$BwqzL(+1X06hYInnLm`FYe_Jz`e9UPh?(*O+{y>X^Ve5gy&6DJ7B- z4lH%C^j%A3ebZ1*N)&Mr=D)N6xE^f7rBdj+7yC~Hls3KI(mnlVctLgA_93`jM>DEs zilX4f7tA>ALF=fM%epP6rnFghyKBX35ObKJAaJg*!+SN9!*Ab0nxtUXHGtc5P-d)! z1pojH4l<|jRY-XG_j_CP2A6zF=3i7q0OCoH(z-IE3MR4+K&7ULlRqn;ZRjLg!8ba= z?cU$4FlN{EDJ-V?l-P{<{sbuk@QtM1cq%+Dm9M+uUypmT8~_VfCvGdWRe0y!d}Zys zp88~{B0|>a_DY)UB_F_s7-{>}npylv;~EORHT7@s@PkS-87?}|6cb!FzwCFVFN`c_k54IDNwLh>^4QR5`p%IU z_KvIB%|zsSv03Y@fg*aXSp6(2^Z?txb$Ff;(P3j5BXIkPk&N5rpvbv}Y%uUai~5f% z4TPDx-6jS}mCY`1JJHa_&l>*hVuNed2be1<3>Ow-X{#&A^xaxt_Y+5lE4QsOi29q` zB4Z^uAY7jPsyDotV_?`{cuJ(aEtZ~+hzzvW-78%B;wxNcQxB}CvXE<)L0H;ioah?K zRpqctnM3QQTWJNlzEd z&{q9lkA2RoDbjAvXrF?7S4+G!8#k)9Knq@U{Rx6EF=A5j}+e!$M)rngNH`kX_Et)ouM-0*@?5XWtF&}_y39ZTIF3q#XY zHKqQ=)M@}MaFcyD*AkuZEWh!(<)S z@@<^|P^$K9UcH4($@^ES!HfUiK#Bv0~TF?D`eOi!ewkz z8NkeN&5~3`!MLx6sPI*NBTdt(MJ)i{P5YAw-<@BPyi+zti;oqF>crGi*i{YhdMg)T zmtp64Cy9rS1C%Vc)s^TG|J@b2`eQKtGis0ci{g)XAau9G-S>5$ z?_ZC+_pjHR8sjg0Y2;?`Jz@mh%!c&^3yAUa^*R1SMZ{QUc>3c@M?Hq_R$V|f)K)^U zva}aVkRXS11Uh8egcTfjhh@E3gcv+4`>G&FX^$iiBN0Hw~YW3 zBr*BNYTEeVyLEb-|FA6koV!t0TG}_e4{vLAEQ^|T$Mn)%*E1;KY(D^M^L3T+1-x`TDP5z zozp!%`yC<<*A zb6d4RsxrU$Ac?jutc*)QeF#zcSKn%&99ui~Oy-CL3_qFp;}%bV3$FHa#Mt8pL>fq2 z1YSYg`qm;KTLP112^ZuW*gn!ezyjNe#x%On7}{RGh&~NDLhnjJh2m22cI+q!^E+?H z2UEeOe|$(r)(4^ve!d-%g;4O%z2?|TuN7*JS`!^5e}fa@Z|lPx_;gX!c+0Q1sr~S( zOsRdKC~hD632`@JZ!TXY1Wv?08Y?rRT4n5)>Z^fmJ+1yqG2EVItFs(#Fzg2QeCfPh znFZX~onJ`@WMH-PYS#1`Ysm=QC}%;y8xJJWKm7``r2~0d;5kK2wmA-Du6de`)88|+ z1@VlXqWszI?Z(b_!n1Q~>&#)0p!K=7KLEM(tZ} ztE`Mmvj$c<9)Qs*I6UM{oA0Drr?G9CJ5-_}>LDojzKa*;E%912>qC`)ZLK>UrXf_$I_L2SE;OWQYs=by1OUTVk4Z}tM#cyZREs+T1rILu$P ze_6U&1WE_31YW(a2Ux7TLjs1AAF6i0sw;^%6KzkLhj(lYm+2(=ILN)Cc6&QxdS476 zQ_|c8Jv!lgf@aPg(;EhN>0&+iBQT{qGFYWy$N%x;bx;whg!C2B07ye1xkI!}d$~8Y z__w%>bSUin4MGd)l3{sAolbGUF#^hi$M-q<65#PIxBP50Aw;q`o96WCl%><5I5h19 z3Av;|FJ&fcQn00*2DmXqG`S2adT=;OM2=P^fzKle47}SxCIf4wX?*-}mq&;F|< z>S0%`ii>zYA*#0jmt6kt1K`!g4u^Yn>jQUA+%l)I!ZoN}O_LgX^SOo(rJolq<%Y)< zQ-9qSo!GH!b8jZHYj_hROD$a4zE*aH@^iQ6RS=bgq4AC&OWVp_xy*h0ZTd>qMc4O+ ziK{N>Ui9q_t~UpgebodFe%gbwLbg*%kC8p4CDkH{az&E1W|kahTgcYO*|0i}W$;KJ z-`#wEqJKX8AJ$vuaKIS-9R)g)b-R_K?6&utr)5&J7Wig{T}}No9j|P)^zzfhuK#91sX z3FX2A(twmS`0gz5mX+yY`wVwM=2br^gnNOFF0d_*Dj(edy+hms);EiduPN&T#AhJ) z-U!HFU&iccd!C`q8J@&C2R%}-f%l!us=f7zwn7NZfluhvv|1>8V5LXK7@}KB4dw1; zi*Wt`uJcUn_UhX+y8WxbUef_A|9t_d;pU=2Form~h~!|cT^iFOXb!yzSm6T=1|?>oF_#wV@IAH6YodG1{9NT;Hhq!)f%f;iuSjAnONm;y ze~R_LrVWgiHGda%uQqr8;;DWV1Y5WS5;0odR|{$`Xi}#^n#w(PA#;`Tz_+V=yf$_8 z2RW*d5oG(`+*NZycP<&&&_%cd|0mjDxg=hxLXO?p%t0An(MQe-ytUr#k9~y^Ejcm# z2N*D~x6H8*7vTIO%gh31Y~QiWh6nAr!9)GfS`=>vEPrKw;(VZ%xAW+@!?^XXfJ?_@CwQ0_4*PtELNSs#w=j+W7^e!okoU4hA}Frr?o z|Hv__UnJNsm;3?rQ`}812H*z<)#KJ^38VTu`qX(KmPj_=&4u~_>wwQ6A_8X`XZirl zU|>wPj0+6OZ{-JK()dC3-mAIc1kUzT@dqfuNZ6d;e$8i{@84$g3F}AJUewHZXeN3T zhL(9hBTlS6!XcT_yg6jrs>$lB?rfs`?>PU<=M!58`x7iBa!SJaOrt)pRcg{!mWU13 zeiNUdC{CoTUP@JWPid3aG8d%)6xU6lvIF zvmt-y-3T&TfuyL%eC(X<;Q>{&bt+#zlV!_L?%VHT1ogpCbyr^j=Rdbw?()}l^#=j& zy4y3%q2XiE&eX=gXmheSbu#cInm9V`yPl1`9{T$}segDOJl*evyR2l;+)7QmQ`6}n z^nG>iRHsLVK+yv6k+Cjd4mNpL@EajLj(s&EFy-eN%LuWx+ULU00#fE`sS_W^RX4ch z!=##+kY;hFJeObZlGu(rJBn);)YuZb**gjJ?mqRoa zf*FOvxkT0TkDsU5EPWmc;|F1AW>_0F- z>3k_me*St4yM^)pAF%Jxx-n_911e;z4`%I2G5zR!aFXkbfX-1rG&{5g7Nq%2tnw&$ z?<}HiSS8O|6ME}@ao*3hwZC={yXE58cEZm>7+kGBHE9M(Sy`BKMRBGq!_x1FKLn|~eu8$RE__}}sQ*>C4bGgEaGRtfAWC6oVqfPP#Z z;#FJX_!4W@UF&)+M$n>^B#PR1TZSrVcvxHG)%&drrh|aZtb?lrvuSYYf%-i7kNG%` zbd5INr?$)gj+uKgexYGkX07bBscG7v6L{V;)e*vDllEM5_qUptJOHDl$9jz=z)O_> ziTwNbCm)p}jpEd*{`*t^yLb6V0f|9}Q4}}oLT5*|tibxCVL7<6TX*)8WRpKDTPoyeKksU6dF(V>)s~YD`gr^Re$Ox*%&vpg>~rg>tfT* z9Ye2-OAlPJ3Kig1R1N>4wNKO7+e8aWIn&v|VBbvP)mWpM>zU75o zm{)OcY{sT994n0w4>3rG#YxiQewL`$_9b{rQ{unzr^T zn0fs6nK#(9%EHX@HYCU0vQOWtaa@Q&- zT5Aq8-6$Gm|EBA#B;kE2AE1>bUo?JY+Sze?%d(3x|ChAnge}t0@UJcW%qq9z{}{$%9tQ3$PVx zDlXIC&I2K^SjR~Bm(=6-H7?4?8*8dss~Z3x*W{^VgIoCulJ}Mm^rST|0W?o%K7-%M z;<%Roj2yhZ=JUxAa6@iozK}U8!SF0A$ka?P6UX;`B~wcmj}72FQ<4+K@%2R(tZPg3 zSfNsC?x}-GPbj|`?Wpt|S!MvQso!JrJ#n(xbwj8qV2k?;x- zjH(Q-@6n|$0*z1&Z50o#uT~h9&&q`sTH=_#S(CQm+rlC)YWXB=cKb) z+jNO=ec7J-cfiOR(KKHtPe{Z;Hp;KCCQ#~+E&HaVv`vX<(B4wVxvD?uyG}|?J4=4q z7amr}jvb7?kQ~k#x6ga3?dH>Q^WV$W^)+k<3aXr%A`ar$r7uJ(BMNFn z%u8QEr`#ewWuuT|Q)b-ok$|zsvVwt}ScQL{&hxu6rJ0!5AXn^TeEg6I^!Az;u2I?* zIAk7!BlK}SquJY2Lkua}wHx84spL0T-SH&oMML>ITQPp2HmxmB!4$<@NIR}=Q&~qP zk2?gEXh8yXELNsJZcwrSqncs9j5i;=%w>CYUw8xn#nj=_x=b?wR!Xe@8=dFGJeuT) zHB)IM82Db0uUeo6P&^`oLrLGBkb-;3J2TY+{(v;~3AHMv6zM=^W)Km8ZSo6m9}qmm z%!<&b1|+M|<`9v215I`e)07!1lm~MtF8C=iD8E)Kryj_hh~CQ)8ancCKg_Hs{+*k2 zi3ZXAJ->}d>EG!v|E-R^!9^H`G^vdSoyOHSs?Tvve3|h?HIgmaBm8px%StNGT=W$( zRE^Yvb?lPq@%FTJ?)B!(D=nY}Gr&iR*=Y{(Xb$y3bO8#m|1ngSzNn$-MGgB7F*w|v zcUyb^5}}06=wj&4@d=+K?_(qP1U=FoDjDopBlldr5ji3&$Bx6x@0hZG{>-3&aRJe7 zF{)vGb<~zsegL_B*8gN^5qk^oEh@BMLvCQMpVg9F`YV-{f-}O;>pOas^Krq0!PA>~%N3?LG z4U!)xPn-YG2FBdXKz=6I)5v|1{YyIR6fw4dX)I1d8r%Q`yQ49WwqaRWDbDdPoF)lK z-(~#f8&Nb{#?TVAM6R!6JIB?&O{5tA((d&*wNd|af4dr3jJ-)srS@j`Czcc$D6kgw z+Q<^9aCz0l1=40a$os*+f5m$>;&*~K~C4tuBI z)=OI&?#eYI`U?>!zY5Yu>tCT88y$Y69A7Mob2Cb}lvvQL+n`2j^TT*aujo&^VNIv; z-W^WPI2f$~u=9)Sm!PJ(s+SZY3)t)W<(cV7-s%z}78W9W_#lzQ0UlPLHG(-XHg&&* zG+i)6*!PA~0J4vKQ?5;lEX40eM~gCsq@ItsVI72ZE~-xp=${Lwm~m20qIK+Ft2pnU zqqoZTiruVn8dAUOHnI0hE&2Ag8J|QW^y!`FBNvKN7r9)3MSDAdiSgRaX(EwV3iu@n z{Oa^A@tXpTt3cV5kq_FcD##UEXfDZZoTe30CPeytCUvd;p~5LV#X=UVXdpE!$?xQ2 zAQ0CG^kxUF;d8bD^MJb45Cb4!-t$|+LV&QU<)1D)AIh7X`+sOt8e0OFn>{YReg%Iz*>AO(VKC?&3>4kzDEwUPP zdgnEO6pBkb>I}#<TQyz8j62JII<%(>Kc7UYNo(YSPvr}XL_5T`R;ZpR`R!2P zzB=Fmy4?>06aEHBPbEVgJ~ux3znB{Vt^h_L^(ZNhqK76Qzk#RDTj|bCv$YIK|LQOw z6Wn^){bUN#I+`=+_}fEraqN+siyD=HCLfm>IK4PO^lEW>t1z&)JdN>1H-;R*D$0_i ziRH9NQs99nE2DqKNU>AUr;B6d%!>NP!Hu`o z0F5}g%M$AAtFyGZAA%XPd^z%NpR^KovA-6}t{H_Zht~i#9XEcJoo?&SHhH3@0+@J> z0ZDOff@hHwfM3-&u}{(W>e|^QP8_;TRX^9M=#xpUFk-t}gRQXk7I&tHE*}2=>?oq*lb>lu zfyo`k1^*TjbZ-kR_}byAPEIdPOu7Pe6|<(k5^YDbD_@n3q~`9$#VC0qz3tfglDRU4 z8+y}hj7#F_)WR!C!pIVYimqW=a$M`pxdluFxea5r*+5~S{pcRDLy-o`kM@x`51@YV z|D^&<13r^E7IuA0@<2|H5LhyTvx(z~y4C3Yp%&m%EB99?cW}Q9NwaqR`PS{rg>rHU z&SUV??@3D;-B)_fzXDK8G)=5s{KQ)|U~d~N zy95LE8HI$Y%G3&Gl$!VL?_g{`qExQ6t`{|5wgNno)h<(P*cxSHmujZC?e z^Shl?Z)* z^g}YcU3}yxRN+X_FIMLYixjW(ILv=s^5F7ivB|L?4+UE|?GJZ`N0A%4zlqvHg!Vzd zqVE;I*;_#>9bSG}nr%v3M+PSN;e+6-CLyxb7ypQ3XZEuQMYw(ku_z-%O`)dEoL#kb z@08_uYQFksv_Z?)mT5GAgF{VSrW)un4a;=Nw?#pK>QH@yUHF8zTHETaOa=JXP1`m` z-2LvDWbi0>vGW1DVXee-WJNMW!}y^746zI)+Hh z%V=^gJ4Q#Aw(&KJ=UFMyJ%15y`WCOKAoTlSG$l!J! z(^``T(8|=qWIQIMlt5DuKWt1S&C(-#B#3UFAzrBgq95#%H<0QF0&x5vl@JW;iQ{PC z_n?dJ(W~pc)^r-wZZ!Sjx}mP=%YDq__3E+N3PWYrVdVx`Wk1Y>#QWAIWL=JQAW8 zg>fZ^f5RdlKPZaRx~-4GfHAyn$<;sevWg3aO>f&Beh7YXl7z1*M({3!(V+RqRMp?` zzM%{}&}61jIf);vn~NmEG<`XP{+~?}UeGXq6dBlR1mJGoNOHF5Yre<={jiMRUd7U%g!2*I``V3F=p@(OBe%?QuC z%f_%H?WzWtX9uFL#0u(&S(Sl^M0cfkjW_QpzZT!MK*Q<4$~k61FVGg{4Nax4;PC4f zT==)wg*t=Dks-QeAMna_fb-J85Qy_|UX+0Yd7en~2!3895JmYw+BjzgfbML|YI}WS z@=lFYr75E$pv8Sp$cgyrsfY`kO7qkd0+a`%gc!t;>sx-4zOb!it&KxXEqO+8lY%k7qqlAIq^J zft$X4_aHI0}p-2LQpooM~`~qaa_Kp)2O}e=FwSc9*gYDz8x6yB9aa4672rv+H>p_GVR{$t=c;YN3nob@A*A zxnpg-nwi8dbz!3J%Yms(#+O4R8c&>6?YXX!?ue8{^*K>;epRTFAGqn~eOZT=j(U{!9O<#DWa!B62s$t!l7g-->B<)>Z=XKTl zJUMS=*~EQU%#k1++@&2D^tViKD2g#Aa_FXmOeeoAxjwXuC=jOZd$BOnGZK-9`$@fZ zhx;}!xJ>p~*<$7i<@dyby03=~6bq`e&*Uocbw2L)xx1WizBM)8^=U~Hh7luKd@*Om zH*!o`Ivq)d`UQFx($?`3RuM}iHxW*s6N!NQZb#OBC#I74{J&e?&`J?rV29+vPu~kflEtjaq zc?{NK(nx1Ah65ho^We3N(<=@st)UNjC8dut6Lvgxe-pAYPN{v0XE-u$vN=LIcB7}YzY8oF~oukBr3Z#MDys)Ymb5*+rwL*Qm) XJ`XC#a6|z9ypxiD{r_#9Q$iB}e)ZI~ literal 0 HcmV?d00001 diff --git a/previews/PR459/images/cplsetup.png b/previews/PR459/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 zcmdqJgLfs)vM3yD!ikd!Cbo@9GV#Q=ZQHhO+qP}n6Wi9?`JHpmz29B${R7|5+AEE! z?ylZ{fPlRHfq-5BMczk1Kn`?3KquNjKpe?HKjr@e{cfA?f*_iwTQ1k!%h(9+Y;(f;4i44h5=A821S|3dqR zu77pM_0<@Ml&y&YV8CC)`bE$6PY3^>vi}|)*Hf5lY!e`5ZRntx+*(SC9De{lI|kl#Xfg*YHQf2 zusSc36Qn>PS6#>X?M>9bvGLw^XlNwzTR%3uJ*DOG(Jh7bQiJ``OY5NB?jlC#yqp)s z$D5ZIA0H7B3JRa+9mQQB&9Tta`=q2`j!#TH7nPKhq_2D@Or+QQ>L7fC zm6df&3q+q5bfe1QQ}SMa>4?}@lPvg`nAq4a1l_ybuNfHqS`qtt6s{;x)?mSyO7il< zQ8zcX@`{SS$#|lb9`wI-mt_;pk2A6`*gA}dH93yzUd5nA&l(#WHQ=$au|G8E9IvAY z5HYwwd|eQ5IcH??yOHq8Q!wmQR4{pt(&2U0A08g6>*{tPGmr@h3oB>?s&mlMR%8?u zh(R_zo2n6<T+wWj{lCd9#oJn;}a{YrNwd zNIg$RR#ud+FNkNf4;nq3E?TXW?0smiCRk}%nT)bBnO98iIrOY`b8Bnw#6$$%Zw{r) z)ZiJWC_v|_TA+MBfr$9zw5+V?06F~@N5lmX-R%6?9i}q*K|mIA(eje88JhJ+agAhL zTwG5tGgzS=cE=TI*&;0f+AGw#1g%uPd3ALOXf)f0EAo#ax5mc8@D>*rRe3w`Ye>O{ zdFg0rqs$~l+hZmvt_3<>?s<>d|gLJUI_i!S{ECZgbZGEYvW-Ym_I6RJrR z0aUUgiZwMl`d3&@4g2lwZTs?as!1de4x7Z}1>6S2Cli3%Mk?RWoFU}xIqvne1G#QH zM*TaZbdGZ4c28s=GbYC8?#>=}h6W!Wh>wqNovh{%?QbbBuPcC9>JDZkloDW{^R*^I zA|kN6KI+g90^ZI8a&q#w?4;J4$;Zs_C-2+uW?_sKJW-($Y1rm_@$CQkWig6l2 zE!AM408<=hQW*{4Z5u76ovj@PgdIRQhwfc{*Py#-FzEwhZX+lO} zL4nO6b#JBV{>?G*jIYb-er=d2G6+h#;F(*Pkq;t%9&;@lx*&cw_17FyQxYG^bAX_@ zgvl3BQ&a!BRI@MUh8n)9oEu9g0|B<+18h4B6>`3!StL3ZmIF~?|A3m=oP|<&Q3FXn zHCWjGsT@V>^h{*ROhs-lpgWJ3UIX#1ET9|)bSZB~0swW6m1)_kqEJwI%*4PY1slY=|RvPnaI_~L4y;Tca7rAaBd4*33gp@>@U5grIYOmK~623u8nnN^)L zvdlg}L%kFP0nwjt6xmrnx#ONJx71~@_rCwg7e4wVBj6{7S^kcTOQV7Xu2ahAo%}do zBBwCda-@Kt{Ts}Guj04$eZ^^OAljP^8%|XvhfnVf2~`&3_azCKz6ZUO*udXsZep%3 z@h_Owj(F=K=*lB7tm*VgbwS8M-F^m>wVseq*2?5BG z{YC`rMIb$zj*6}jO?yPS%+d$wZe$>Z5kwTCfSB{Ckq>-BZiNc7G&0p#V`*_pJobar1Eap58k zfL(2b1f6EcAir-G3m0OcD$dWlOZtDC8&cRps(qtsC;1-fnAjnUesbuGj9wcpBMr{O znx=VbauX=-AnBtfFyjG6#)dG^=wxp{|2`6mc|!En(uje=Mt*GV==CL@l+I&{`uGpL zP!~DE7yWgC5T72paI6dB;|{BonbebLWNtBN;B)Ap(ard^wS2IQY(avry%7@-&4CGC z(D0=H?o$47%OC{*I2fx!xV=-}jDmx^9a`RtwTHGOVp~c>LsMK)vHz+_)TGbT$>4%7|IF)$gF#X}i`Pty<=4irEYBM?&i2TTLTPXc@ld-Y!^Zg?N5`uCA{3uBfQUH?cCa5V+o7sCK;K z*IW-8=6_LT}n ztrpoLeSs#v*1q9&(%uny3#z-;tG+HY+C=c+{4#HH3hYMX%P!EKh{+iG65&k&tOwJ!6!ABQG6D6>-4ws>hn+h1IgqRH3o&3TQUO* z!1=qVc^Zb@8Uzq(txbiXsWQN8UY?(ab!^U^K&+Bcz5N(o(XMI<#3b{ehp}NYGIPbF zIuHv@%a6Dy=BhKr1qI+LDk@ixk4a1&g3w#NBSs*wuo5r%0OtKPy7DAc%x=6QV}P#` z@GvmVvgnuC_!4d#Dr3MC`3ac$=h}%|msOnKc%+P|GTC#ryv~8)riBd{<@8`5odzo7 zRy^is$Eg9jN_mV{r+y2>i5Zj8F5XRSXxJi_Pf@943 zpd=BB_rpqoJlP2vy)}b6vS1Tpbn9sP{ANJNR^NaX)~nZ#C#kv!J2nuZjgZAw^L!k4 ztcC(~do$nx^HzMiE7E*1yKBKTL}R_QH6jbIJF_3Xpxks`s$k{R9N&YB-Eb2RNT76d zXZsl-Zpj!ej z;eWmflQmy~ud1FX2-F-Y#(ixg(YpmUM;k%zO*J>P>tj@|(TT zE$UQ~g0Uw8c~f*Y`@i2>f@BbJk>ffaW0;v&77tY83*QFwE%*1(nrabvyNBDRH`PPy z`KNL#?{Wd^=%4};;1n!_QZBIdgy&*Z zd2~yClZgoQD0<(UV(qUJF?m)V*NqXb10t8DjHkKlZc%4q5*?cm6xot> zlZB9y;^zm2`Sxw+^px{SQhvF%q!K8h6hj?7#;!#$#i-?N2ySr=a z6HO$`3x@D?&)6}Ahf~W3R^`NCa`7MbjM$;nN_7st_qupPCPa{NC^CQX2up|gacgxo z@E%h3dUuj&JQFbxn(!?UB}yG@yk6F;s7d~4Xc4B?& zkhgt2%Uqv32z6?tEv)vfnO)_U%<5fUVa-BMPmhh0)9#x=0~`f}EC)#ZLBiXEXdFRH zZ#xf+3NIS^)=2j9{s{$&?gFbV`#80Qi+$tjtg{0g^`Hy^fD}q3aS2C<16w4$bt7eE zIdpX%Vs-KmfqC|bA0h?Q2%S&~6bTC$KX8Z~;@pybeC|9?C~o0(F;sPS zx!kSeu>X|l^lhIpLT8RwP|;oxqL6;VCYG9$afddV3h}y1)u#eaKkTSt)aALaVZ#^d z_0)@qVil14)`afvP;ma>&NZLPfyw56>$)`5= zP%f-plh(2gEScHjHIr))I!5xNj0DK9P(9+7R09RLb*HxK_LyhOA#aRqmZTZ+mqLHy zcrkUDfteYkiHV8g($ZKEcHcl?0^U<0Q@dKNXw~E4h4Y>p2eV8TLOn4wO$YLEs`3^r zjeg;z)wx+lZeN$j@UXoq5(cxIrV*#LHB38Fgu|6qA}MNbq2e~D-%*~dEdBHhNN1&xo6gk@NL_%KwQgL@%x3~vz z>^^Es&uL@FiaKQu_dc%0S#R{y_4~V;Mq}+GaHpzdS{eORCzmKe3AM(I>!pB=geWN; zcd4{&Ix4euK(I_4wGi~tb__s+EaVTimxW2vlQ+UXfDSKIsLMlaro}x9 zG$Q;;5HxVZQ2-x;*z_^Z`MQHp#H=4Zep(&?ac_A3ZWw{Epvqd^gHInSy0sQ*0AE-# zyB6$WRlr|53s25~`|J?cL#1!++sp$0SSFR46yJ| z2Gnw9$Oa!vsgt6URmhL?31B1)qZ35fLU1-~9=V5U;upi!BZjRd1k~iP@+nS>Gg`<+ zBn&Fg)Hf(VtFj^^#Hm!27YvN8DD(o&t8yAz3bWAuHd1_FEbXTmI*ps($Opc&`Irsmok%AgWTai&mQAf!pSM@MK9azoWOQd6-9v>##9 zrvB!x5$+yo&8U-R1P7<~3drrk98{3+xnVT5w<29uaE|r*tL~~MB8e}-&AEDKj}e2C zTu188J~r;EXjGd04I4L(AmWtC4+DC36caV5JOMPV0*y8uaK6Dwr*$8$=cT7IGt0yu zm>ETp+$4bO-CN5s+06f@PH&Rm)woh$3_Gv`OfyVfsgp9xgl)GnI~yxzKQJ(R#iN9| zt-4PC{I{s6=oX;;r3lIVeWaLLs3>V!Z5!&QwkD~S>hM{OWs``>X#$Ly+NXeY@NP?M zQpY@>Rw(dTvA;g2S8NrsSO1m%SY(SoBhI)A3v8Ig$Ni?FJRfPdi%`iab=B6P3}T_v zt-%q>cj*ed1xd|dGpCa>tnH5=KoctHWxtx7UG}^vI^Csrut&Vzb;NXrbe$$3n8xv! z^E9atGNM!;WPUU^Awy4UR=p=LDFyFE3e@?I!tXAJZ$F=ouYOE)TEo+d)N+Lub59 zpn@8$&PD#tl}+6eBI+umxqLL|cV&`>zoD)XNEXJ%P`cXy1sf}m4|bgqq`x^MBSXj1 za?=i+Su^2Jr6sdu3W9;TX&=v_&LN+0dbQh}zV&Z(lr>T>OnWLD<c6ScU3v0h>x1{SLqe}>r^z&yGka+c`kEkF+tuTmv%0QWf{A%y z4QaZMmSHooc-351&>y+sG?$cwnDM{8zq?iBRbu0`v^HILSUNi!L^L{By%bBg*N$TMZZLu}msUpp6B7Fpnq#OmV6XX3*NWhg(xB88PBKg~R z`M-+d<8nnneZs?Got>S#`vq=O9zx?3`yy=}7*T6~p^yGKz^TEQXjmBz`%I>{j*(Sb znex-#92Kfh`UtkET8j(E#@KaiY&t7QY+lC$q1Vx5OHd9jT`l}5Ej{a$&M1Rj<#V7y zO<xxoPa6cE|=>#u1t1RQLE;oqy~a35PY!fm9& z{NuFO`F}6=j$`DE7g$c2Oo(p%cKDS~EN{9S7zlxahSs~Zq*U?_Us%`cZ?&_>2u$P< zI_m=zAa`%*xlP^BGTe3LevJMmw8kQ zrWSsN4A?QDiL;WiZn0#kg5I&wPft(X!^0wZ{?e5fiqvBZ6*S$!K63a;g(qK@P$(Q_ z_;S2Y2Y?T}HA%m|GmibEZe?Lj%J1t&wV@|NxUY=%qWEk^E<2GJbz3CNbT2O_w-N8} z?~~_o&I}voqw;)V)#+nTk1aS?0D(@J@H5I7(aiUVZK()<%Wmg{AWjFVg)T4veW zIMyoQ7}HpGz^I|tVegU3X0q^W4P02U0URzpvxcaOyJZvT^hUZE>lt@zC-UG|H#8O% zF~WB& zTA`5u5_8`~7H0#`lE?uP46M5SvG1jjO6m-^xfJ$XN2bbgz7UZEy^D~Qz>LuzClXJQUO0mX zlC5;q4dZ-tmp^;g0mcNaimDVOCuMlVtb2CwPf20QG=M2_t4u&5(Aqc6>k*s$pIa(A zvU_U!p3fpvIItk#p6F?hu)F@$~F` zBlfLCz9oS@s%~lu^78`)+_B4JmB#;`n;i=*D=Rb1RLU%SRqFs~Oz_?o>Az=Y<@+$6 zu+x38vBIF@L$_&?n+VA6WrKdhMdPu?wb4%~pMi!hU_hzract8_(v>#SdLVkoFxUTjS z4yeOYgeanCWC^jhzL}b zq$4m<%-k5P%25`_KyOH`1t{QMp>v-%E8pX&YWf>+$JO*$6ba1Kg2nDnjHW-`co0+3 zr!g)&M)5?SFh$#G@(iJs_7p^yeC0#|-0zlZAZSyeff)_Y_^yZ&@; zgT?n59z&5h!{g%u+S>Rc5t5MS5@EBfAa}F;ZbvAFiN8jiBdha(*fKLS@zZ=S_K#-r z+V@!!JqT!Xp?Vaa(v_m9)Q1aZdgX6!i>-k~6e z`NIu(zQM%Ae9L~fS!E>6Yo2@nKS}+$e=_;&83IJ_5{aB=0nAmx1?xu6vB&Cf8Xe2r zI7>)sAxE*!JobXFG|`_t88bD`C?(wOeIkq|ro?<<3S*BGY_*tVmBn2T8yQZ-Y;T76 zlQ{PltG08N@E`24moY(sfu{N(@nvf&dnbyN4~h@K)^`{o>2sgJm@uKUs9!hLe`ijc zvL1;TAHn&9(qxDf3j|kA512jujyEtDv>0(Y&j^ksM;~uP;4L#vySm3qO76!28O5UxeZWUNxD0)(Rn@Ou zKLNaTK=|>R*}?shTdJcg7C%7~%!87~l9`%z84i1enz$FlDiEab`*yG~_Qx8ufro~G zU>K+K;vF*Tr~unWg&#^f{8omlZ_Tmhu_6a``a`E`?*uJzQdU{w8#XPQYlOj1`7J&- zwK^1$Su!{PRUn^%ekJR?7UKR+w9NemC4`8$+kxLqh=(al5;#hHe}(*1eZQ6XkF1{Ra2R6@;DG!NMGtpKdE^5HNc-9&YK1ZN4 zs%sFIs{yr_B)_Aq4w0%nIt(87hJ>?Mz9?O?8jzUXNDAg$c|nm_#(9*PX&GjQCDh$L z?N1!2;ywO^r)`J~C1>_N9~lZ|mVqlUI`Mw7S_gG!!)G5XT*UcT{sc;1ercCXZ*{<6 zA(?dsPp?m7Ayq^CXjo-Qx2Jq}ddo z)xYl@N@Atc>K5|-2|r(UP@=MhTyg|sSU`?j4A|UR;4UK3l)0!8X&%sKNtC6Fn4zM- zeHXmR^~R6P%-iXX)aetjCLyQQ=C?qqrTtip>F!te`Yr^0Fp)Vr#j3g8;zv68B=(HC z;I?Y4^*WuxG(XS0U3km~b?Y$gCJqJ!ct`{BK~aChns9Kj*4tqp8B#_$CXh~a!cs6u zxx)D@-E22M=Dz*qNRQVhxvzWNKu@Jq6|6xu;3Z{y&*4FijUIbTpLTAh#W*Tfo`8b> z2hyaJhRdf{Y^(aJxRYvjRUQK?L?ldBS}tZy z^*BqRBsLpm1NOU5W1=gHmZo2+Zypujh`nI|&0ika?|%|l%uGu8URv)x`9*i)U6$P|UK*D1? zqfyyQhQEoGS>Ki;!lF~y691%Z#iRncM;+l}E(j@MmMfS78(2dVRE3gHAj)NX1p^`J zh|n3wQ%?%pWU%^k>vH4{oH!nOq2L?IX$LZPCaa(ptg`G!JDB6vQ@5@PZ)+$3r{#I|PPf@|`P^OhBEfN!D%4)Fc)T{q=J-^9 zE{;tS@M@rd$xI3-Tl=GK?|$Bhds&CqMs`#ku^ zs}fcB$Hv-I!`3HPNN{n?+uI>tS8w5#A|W9+_)ZLcGQ+#-c*hP28++T$>%@e_)7?93 zjoT0j3hJI+Nyf#N>yqEi2PNg`)kPXD;l;R3d?L!Nr%*(SH>wj4tQof256*T3Ew2}v za0zj1?6!y9QmGj0pYX^eQbWCImVM13t4Y0d#ARTRl0~|*@tg;dj{!M3nw?6cS->^~ z9$?KVnQz}HY#*$dTO0JM??M)lVamp2rQ>a&KH|1!R*uYEhuWvAd8xd9O!VKd6Q*3N zTtXOadEFyvdOeeW6k9#rqV(qJwsJl6^Ij@5glV}Q#$DR<#j0Hcd^Wbl8^i=3i1nR` zJl8zK1+5tSGFUaj@*p4Wt9;#XU9l)XuhF_Z`^IHN+MOL{U0ji#TqhLYK5ieKcdp%> zHBRbkYWOzsN^V#$I3l9y&ZQ5TnVT32GkSYd7q=%{bgmrgVx|Ps0gvmzJ})<8R8x0B z)z$ZV5Ec-DgR8ualXJ;#E|lR^A|9SWl9LKm{b?_QXm5=?;B!M@k0Z?{1##bLuE0sd zZn~qZ%g}hp^qb#Qg;W`88RxFf(LeW>2E(&_6;2!VW@;mY4j4|uV7DACpEV|%LsY6> zcM&Tynu432A8rw(qqF?RLeTfaUjw>6A=@H}eTcj$gb~gSC|WCB%!Q+}!W+`yw+}c! zdQYP%K9_UKwBVm4Lf*;ADh5~2jkK*y{1cjnU1X_-VlRrWS?Kt@CcZ=U}|F6Y@dOkM*ySEEbhj!inh~8+n+OLtR7MNK05isdN9nqU@mBkS zEeTq(TA)c*f4t(azRti2Hsd2HOR6+Yig<(!3`%I{T>Z4F@GKlX@z#seG3a9}6_(2m z1{*PvLZXia^Y;_MGwvhLu1D=I(8UN{vF^vlfU=E8`EMyXUg;oOBQrC~8@syg{W<0r zRY}FbcD&NHXU=CIIeJFMAx7E`nkwPfdHLWG9>*<)XNMJ07Zq}I^Ya>)cdYW)>#?$Y zbCr(CtY4nMZ)HesEBL6c8e$TMYq6YG=B7HU{$s`_CWE(>LOq+RU>(ux1kk<^5#AB6 z0vCGeZWkW&3j5uJ#_+J=mF-6et$H)o(ooB6L3y=oNCwAV-SpZ!*)P$ign;`HsxiF9 z3&}x$W1avzdq@Z^nXszY>r)!>WVE<^brsA>*g4bEDk6sB(sJ**Fzlp4gv+ggGH|e< z-o;A7bW-{i*3DO6NcWg~zO0`*F;5BiugHwNd9`~7ZFEjM65qrLW>k-hzw$yo2gnQp7&vR=BD2w;>B z^A6vVdlq*{r^6CzTIx6g<;O5wYYsi)19&YAVBMX0g9e%ihGPdB$B$0aKHU(?y53>$ z?;VP($_7fOHiuR(c@8&Vqki;IPk{PXorPI#JTZ0&Q(U@PwPfP8tfbs@*vWdtEj+ym zvi8y9W5{R0pM3T{GqzK2kV5b{y!<#@c@9e7b965Yxm@P%{xYtu)>LuFty0=~Q0 zD~Liw84lDE-x9F(?QnW6+TmJ>vLyN%3#T@lI=@u2>z%EaAh(6W{bHUBP>L#L z#j|H#O4xie#SSf- zjz?*7x}?8Zj`f=o1A`l=Q84%;mCNp`uLc2w9uX{-IA}0y-ma)xVhKqmun@ggRR*SYOla>Hw4C-nP zme@uwjt`MfZ$lF5vZT9=wZDr#ileF)&3$TWpo4Yd#FBr?1zm2|V6uzrdTrOBKVjS% z4dI>cAKK5#xjQh_#{JGoU(=_~l2Z;mw8SLFXhJ~~oX&Ox6R+q{X&v>-tI2^^Nm{H! ze-~<)%f1AaRaKJBl8eRs^IG~%u!#6_Jr)bC>y1lsJS-q(WV-QD6hu<0V|*(WG^PLS z>|}HI1=(+E6*T43|(%MO98s+M+$+lvpc8#WAbC%?tDiE|JwNQs@G3@r$INSgKm9f+h) z*aBxYjL@9P!8_nZpl59ZTBe7aQ5AKYyj34cS~iB~K}!H=46MS@&pgC-ME+F(sr{$|*lIitzU!1n6o2p%*x^ody zw-xFUFBVpLTf$x-G?$6t@;-0n8-d5)*-Uq39f+*)V>aZ(#ibTP`q69Btw!4uL@=GpYXC4RL+$TTL(BGZr<3(w`hf}qjhL^T=e`EcnEgbHe z6IF1aMx$~I#S4lWaA+aDryVqGtab_$n%Q5FC2i1pv5$3WYHZwj1f`OE81}|}^nVo; zl*d2;QD}fup2B$ahhjBU*j%9Xl*S1a0s+Pm>>f>7@vd&4doF2{R{Ts*n0eRk>NR_o$?4*H5bL&k%S(LG$5`(hhnJ5d1Gjy3ayVzTKty zMTg_EE?S5{66=RdZvsQF>)tJ%y}Tb= zuQ-E)LfTUwamg*)IW&Z{$(*QKo_7pJ?e>1K<_4PVcN;T3iCu{C2}(0cn(7)qqFt^L z4h~FviQiYg;ThV{U>P*+XCbWDVPtt+eNRnIr9VjJWQ!|G+cO|^8&R&;=2-l^Yiy4o zAUz*ezCoB>q@sP?y^pk`1jMgF@ z{1e`02YvVWcj;gzv>K#KU+kcj8+WO}sI%CvNpwUym-M_ZB>X&38q zTwPJ5PID3_kG{;(%W2rA0RKh=JI<-+Q*GA?f2WqL<{0tCKBF%Z_6ft@hX5o9u!msx z@O);;^ydgc4RH?B;iy#@$MunUaijhYEEwdAclks~x!NabQlW%+_|D<(Ptq_VV-Aia zQoK&^#|;<4P1kei=Y1tjcW*7Xb1S8MN7;s?c*X7h<4Eq$v?R?i037PlL~8J7=RK8` zSeMD#2N$ec8|6rTrt=OC*K=ch;$4MyKdX4f=SYuUX^Pa3tkDLOF}|{ zPX|E~&JR_1!vVAHZ@NFYaxo+x9$3Go6_YjGRSQa@SViKJGV|XX3~(8SI+% z6;0Av!3@VHt3<}=WSaK8pN&wCw=oi4nprC_&UX$f9&|7?4t2O}fm5Z?U^Fqyk29^QW$yH_fCmcoqVX&7RAKMO7AdB*{pLw79M3ibRK4O<4>OPDs#`Sl3=A9 z?si?z8xD)~y{YsX?fn!FB>s8SZG4Pulx_H}yX{4}3?_oPOa1y>vvW^%-R0E%`DY!+ zr^POA;%HNuKZRbkUrw0(;xA3h8+_U>%VqG`{*oz#PpgXdG5WmT>qW?|KISXc^~WPK z=Ucoe{Odcbr~9BLXPjJ`=7f|k;4l9_{JPRGUAT&n%Y_gJKPa#iK+fXx`iDt@_ z4tXY&a*K0k)2aG+0hGPN?um_WhZuyc^z;K)P>J^WbXvcd3=rCmUqVC-M}+l>8M(pj zzpTf!$8?{B1~`CugA=vYrEZxc`hKz1A+ad%;ez)X#Nlck_4ayA_{t}&Xo#iwk+;j2 zxFz2s>Yzc$DB0%ig8WX$A$|>OL4hx5PmVZk0?;Mew{hCOuM}+W*L*o7eOhWOd-}Mm^cbSIkfj>y(*_Hz7kZt#PLjQP@?&+f%$;Ue z36C>);ZfX-63+7YhJr|-PwNEcC?p9HzW3=o?&!h~ugS)I@Flg(DDHnfZ8>rrbLF8*7E%LiKSZ!Atu&W{sG z?7J*Y)%|`_?ZIAer~J#+N&b@o813OUTes75%0sca>YP?cRX68{cvt8lllKW8l0T(J zO5F|1(Mg2<(B|jW9#Xy_Lm6WMGpZ$G|2!byBe4+Tw}=@XW_KmPWpBZG->NrWRM+yb|=ljCyVlAv;l1vV;1@rlScR?%ree>OSH7p=XWyw|@UF?~B<%F^!28l>{m zOG~$zYB!{6e18D=f-)9H^pIY50=c#nSC;fGW&~m0PX3jB{p|Q8FfWHpq?cuBJd1nl z6q94k?r7jwplzesm#Ro=m$RjmmYwltk6R#x9_)|ovoh=2|IUgTFB5{v4ZMO`qOq7N zza#(SN5=IFXO@kF+gY>d^6Md5X0rZPC3W-pMUZlD9FgXwxor*Bc5? z5f5n;&fZ~shq?ZlGvF#iXZ(p=-IO$IRAY@rcVGiy?3D7>KQ??C_feU|LJDucV7yXL z3lO)&iwC95Ce%&+mv*@2jv3%|WjG>k{#wl4thSf9py^P$G`P35@%{n%=>k#J`G&vt zQRdUo0Dfj(QB}ITe{8$J%)oWJiBA7ugx7@=^vFQaj)5Z=Dgui!CyZJDY&ir+WkC6W{?9WxCH-gI(XpGrJlTrDhv@fTsIDr` zXPpLb?YCJswX>62367E`+)X&G{=8Dyl{8AKL%D=s5nDgO$~Ojc3Tk|dknh7fQws1{ zl!`M-DP!t6VY4A)zOdhKI4k<7gV{q zRTyp(IV34C|K;$yf5CtZ2<)33#Y*}+~zyp+|teY(9D-o8#nqC)D_GAS2U zOZfmVN#)#w>JUW*$)+Irn#Dw8W^A@}jb>_U8u(?imc{Bn9x)P8)!r%0btRTu$pb z+%c|4Ta_8bIS=bUtoJPDrL6a=XUMY3=o%Xb7bnk*Yv+Yrn#9edmc1^}n9dLmS@+7t zAvc$%cmCk4M@OH^+F2qL?(b#A561MeKTELE> zr}vtfxcUY)xER56o7dS{Y3ERoju$b;>%mVrHB@04p1=S+6T-_IglG+|0ZjM}VUL({ z%Rnqh8*5fRy?rQ$$%3$s>v9<$N7jhKvbEkqKB zwIUV>Joid36trLVX1XA1XfW2usk&ryH}!lULGJZJDz)wLd#HjD>8+FtZD__GisH7i zI|;7l4>&PYfik&p7#Xpz(630K78SRl&hEZqMO0GzF6vH7U|`b3AAwX;DNhytoAOHm ziiW6T)RjG?r@J;oaCr*{xGeF+_&k3Y*v2NsgMyL}+}}W|R_h8sMugL0mwS8jcrEp~ zQBT4i2JP%>m3e@zAEhflNu|zPPPr~p@FKOVDlbgAX9z2y0UFZ@-}co`-_t>w)t5uS zdb=~kl)wS1C*fKVYGvA}rcd~-**0P`3X3Jq;K=BO7UsJHDrv$@9@fjU3j;QN4z4P| zy&pa{u)_nC&gMkCQ))vaG>K0LX;mcmGQwu;<>p4Ggq2iMj$@Z3sk#D^)~3w1r`e#4 z;1@VZs$h0a4HBNm9TKkdHt=NoZp-eK(k$FoPBp#oY z)*ce_^Be~fDSZI997H6dO_qfB?lX==e`!2U@yG{WKs+J?BcqH`kvl(|!5lTI8wzny`IOkct6u>|Dv>` zz$uuJ{n>(C^2V$k`}4_V`^F`;B#I*^z#<4kub2WCNpN4FV1)65OHU@X6A6V(ICOth z4qx!3bw++^+7}rby!rlR+0vi{)W4~J!L*CofGt zkx5*?$Hh9kfRKAy3--?A_p%uFlKMo*Tokz+4EVLDxd5!Uj_&DQb_ZGsjdI@!ZT4L5qu;jY^c z{c#~6IZ4t@aH3tJ_3-Ti8?KbI{myYzu${r08Ly$ZLJHnn;}pi{GKglVb%mY~!MGgR zU^vwl5pcZjMT1WGyWkOmN%@L-BXVAqGm1n;2qn+`B-N z?jjTD`x1aQ0&75QWoOg-G(UpPpvMr7ll8=sUKIBt>29KfmFa}8Pf!J~C&as;%T(`>>Y_+G@RGm3`YTNHpietzn_Lg~} zcASq$#iKl-iwC9(_B{E&8UkIi#Apm-bJ)|*-5hhUzQee#KB24~vM}NXvg>iaO}qK} zU_1h5Z*7kH>Gid*2f+O;i=*q#W-`Eq$6XYV=$d}~!+w$$0T^AconX!{Q~_rxr0OiW)*+|bZ5fGs8B8G-Q` zNd3C!px~mbZw^d3gpbDH5JeG$DZizf$Fk+df-ckZ`viBM;&Ga+D<9^X{8_n$AQ3a+ zPC933Twbw$+t&IYteLh;>wR|B7ON$G3hsQ)!XG zGU>4d_-<5^WHA{0;h}cxI!CkNS^MZDDz*x1>iI)ySO54G5dssKf>uJdXA~`d_%$zl1URywABKb{hKO%kIuV? zL(Z+ghr|V_N*Zzt;E<0o;(0ZgkssfZx2o*-G%B<=*#()&$}D-km4t2K6{ur7@7BgY zemdf`g{v6`s5eY)AVb_mi42;)8fWv0l?)Cvq_ldIs$oK`T zeeQcoz=?K;>QmMAk;-@xM=C|Y#3XMiYH7mGG?5ED#&&>o3uY_%j(xy_OUF=y#n6w` z2dZOX;8S-P=iDlJ5>0f8w`6fX%Zk}#u#ZAVSYJ-FG(r{;8kdJ7m*C_dR(RPzZ6HYU zf2exPu(+CFTR0&k5C|4Xa0u@1Zb1h3;O_1)Xz<|f?(XjHgS*Y3L-61Z-@NCZ`#sP7 zH$P@~*WT4qy=v9!sEKaA7575HB3Wa7pXZi}04;IW^aV9)UFvNOU6=H>1J}I@#pM;B zD6*{OKZ2zj#3>O{(B;hs+v=F39d#i@0>O-EbbG#^2)CUnn<~!njrzV1rVk9T68Q~x zh)*W4=N?8Y|2>3t-gQTG*8ODXeK|%|TBYW@h4`?w^Yce;5#r#`&~}_8(KaX@=Z>Le zqd$$?vNmMA)igGhZLzKET&IYFnT4Ib7bkf>qq2vIve2=BLjetY)!}lQrH*hr8#8|H zV&pdP`7!&2%JET$RESt0T-??K*bak$9_|)}><>VKd?n}=8h;O_Og&14-lQcQnmN^5 zO%Dl@JJ#`!eb>ig+C6XV7I|7F3;3P2&A)Q^G6JExkd*-LW(Xn1RL{ z>vaE~Ho?0MXD38{0lsEtQBl!sDEyT)Eru#MGmtw1yyoU+8ze~q zGNdER$L|jViIJka*_fUC#5TC2^xnPRKKs-%a}AK)K?XCjxP350$n1U!U!!n)(^otH zYQ2jNc5pteP1o<-;rXf1io073369df-L=vADj`upS>ldO%Ij0-_C?&-l``F`ru2nx zb7{0}FYRtDNc6saeL#nN6zB4T=+R{tm2$0-8zM;dQ@63`(!OLg!8R>Dc1pE9cv;t- zFs1)6)beDd?jE+baDUKmbE5c)$p`KX<$pixFD#6V(dw`bH)@rMb600PBFxm*h;nn% zFx|hlrp3W#RzkcZk6V5VCj91)m{P}FJ z|Hg7RUyNMCM#d3eSjNufev;So{M_~2aS~Gy$nbi<|DhXO-W7(Z|4aFe0TQrXe?;4# z>yX7?&)JNwg!K8MvM~o$$&j<@taGd|CW7TJ!vNs>S8~c>_}&RM@-dvFBVz6ZB$YtU z4bGAZ$5G*@qJNPv&!S1h5N#T(Ano3twm>cm3Jc+}bOLVs0Y%`H9;=wFun3qMhs5tM z0%P_WdY*ta${gFv&EnCZBWhESWE-!&kat0Hg)z6_CtOIJjHZ?+qqoln`rqk#A-9Qf zsc&PKnYUd9WPxq#8Vc~r`X+nHW2i?X>k~~SR#t5iOd@IYhJcyt>D0}&-e6)=Od3mQ zmXczyn)X+R_2=xgp!&X<{nzkutJ?iu@lNjp9E~qZ5lWhxV`62>-uvC-#D33xMHe^6 zeDR+)Jddj~!&Fw(U}f~}k-bGSDSPjKjV3uA&K1Fsf^-g&Hxd(}uS=_K}3uV6Nrz za@sa5`D&KNU-DnM0XzQwA0Y0_P*?QEV+1&%*L$**W;8-xcp)JnU?O{XSZ>&yMnWLS z_zhMB$(Ly4Qys=5Why(Kr>7K;np5XD&kYEvsm*t!_56_=b~^p_DqE0KgPi2>eU86Q zd#rM=PA6XNefp2<-8q3+yKm((>VJ2Kqjt-kc}rR+{azoa{>0784E@0%3&Qpnl?s8znr~%iSIu%6C2KRYq#RS;uTtx%T$7hFOj(uhF9$l+ z{FXl!y4 z#biN3uxgJ^{)_i~u^j*E=hL^iAkuJQVQmbJE>DivhiN~f)3v5t^OuK%90V4-@Tecb zMux=UJ9`jAE4vY+oOKz0@~T2Z95#3xyK)I8YN%G09gROul`6Cx%V&btG8bl1l>(F;aproR+ z%IfM*;<)4mjcv{cx67)hch=$4u$s_cvOd04^KQ81KHj>xwcV7&z!di%4r`${(nm|C zdLl~k@$TYsWX%L)y^(byAZaD%EggRV-}I=|>0U7X2A2@ru*BR2Qek2qCYAgiqv@Wn z+xFLwjuR)4ppI$}yd=TJA1(VpuMHo9a62BmGb?50xyOrNGE&iraxe09dUbe!xM z8d!qNPJvbCUc7xAPE!j1yGRy1M(&naW6R3`n$W*U&uRXvFXlUSb?HwS#E7yX!|E26mBPB3 zq?H74pXO8-PJ@2em7yT1wDkA+2|oEOMyjhgfjVj{Q4yy04Xtc)_tNA`ni3Z*=_Y)- zZ?-5lSlQsCo7XPjetwJ5Nf0@y}0|jXhPiOes*eK5E(L&r6X&>op@SZQ>tdWGV}ZMSY_ixQ&E)VWd1z zpDi6mS=q_0V-k8&geT!lh4Da)h(bjI?&6@nS)%sfRxx#xyXLC{v)ge zDL1yVKJ}=)SnQe!J(fgRBt*~9YZc;iM`*sFAoRj+zF|BpMKzEZsV*+q)}C3mOM9h& zxXdE{?zl+aOPkGVLd6gk#HHYschU1ebQH?W5~Cs+6Fj| z@HkaH#)iy>BXM;&0A7)UgEWICy1InaxZ(Az%qU6nvwH3rxeNr-M52*=f`Zu{ymJp? zXaevsot&!d*0w02aHh8}$l3}Run>dJ(q>rofMz}Q$U9r2@{VGt6FGG}Gjg#w@~an1 zpm(;zr4gsjsVpNcskg3xvTK3W5*hFuyoRVIxtj;h0&3hi?qjx)N0*t0+GaNChfsr+pN| z^h(t#gLp!uPT9_kd!6ZTN@|(UKjiw_EpoB%ib@NrgNq4=*_oi2wsy&0P$(_r`^-&!A*P{$GeJS0jqh3&%oyDOyfS0d^}AX8 z#s5V3-{C`o<+DqjVs5gbtY_t@K!4#mvu~ z>pQ*p@tkD6Po>rtqDGz=ub!cgkau1r0E(2CmzOr)1aimtewxpNDhdKaMGoOJZUZP> zr6xKwZfoGRfb>j)h5duPXh7JFxVQy9gNTah$MkaR8D;&@rD2Ii7QR2X&FX?5l~eF= z@cUwi(zsY#eup)EleIZDIQk3kY=&;JeT0PUj-~+w))BjnJ@c1hy*@vC13xkI=I}UE zwvhH57H6pPR%7u}9r6j-p+ug}Z9z$z=@8l}C5Drkn_MJp55+ZjD!8~~O!^DrlOBpH zX+Z?otcuS+eL{Nk*eq*Vh(jpoAO3VFCMSQN>it!vH59c!p5Do?(avl(@w_{k>hq4Ucxj2bxiNr6CdhD*9V29Tm>wL5F(I_E9kB*p z8je?O%x!8*6JN6uW{Y5h=x7H@Kvf{Ul~0GI#@p7`5lDtZ0e@HS5&DyH5!XV3`Z*Qv zvKcN-U|~6vN2br*U&U%$r?ajpp)8h5 zguHh`1<{|A_OnHek++B*e)EPT#E{@ZUoPwqH0hmx)g3VC;|(cT)I5zalxS3+)!9sl zyya8snt>t<9eAaj@B};?GsCPK)I4=X-b+tqi66GHQFpjtn9=)3M1@j0%Q^1C_D9w| z74f`C`@!A{Tof18{r&vBd^pr?42MYEk0q&bwFWL0)_E^BMr$zah0r0!LhC4x53?w7!>xh12!*7W;!QnMU#| zBu!L+?PYzxt|i${PA-Jtk?8teM7;6wtx;0Y>eGGS)O5_pz}khs{OKBq>qwM!N#>@^ zVkN4nEOMd8_hBcg?_?C1qUI>^GgE*09dfnUt`FmKX(p;T{D^M^>`-F=)TIW>l3gwL zye7RdQM2a2B*56Q&wt9u;cWz((arr_I1CY9TRqa;|e| z|C7IXn)dh38q@3I!S@Q#SxfpIl~Wg`nYy#IS={f)z5hium)JhO7m(z8xd&*i7tk@< za*0*Sz>?8c!F0Mi7k};UvN>;mH zFCOUq$+kv(Iq`b4tS=&>>PbsMLE$9hR4(I&IoN97b+eRRZvD~(iw+DPF86I>Px z!Z{rm{0aH&wX7)Wk>*x>NA>wp1uT@2C&CDir?lvxbzl}&L6kAtahZv^y}#H6jw>1M zP~sUeZXPHlB!!)1@x^wya}lI19PsiJL`Pa$8`GG|b~0~&m0tZGa&VpYuiFi^(tF|Q zvd(A-iP1Ho$>UD+4Xu#0#KLl~g<*X?`3PCp{So0Qt67M;6a;fRNX+DS^+7!Kj~2V^$meUP+* zr=>9q$el>eXiPGoElYq!|#dwC|-E9QtsC{wFl&K41uN|-sy*_rMU zXD1JTc}g`*p+t!v$4!uVytOWTy=1c?AVlZ1f4@;6=`g@%>*F$J5zYR|E>5X*a!Pb= zjiXdnK7dB0Dx<+%VKI1aJbu}~t4rXl^Gg1~!PMs1|Ms^&aQ_>DfM?>!G}T=V%m^ZR z`Sz@)e=zuOgDvp(c0D!E=xu^2Ei& z#M<^|i~Ldj@_axrXZCMy5}FkLl=Ys@7RdDx)Gtn^M0Ryex*UWj_kQ4UawdgBsA<|_ z@-%^z`ECxHsLj9cf{jP|*xX!*Rgb_`uq7?lXNUVFt;ln$KErT~9-5@NRH->{3Q2DU zNXf~5rRwTbj{T;b;GR61#M7Plm~XE0og})@c1=3BZT{8wz&x`#$rFi5N85=ArV;d? zpc0Lo44p+8HFr$=8m-45f8KXbj;T%|h{t=qGkL@dwMp$ZEyac29}g62D_+m6ufBKO z!JU|Y3};0Q#mD|c;VkLeyrt}f9BV(ohQk9g3V=fOuVhwjD>U8u-W`_T)Vso*<9bEy z8B^Kfv#e+BSZeQPMI#m+&I|mf--_7RQmKgaLT)?X&4HUchSZfi_dTqxu5Ke<2m9sK z^eV|mnZV6x!=zLKk1Fk(faZcq9E<&B_m8*RY#BZ_9j~uv{%i(@WGH9>*@ubXMd&cC z$>2-SR+>KRj_NsUu~HKdU&Z~Uzy6OL5$-!_(W!d4+jAun-6c0`F>v|uUZ1$5u zbNtI}K2bn0A7SBl>eV`9X&wr16XbCT>H+;dw`#51 zTKx*O&QU@Bd5-#OLtS==?29S6RX#YNQ`NVf0wt&qZ5_HTb3je#V`NCXVO5g;Zo(Dp zJR7j0m?AQ(@V2)n3OzlIQvQyVkovuC4htK5ATW54JWN#|NpovDgA1)smbKbcL<%uN zE`!sb97objsm5uufYF%s4r%IZ#F<3d`x}L77q~lpGxpYWGCYhJ{@Q12O zck-@}AysKx7>NQkZ;)N!8xq3f#R#!8nYbt5n8`s#!AI%=Ph8RKdvwyDbV2@3v~cP&Gxasm;QU+OXVte~s$;X9}aPwY9Z`oF-C4Q0XHB zYZUAG=?E+Cu3JE$tvxM)u9o`#q$$_>akrtyiIXbMXh4`6nzt|JlN2+a8LX zGkJ=b%Wg6&Ba0+}gG)1Q`1Td&165V9Sdfu_`c$?+1Ol;lE#z}1uPf5tog65Ge(uRw z=f#cMA8Bt#e2(*DAxTUaww{MS+eP-58QugLrqb{!$mk&IkYxr8o;na51VRvT@G=Uh zeXt2$u;b%IAW5Mf?py8UB&gKZ@=u$G4{E9WT6}@ZqtLvw>CPS6YT7&ZUp6%zLXT2i zw>5q*5hZKn-w1-g7ZLNu!rbz^aTugF-4PIOZ>%TwUK9wJXqYxLbNK%3E0 z37mD`{E+a5i*Sf+HlA97d4<+uxUH7pW;3$dsQOdzmRzQK&ONaPoL{QM|Dj$xH?Ud4 z;#~Vy7q`)>J|-v#zKwzh_lQBaJyAOzwwq`lnxw6VGJ}nS9?Nx7kq@;Ey=i!}Ncixq z>Q|Oxt#pUk&1|!ERipj`*CuZ2kUo&n!g4~2Y3^FiqP%r@-0RfRVdIr5!dxht($-q9wHk0tGDjmLR!rLi zc>RWvho#QY|pdH=Lm$B_4W)sC_BEd-i}4{!!&|D_KCrC6LzZ_jo>XX&Gan zIY?#vtR1G{v3>=1rNy_Ka&xFZ))rU_))IL8kMe)J^j#KrJ5QP1Bu{*-sNC5?DO^t+ z_H#=vM`o&8$T3V@Izpopp3zX(c>I`+aXg(*0XY7JiplqlP`1+60295mvbw397)kJI zoUZ0KyKrOC)rRx*#rYmXezcK+NildqU2|j_=s}CF18u}xtt-k=UR01Es?451S=I1qh6v>kX3hi-CfS) z7Z#H*v-!~BW^j=h?|S}(G)4}wsJ|`+cW#m&W}ko ziExQjcc3d7YWDO1JjS%ncCf9LoniN;Wvi(hV&s=^cciC^4(RzCVd}~oF`qT@+)|Lt7+4g(<8oL3#S@qo`9|;|F!pkUGP%C~^Q~v@{*OSV zdh!whJJxQm+f{QO%w<*bpP0_rSQOPES@>5&*yYZ_Z)nHmmj)(Kcon+Ewl&KjAeC8i zL1jB`A1QfxKbn}6`sYZLbr!*XxoytzN~t+6z&3eQLJ=LyzbJgJ0B>0U92Gz(1v!{| za=ih0HqtR;b@lL4m4buI7`n5Mg%z|=<@cBULy3($xh>`{Wrb7tfG|Mytmn-)3U3?5 zn070qT(wyjwhJeH*%B&f%OjYSb3LKZchx4qGX#$?ey#CRL7g;tH>=T-Q zJPTe5IEw$-+~gLOFZW4Dfee%p&;b9~+Pfqz08~JT3?IZ}Z)tQ&dbms@`G6E!UT*1v z#^CvPhJ-O}LNua$B3DA~>UhH*-1j17I3_N&!}-hjab}ABk2CYPLfjJ{@3{L3-c)9} z7!Db}@>2>jvJY4pSvXuk55<0TUMenTX(I9@BbzhOrFTt8mtq!OCwa)Q8NJ2?5%1Bo($spJI*AGPX9dGDjPsUMwS56Ho~km&fg; zre^`VcRpWEWLkOw0Zh|@{&_Sq%@}?CzQz4Z6rzhWe}BG(fE1&mi`(H+HBjkKYVzNe z>RvL^*9^2JD#u0soc(5WGerRkZ^b zD@jS%e#ulCsXU(Ue4y>G&KXf_MtV;|TSoAn4O(t7mg>=eM7+&w2N&5ypHCPJ_IWyO zX$z7g2^)(JDzuf(7qv@OW;nI2DrMwF!KZow=&>&}m6}UfhZNs3H>vXr^$QQH@?FV; z=*57x$N`A=2%Q&DQNOc!mTRPMa!6+`^~!+-b?Sp;CbLhvEOw6 zb_@Q{U4A@%r!V^T2RdP-WxnzJmrus+QFJTO_y&BAl=755lxZgMX=8;TlXyQpsHxs# z;dJL1q)gss1O=b#%P^LT9LMA}xI_5IXYi|?<6u&3_0*!kOZCkI!DfZm^s4ze1bkQ7 z<=N2hod6o{@#tH4GJPUaGm0-0@oRZ6x zwHA6oI`3(D+WmamRq7uZ9mc$t=5(9mHP+QH3?wx3j{Ao2n~4+UZPUlMz_0tvx49X= z*!}16c=|q*t#<+&lKQb3b*T3gh?xz3C-GOeQo|9)3Y>2Be;jUj&O^MG=!ix2kA8Wa zXy!5l=!qDbG}KO}vJ6Nst8$VxG0$<57&u-dl=1sXkIUPzfI8gUEoaXeNrV}$2lx)s z))4L<0svc&Xqk(=7SgKA32jfkj<_pq*=e9s?AMyN#~MxrUf`@!Uc$~r0r5-eRxKt6 zudS6w!mUehmewBu&PoCGkXp|4S8h^QvfLLG51NUXrf6ZqzLohaejlN;uZakG(o9<{({FL^G6m z%59|dVkVzM8Fky&8L^8cD7*FI0Dli%VJC>#3@hp3s-AdKOON6}{`9(j?5G(|EyJGc zro)|(Hp#z>@0YtUWFe*(EJn4rcgW^+G(PosibgrpGU`7vpTK#(6))E%?aM;<96o~w9z5T$)ZwQzv&Ki>MLLObtN9J*Zk|F zHSm=`d0pSlI;vC)>g0ZUyhr)uaXO~W)=GaUDxsCz1vdQ$D#6UTP>-z;C9Y1FX*G;v5l)_4&M`M{Z3c&`tJ7 zn_`D(Qufbg+kA%)u1qe->ur{8yi-@+ct1Fz{%w@zkZ^X8o-s7;mVKv(rt=-<8>}6h z-M*f;mvimV=A5_ZgC)Jx=J#mb8}|GY)9FF<6vo4zGg^<7(OLX7#BVM3QlS@^`@Aa1 z-kDXxnh7d@xVBQ>TNYh1dOds3|P{e3>@wJuJObx`3ZA^m3?xlBIlpmjTn=J>>B9 z?t*yT3^5L4@b|{3 zavHxp)9F8iH-#-DY%X`-Hc0@h&OIzc8h=POhhg7lyuR|ijr>FRc{$^`gy!SB;L!8E4Sz z%Bi%QTTIE1HUyh#8}R4O6mmR7 zv%QR?E7$9X3X4DqBri{6*L-KO3W6?e5QXl?bbcT}?84sfiHmh%FCi4H(Wv2jaUisQ zr|)qh#tQa$D#?D5E7 zBPU|vZgi5{t2ajw^>wZ{O1~*O%*sw>26S~SFJ8z(w}!~$kO@nOsU!$OIaApz)eX0} zJ4LXBc)V^a={4(r#;yq6wN1lxcy4i-q@KV&aAAjfHb{!x*UM;vij%Eb(}J9?B3?((g@t;2)HyWOcbEnE@LW=it2i>io7LYQ1?Z!nuMI!S8C6j5G!7GvDo5 z)vNbo(I8vd0i#Zva&$Jg=H~0A>+xRF1F}iqxgXsmBg^&?6H^zDQR+%-kEg7~dfo@g z=#^KHZnsYM!z@~qWo1*RIg$gn&zed2;#Mv~7N7o^4s@Na4gz9u-gxpa(}bAco~$N2 zzOC8>jmF=uPWvvgp0(~DPviZOL1DLDRby051c*Q2)>#?W;K^I?1y5?@Lr=SkNtv4- zws%eE%8OX-xsEY0#a7#p4j0q~u3(2Dy$b2K*%)8)fhd=|P@(5O-bSC7WBrz|=+UC6 z+uV&4a>Wb-I4#p2dhPg&-ssoahI*(`xNccj&5z#zch1D#3q;KBf5Xz4ezBby4a^8# z`QJ^9l*m;j+vKoLDND7i&eSE8?DehNB`M$w1*$VtEUjrJjNelEdFO-8dS2&qV9#Yp zZvJ?CIu~LpkfYW4dzw_SC*=1QN>?51XpGld{ENvFQ}G)!G?}Lw{7rYZB1DMWbZ2-~ zcn5&GOT=at=_>U!rr`UvLzE9ChBJZfvJiL-R(2cr3V~Jf?l{@aLv4#XU3v~SQDiR# zz5AuWLt3$elV6B!?7}KPv}$dLLBmt$K%--y-*bM~b1}Zec!B<-`O~Xu0r+(!#=CXO?9Ce>;HMUPd$}|1Yn65>dDf%v zsgP|n0QP;`kqI~wOseLR*I|=;k3oK!`=`w`I_)^V<817{*}nUsIH@^@*$i2hCDnaTJmg3qF^>}E2R_$--tPc5 z=n7ZyQ$qj(Ep=m3v5bVGsDJe^>b6pCaLF8u#%(X~y97_o#b@wC*Be92;$720jyr3Z zB>}I~PS6$SDczB6X{jcgaRrf{&zbFT_Ie=z^Ejy+yrS2ThhW!H^mxfP5|souP)JKl zXDTDG7V#o6;kZ`#6og95$M~Y0nvYo%{mZ9}#kg<|0phNZ8@b-*zHGQW;f2e3J~uaa zgk(UDnvX=(d>Z3(Vl3bAXoYS8E{-99)XCR5`2SAooYq@HZ*Lu3r13ACjLD==SSsgq z=b(|4Pn5osAMZT=fIR%=3hJ+w5{Tz^o_|Qk<={UwRF?OlygIOsI+-j z9+goJ;j{nq_WJDpIzaSx{OipW_bRQP^~u$7BAMf4x^yN(?^0e!+l^-rWJz~(qXYDO zaw>5qqLFVcDI&jG=K^=6CTZ;g`M7#_3gG-odM z>3i(n(zk8mR}oIzHIv1C?oyiF?yp_YDzCIXGH^veO{dDU5RJu}GVO$n+@QuI#JHFY zB?!11;aq>6*=RLOKmWSF_aGUag4fiRj&qdZ-8rFT_&WXe9HWW{sN+-;N>j{kx0uGS znOGdgWt76>@o=~~^?fZ7LI&|B`9AEaTvo`8O!+)jnVd2|i%}M*ayx{6uhCP^ELnxheqGEeGbyrq%+^lEkKJFV+6ML!oE9E&)cvIB zqiH(Dq~sfp@La&?WrhVbxmgb*YP)ux}#?kz2o`k8_58m$F%hy{SEjBao$*)9wDr_=q7&QzA zrW8{!t(MF{+!5^vUQsQ~20u2jxIZ>~G)3K4Ui< z7hdgCdXI%6Ls|^7U5Hp!FBt(bDcW~;gt8AK`VZzn2*g)iQNUQ`^>2^wOL)fXyuRO0 z%19hTp|^t=A5~xT`Z|pCj|n-~%fwZVf{r_bc4EsYf9(lJ#!)1Kyf$xH+#}61W))>$ z7fP%fBM$gpN@IMl_nF2BbM6ykanI^%ycg}bl^beaCQ5`fAw_xKQ#x!1AfNLm;>rfJ zkHcR?tma`{cI{$?9J>+KgRnR?Z&dXcZ>JRZ)N_%A`Lqp(qO8{@lFjj zCi{CGFNu3|IwvGV;^Dend~2&Up#V!`JV=D6aF!ngQ-U8QRD7y9 zXNR95f{YB4l%E3P-k^{k-2s}&+DgBN1yhOe1Z`VVev}%=P*1m0+M3tpn#iS+@w!HU zbn6Fv^glnD6kfKx0+0xuaJXJx2K>Aw&$78^eX~7n6DYSsBn%(UjDP|E0gpPy))_!TVy5&@^x{2C#T`1oo>YslF~sYMy#p>~zs{PqVqZ*cLX(-2 zqEqHVLgxGvGvZ54G6CGX$+1C%mfV{h%wS*2W**FdKEB&~+3EpDl*4Q?)WMC0Pl-S; zE^Rq&x40|wF4z9cYWG>I&oNgGR9!b{t;#9Tfm8(?sIKb5LTGZr@*cqW>dc@#j0PCd zOM=O`(5;ZvkkrCpZS5%hyUiSh8W<{Us3cj&?YEXHPupe9p2x7Cab)!EAli$!T{!iw zjBTHCHAot4XNC&htdn!*Dmmg|#Gn@Pk(RevF9)q}sTnOC7Fz5}p|CiAHnmX*1U7uq zK$Zsoh)qdh3Z9fbnyydJivc%gSE}1o-U00$ktA$=p`F*3)u8oBCvu|htnUtvACiup zqtg}h+-P03I|aSpeEQ=e2Js9STsRGFVNLzM*7ZFLVrOX26ragRPFR%oHHrGyY{pe_@ef5LY4%QXxjLzNv%}maDm#-OUgJaMM~ZXwADS`` zJoXgQ=bqSE$(P7qt~k|JWW7Vovyg&-ISduC&`CIqOMwrRksV%qo zvlq_-@@mg;Gwyi%oEN~3q9^x(VzG^@;5rMKBcNZV+%nO|>s7r$KA{Lb{mS^OBx|i(E?n*tD~0$w zcn##r&lL9P)D}y_>Y&TwCX<%A!rU~a4CA}o5SR(32XwM!B1!F=vcJ*{!9(IlD+izG zS`IST>cq5kr0))I@dTLK5Np3{VE*THg+7#|PF??1a$+bUS;iggjA;t4E>@Sd-E*>B z)$#eD)4zYzIJepHK$e^6rNjM zT}fOn@q*9P$+f~sQOcYVk|P=z6H_K0R7wid$~=k+5r4n4_UGtZQ@n)p=NBQ=IV4fJ z%>SiiQvmQ4>4fDkhCZs;j@}7~Vja-#3T82JUHqd2M8MpYm}aFjx!!zJ%wkIcvx8Ct zANKk)gXBNjeqUE5et$nVro|w>*0AAs$oH#?InU?;25n4AwXv|Us~iaa(rDv3+_*5F zYiv!*P`Sw@5dHl>CVYB-{70=UJu+m*W^PaljNLgvg9Ei4N1)}16b2UY-f=|6Ke3G~ zWGD82XV}osHHX5(ReoLyftjfr0PD zxjHM8_vLExm!-2YjF^VQfS9i(^@Sb5E+S1>XTP0*OTpnt#`PCIen<6Oo?5Et2LGqy z-ts_>sSZQtSz-OonSVgWX~eCu;=U)wgM6#2az4Uk2M(8=A!KN1K4nIT!Fbns+;5nd z!i9e$?%}d5$=Kn%yFx`L>`Eey4G<<$Zjpwk`SVvh;-1CkG^5|yDNo9J6|km!+8WYP9;5bBRB!^x>Rvv(+rQ9h z4_$Rv%P~G#PpRoz7%pn=m8J25ue4R6s66qP)j-Aur7P+qGEsd)Ng4M?A+gGS&9-xb zGXRrTaGfUHxe>6+wuS>VLo8lJf*s<}P-^~v{jR-(X` zl^-I=pQRGO>-cTIeYu?3^>dTLl@$@rM%fO08b({=fe&t>m`u zyz4TS24B;9R%wg~qH$o2cNTDstdYf_TPSN#%W0=w#%PI*ll|O7TU@Kh${f}RiYPDC+v0|`Q=K}+)oCSJrzSSz6>ohkoizsh%fL+vK_garpzf<}~RXC?=m%fbyiXLHWiT-NL%L7GFO zhES+5FB8`Y@KuQBU;^}{63XbKH}sE(iK(WS`9`%EE%1O@7Gej#@=j+Bof{Uxna?FJ zw)&~Qm9c}?WiSJ!!Ae<{rzup3jc4<}){^xN^o9*KDF>7T8=mseNv$f5Ny`uyvX)KKS z9LV~d(1ygA=v#qHq#sK5Hrf&-#vydyQpn$sCHiZa%Y90FS-l6Y4PVu(&<1K0n)F?x zmC#zxwX4`*@}{y+T2mF zb#6|#WaFy9uc6_RcIai22uO^$yj!zXK}50r8|W)bNqx{1B-rf_VR1{PQQ;PxcEpnx&i8cbdDM)@1o_RH**_ zJL+@A?!-J+L}2N*uy@YWu<-7`wSY9%yngx{yET;u)C&M}#ZQ&>aC*2biOo_FUwy-_ z--rRY@;!z44;n=3EBSHRBknoU8OuFto@cO^<@795Ld1VfDJsLq2mEF|F9a1vlQF;z z33y7)bK35$+@4xa&od>2zH^@XFKWi}FZ_`U;-g_J+qFRVub|o>59PG8_{T3mqKODQ zmvqIG#*)J)0;w!HUFj_`{<8Y!6KHe{@9A~N-txb&@*pxVgLs^43K7Xazc&Q~(&Y$c zwBXa-PpAoHOJ`m=D(16G^eGYE|Ib-A3Co|H1lAXzq0HD4-QTWdljLc++V;P`aQ|zk z4b~U?e|_0Xxbj1!fEbvW~w9eKj0`- z&XT(-)Y(0>YSXVP9*4fbMGPW1K2{BQpSz%?n10=5gBlLm=qg`gjv?5q|ndOf3}E z30BZBF`h(cy7TiU_Qupx)^}U)4$Rb%!jNEn4$NU{nUNR}{|y7xx`@SfaxL>m6ndq3tAeh zAzruN2?CvmubiwPdX|et75(u);8W)d)|GtQLi=i^~%vi z0$L1!fx;LhCc(s=y86h;aBJD=eW*<9OC zbUHOY3H>vGqWt|9C;l6jhe$JqjjA%lzeje1pll&OFsl_#qjN5jy|FSgZ~3|J%cEvk zJM7j`40rUyg|Y+!ehcO(9xB4e8+Z4(>~EIvsS|7?F=L2q zEwBJ19zzkj*?W?ll%&RHfy2>kl{vB2Vy|zTL&R$Gr_p*@{_^Sy-(vD*8RoF$CcKyv zqFRaU)$=$>)8hm`W$32VbH3Z^?MLJw9yQp&j)o2FL|j3iM;DF)H-d3mTH5l{`7Y0! zco<+Lz20maMJ%f~o&@gcIx4TI+>6@WIQIfVp6(kxZdxzu&#Smh5As`zOh7C5E;?SG zAK^fTagMhp@~{C~NEVv_!VmG-84SaVHeo)dluK7#FG2W%^8;39nDAeHcKxT?2xF#^ z=xBuYct6B1_cNiUuh@cAgimO(-@}{ygr8O}aj%{>dCi+;@3;LPJ+N)HF#e#zg_(nc z42pQ;`wDsf?YN!H!wP7#e26)w&lq*vN4tHV5`j<8UY4s>9bfLZLQN(zoK5~V9tuL_ zGVVUSheq?5Fv5(}5&oeB!vEG%aOS4>dC_XK-L>hcLm@}-R$yC8sRTwz8&77?hRyyXB052 zQKI7qyI69`c%pMUi|?1%X%rhSr!~PyZ0W^P_wAZ>m9eIX2!CkUo`B!0w^D~Yv(TVF z@mnJO^9Ykv29W^!Eg#NkLpL(ZrncF1vLoclaLLy40}5HK*PY#yj(9&|1Rt;h8&FWGmUD%fr8TKR6G4T#JA-@g=`fx9}Q@`mHSbhs)bX1Grz zGuU==2_eC(rskCOnxPV;$k6i^k?_4Idj-pC-@*IK)pVI1M7F71V!wx{6g6UDyUZkH zF$&5(<#*WneX`l{E16N(N-hymUJ7=pL`(d&>@D^-NNbu+d2h$c+}Wq#1Eh#No=!h@DRpIWqfoWKL0I{?%Bz@SNSO zDwpf7vHwve=y(AEx-wArx+OBi1wmKHbrm+@*mnJ4AOy6E#lG6re9KVG4 z^MMG4t7qA6`cr1H^H}T`80C)?LjlGmb}*86)6Y|8o5E?GA_1@4QPzZ#hu0^$Y_p_8g3;(R)_L>M1r+i zJvRnj(t@5B;+tlWbMRk`dMu~Tm*%ituCfqVfttO(T9P)C%Z;ypm)ABkAf-o)ZagFuYi2bzP~cw7q#`J-z_1Vp6LvlNerNe=fp6mn zmEAs!xXGtxgdnQ54RoqZi$B6jI(j5ZQ z(jnapNDG2=H`3CQ(mfzu(%m2fgEUAfh~CY6@BjUD`2deTv(KD;V(+!qFP1pdSQOQE z!7FS&b)74MjhWM~yDvEWoqul+Wxti_oBb>NDbm}Q!Ta~_ed6@bEXOZ(7?wldamwHA zP2|=u>BLw{V@Qf$nvrJl8Epmu4yx082`+C9Ol~>S*9!Qmj42! z?H)66I&w^56t>QQIQA9v{}@$ad_R}MXLTUJ&NmX2`bTlA3c6r?H)dA6dh9L05kgt9 zp@WFq0RV}>p>N(xyjv%mQQs3ei;%w37}Nys!koH+zA;RTY*Fto&jWP{JNW@eVC=hLAG8#zpzTnz)N;-ZB76lRui#RjOf5_uz@K4dl*>s`~n#8ao|c z2H*cY@t9N@5x-Hc@jrDWMpIhgp<&H^gsI?@KoRW}yVL=4GNg+xz#y3UMBLjlR!LOd z58HkjrUBtMYp{ufoexrZ#cOB!Cg+;8&19~G^{bWyvWrjF|-=_Yc{bF{>(m_HWTsm}SY^1r*C3mw5ar zd*&~x|8Qibz4K^@u8m-#^L?}8w@TPYAI=MPAL9it1l+2Cte_sT`0sUAmhq!%N{GSZ zn$PF3i!NPG>%LgBo%YE9>2_5Z`=NAqmGbwIz5w78u@FA$PkSJ?rdi@RtiR4vL_g5C ziudZG{q)EB=P_PfHy+2Ft#H8f`NtZw7mh)$#;M=j^)iqpDWD%jKy>by` zLC)B9%e~D)J%%I2^F(YE#A0U0Oozhd1tYyK(dhUjRa$CjN@dU8ca)4Q3lKu*cX;UI z{KVziwm-IdLXKO9FGpCyqV1UoLb&OZijHIX`0?bOCmP|ZK_)UI;wVaxrL(g}tMBY# zF;dxG_g0tQU7U{Ze=-_eeEhtdHKJX`MC($s?R#@ESmX<@tWoN+Xf!wcVWDDG?`2U@ zSzYI@Q(2~yG&uLE7_lPF8QjcWZip%9q~4Fr`1$N{vhYxjh{sbR@A|LwR`ub9as|7B z7-g(^KD{=EmWstYxX3yI{h~mQJiq?PPmd1bB&hDxVH#k7z6SmL7KT`nI>}7Urrv0k z7VP|+b(!(*ztg5P)Ku4Tw|o(*9y4u<{194P#PmYri<++aJY$M2EX zv4iE7Au{9Nyo{(H5D*y2=D|545KdX8A3|r2m`3q+d0(t(s ze<|XUA-%cklF&HHMV;!fK~nDWjjCZM5~@yhyFB@F=TOy$SCT^%$UeLqNkva~i?j+u-%Y9d+GHuKEi2AI7jvaiz^qa2(%2IvL`Lf;T z-Yr=Jeox|Zm|ycLM29kNCfw{_3$;my!tI8b@(c3tFK?Mq6gO6xj1XPy#}U|Rj*_>S zBSP7}B|ktP4+Gda>#IEKTy^;>)(k^xn+Z-YcXAPti=?UhQjJU@_8T|i);pK#?3@v~ zzSd8`bjbH|TCw`G6U*X3TMwO^+sK>cU#mkUO}`0l@^~~G>PG#2F-IabM-kMtS&Jd% zs?U;^8FP>0v1XvtNK*p`5LO_3gl2~ILB<+TZFskg{{&l!w(Z<9|B+{3fn5IU#<2c_ z7x>hAFdPD3X?SPQD0(D&O3rVIfm(}{!bbF6dI_GpL#zJbBiqgLx2|*J@4pFmdDyv! z4t0(CW3=m@vDI8oZNq4~HC_>1#NFg2`=dp^-cbxUU7G;v{0d^=TruvCJbCPeVfDf<2(8jLd4X!|F zRFde&b?0YCPPtJ3bCo;<;5sg&5sBHQZU;+s1c!veFDGc~51U?FkG#LvdO?miKY?gy z_4^DL4>Z4jA@T;6+Oh7Q9eaytDQ+#c6=NyRGyUo0PS|$l6zxHKvaZskbVE zDerB0_Pfo{h;`3J6XmQfslg9s{YOCS@IB%Q?oQwu6X95PhK!DO%VwazIqIv?xG8wv>+a^$s|bBIYsCZ=j1;Cq6J>7u)yj_oS3K5smKrZysomqL zIyUNZS9c?ox2D&MWBSuKeaH0a7dy1x5p+u@oN0#!<-|q8tu#5J>MmO?ycA#MLgDF=n5C^BqDYy!I2$EF_$Uf? zUPlWEB~b{sX%55|?ds+RTtE;OrhaEZIeYxekl@ofOwV67M(KO4Y(gAQ7UIIr~kC$CVtP-tta$8~y6Vl|C9cZufyQG*E9&($vC5&m zGY0LVRCb5V=H~O5sHfjr=a2!;@uLag^0Yu>0~NzU*i-y4(Z!V~=%{L)I}zScNUV3WVUeHk%f!#`D0N$h?4%=h=9tKC5B;xXH03 z5@ZkO`G$|;+X7a}28jkq4yO1AgSZO*_+-5;Xs_PVuFO$%V+DYW0=oZ~&!`h^2j!9tNpQWhR&6G@3z6 z8umYB(1{qLq~KT_{#YtR1QV^|8&sJ{eeyBZc%S(b{`o~V6&aJWe0ILE>|jet1|8{g zDCA6vNfYT238Y!z{I_no|0sX#ZiYBX+dD=XsbEeR?M%#; zx7x6&0*doPH(IJ2LRUAa=1`5JIh8lqboy!kpOtn|ev-nCRrK2Kg=S{TkXY4@eo`_l z_z@!RMa0x2aB4wJ-3dfBrp)qE1Q3ki3zlPNV$4tEIY(2ZY|m+tL&tcqTIJ$>wf*qm z@2PVoDZgUFItg7j9BVokNV(3Nt)0~fAn3?~r%Oa|L_Z=wWFHS*xh}elz)<9!8X@ympw6|`CSWQvL>JiS1t4n$LllMNCm_xYL3 zZ>mfXNrWO?O-e>)|1m#Um}ZwQ8LIFbU;fdrV7Vc*)3`x91*~H01{pH$?G!jNj<}h0t zcPwe4?|*$%caLX;70&)MNV$k=&&f?Q1ac&J?$~_DjSba=YOv6c& z!w^A#H{Z^x73k6RO~kQtsh<95t?so)i0%wt z%PQ0@Kyz$OHD4lxg-{3%$}e?^0`G3Z7N9~5B-tL6H7(FVVasm^_D2L?$w3Hkhd8iyjE<%^0h zs*t0bTCa%IK{a-_RA;#?RLaGMLeGFS%OWHcv57sEVDY9mOUN}(*Y<8V6r&+i@_koR zOGHWi4Qfa2O1~yZB`r#1tHn=-`CVZXBUT=OGP@G6_>W&MXvx4S;z2ffiff&B>VpA4*uIL<{ZtEnW5v`s;9}B<9KZo^duL36i2&01hX{1l6ZE z2mx%KE#cWhc`PdLtN_QA4-ELYC_d1X&`2EieF=-LK;_!NSbR)e-R27;CZg<*a><-I zm1mxsqqNAiRsjTUL?qE-7wBcuA?VAgfffTw3fA?o1B?R?YHs~RaF2}%y00OqtmU(y zgbkkQS^f`k0@&2HV#TgCe>BgYDVhX+<7x>-e5YM}u50!cxHXx4i#WKGh@G_Tfh}8K zpw7oSZagLMx&wY5jRzNHdJ;cvidR%-2)Zv8Ew+}D;OS%^bV~Yzi2_59H?WR-*4jLr z?F@}&4-1=Z474*`inhxTTSV$x1s*rprUpBXi(i@qbFiPyY9C4m9qAT3GrcVj$^tETgGDwsSsn0P<1OU zxo`JliuhgHrJlujn$LQP4%v zCvkr-JKY2rRa|p1B+~N_!=D4-ve;a)(`xY{%5Az(zTUhC#VF~i$-i@*&kl4V)DOp6 z{9>|@I$dofbV_+uTcXeFIyn9ef}k0yQlXv5-cvj88|rFsTIQQvT|g%Z&L`*|Q-F}x zWQ4&U_dRx?zND!ppApK&&v|*sz~D9rg z$K*aa?(&Te^P_xj+akI$s;F9wUm4cI(Vo?GUK<_}nhLlN`x*2SxRDDte{1!91K(906O6YLyGg8F zj)Z~Y*mXl0Gp=&4mP}D_ddMGS%~COVxexCsO;wGnFws*}m_DE+nr^b+`jSFwFRVP? zf>*>odf=(s+{>a6q=C5T=;*@P0&G8-bZ*7x>gdmzPDM{z84s7vu-g;)KX?5`WPk7# zJh0ZWWcO`|RvHabVN`dh6|VjZ7R}XSvi|tNx9`bVTbpW->F{3<;t1fv6+G1oE5Mql zOVNVo7+$O^>U|PxrIo(Y7sqvBLw6LbKc@1RF6fpT@2v_J2LQ$7=+p!Gh4(xr2XN<Q9D%eX^ZW#`{B5Bk!DIm&8c% z3%&i-ua9z9_(TJpoSDLa&z;%9>swQTNM;mbgtUhu8wH0p)7j02KR2Ica6#gR=R?Iw zT8NM4rMY6p9ldOLzrumd<2REq3N&Tx+JH(O2<2bR&+55OlnT)qiNQ)>-xo!B^ypD~ za7rSojj|wrZ*4D2BQkgAWwIKNtT+bqKYU@Yqm22rUKm_1%6tPU5Ezdw!PY1jc20jD zt~6Dyy}K9}>_}PAyCHLQ7AHr0jD^LOVr8P;#^aRD%Dc|vLjAcgkBupV;^)n?IS;8j zLJYhM9VWs)7zhK{%X&amdT@Dr(N$b52ciyEe%lFRuj+@rnII@Qr8*Wn#DXyPZh*`z z6>PzS70|w;m(SLyY^53_g)0W)z)_F`=gKtoZsWC&Y}QC)XU$YeEC*wgDEMt4`)B|= zYGn-ir<$>&v_{O>lcYZK9?h+H;1u~nd5sM~N~fCcd5Y7H0xnp6YVVcl_4V{@Iz88O zYWCPrpt3>wXKxV&!0OJ2k4bU+WU!Ur|gb$82u+}`CCiwU!AbCSGPp}w$Ts149QrAqsf z+ydFk4=JOnX{2Q--*@mMFZ9&B|wk%4;l#;-NGjj=dQ&g&5%&!1qfK$NHz8Z=Nu;cQEe_ z;~UH3V#v;8l!1YPdF-5<(6j!S@Hio-Qki+v64}vDr=(nlR?lhdbhg#cv0T0(K~YYBC)M%m-8rFmm*gB2 z+gmXbFD6E(e*a-4pRWnok__piT!F2`I|>Z%nY6!EUKO+vbN~Dmh#FJ8j#o;=Uw^%% zMRwpbzs(+Dc4M2u8L^=o~2?OZ}iV2TqOgrx6V4r-H# zCy|>@UzZ7xfozs6tPNu261EFZ4)S_?Y1w>iV^j$m*G^`eeA*kMOsNrI>3g&8eVlL# zvXtsm;`=qaZkY&ZgDmr2O)^71WKIt0s->z@IM$z*cpRG)~Z zx!u{W0Dn$jZv9%iD|pU(JUEL76J6pQ3+gA6=U`n?{<|h24bmMwM-^2;?6y zlQoTh=2~|(VX+22mySuqB8QG4Nc@ZW&w0Z8s)lfPs}~hCBL-;0wc(98YM&%bD7^di zP`WULv02u6MLtt6Xf2XYU{6ZiRaF;cJBA68-&NLhIg}WQy;)}}P#Tz+yxA#aoycj` zml0dCOKMXoag)?sY+k49Znp{`r1hFr6EYaj%|3()?*RkD&O~9%uc@`$X(N0QQ86Hs%3T#Qdpxo)yJ{`EvWxTpzgMBs&4bzlj z*^i}yc}yU3+lR~cRFp6XX-x|?lclup_UHXcZ>kI$oJNO?T-unm-~&)x(fR%;qT|62 zyeV19M?L{}*G(+AFkj7c$8@n8z0l@ae3ZEpKqToBkF!PlORq957u3tG^S+NM3oCVY zEE|(n&?&?7g+ZrZQ^2P=Br@mnK8b`?66TEiHHXma|Yr9EEfk@F?oh z6Jm4-Y9CdJ4tfIFN<`v(St??YtS|R&rztc{4#q2)ODqC#6dpiFYEpDy-XoVrDBbv&9Yu|Vr9nq zZw2bT3jrV~RfvaPNcCVsJgoxy#c(M2`c=LIKh-43f4?WM3r1zxaq;GF2TMLFVj%}| z+WDBT^<$)Daz6V@n%coMt>rN2$cjpxO%N!_vu)DhWiVA|(NG@2^D>D&zQR@v_4g;+ zaM|L}U2jTx27ac1fkVk>9=ng?rwPBp$Tb;Px+Om3rpaNIxu(edN#w<RR7?AuNTBormrDpsaecI{GqBDI_hk}X|*`k2Vw0jBft$Q8`Ylobh(Xu+uavs_-)JpfbC9R z!n8`@Nn?S~#l2}3dH1W<)5|@>fW=wvyK$oi4-d5)W}DpcIA=dgn_wJ`=)#NeLO$<%lL1P><1{AOeB$CUAel3;HN-w#xui0GOX5;9u zM44O|lz)wP(C-O-7{r<-$_{`aj`0OOA_{G^n4V(eAZPy)p3Dw$Ev*@aY2%0VX!hcL zX4{T|9~r3p^&$n=Z<9uOFphF_+TH5VC)@#Vk18h`cmX(84rx;0d=`Yg0+E&uTA~be zrI#Xx8V{Hbx-mGFWZavt@zfvIeBE%dTJFA}E{i$vFjTu2FXeL|!u;~3`NLoA3zj5) zh;bWbK;c-&LWL!LB5^3qQ`!laquQn{$i11)v~W##tM>cI0`I3Ks7}u`UKQ3~L@&L= zc_OjK;`9A`>^-3o`KKghb@mp5Ap3?kc(+c7hu+%4qZJfY`6f&c0t;t+OH26U*)Ivu z#V(1f_e}1JghTNY3K{>PJ28*z&RNOOXn(e;0Ig$&uNNFpHd>%V!h!u!wd)1ZEMWf? zq7{2r%dIusgZE~wY~uV&Sd``C@4@Iqlk+C+PlSg`)c8_*YI!5-aDmOw-=!?w#6W_l z4n$GPXH?5|mJxAl-G@1vPz^cL4m(_CY;aM>~l=e z#aKq8k&h)bPa+ttFIM}diOfifowR&8n6Z#y2;cBTdad%ufYtfzHA*x8+?OT8LK!Cx zVe>UE;E1Qva&Uyv)E7lGkn}VfjgiioDHh2Y%RxlUfcInBC22K9h-Q&J!>RE196Pnd z`l9B#cv6S+W1QcM)5!!h`Pm2GF3QI4_(<(HzoUIv3CC8@)L5;}hn9vw{Vi5iM1MW~ zDpz0f_0O;EZV2X3&-j3LrX;h#b=0!UIx*TfB1O_*~EH- zVuCO)2c&0>ZM}U;WRdNOi9E1Tcr8)De#ytGgG}guI-NyOV0V7r!GDTZso^C#ncVyKQAm-0g+(ed_6T7fbz z5xRGbKDF+^n4w?gBU7n#a!}Gm^u6RhcJ3wy^m0Nv&v|e>JUmhCpkDiv3Bb&&*dw$y zML*47jh^y8qr?{cQ!F8Wknr-;VXs)^WU8-iFds+ZqN)G5-q5!64u-`)Moh``X(;p; z!zW=$7+bOSrKLKh1Cc#nS|(9B5}e_aXfo@J2p(IpH)2jiqXol0+}@6Q`Q0P}=O1>? z*p$rKXeskPRk{<8hlevqpL&4VouSTw-N6*ZV%x%`&Yt1e;~*R}j@ClosSzKW=WdQ= zZX2|fX$gclsV*lrbP<@tm;%W%(4$nQJ!g380hBaYw!v?%(X#H9jYDraq(tk?9re_F z36^-|do~bku41JL$0!rstDxx1#EHrdVPe4NP_F$@Zh12x8FW*&kJ1LN`|x67W&Q}mrFfW_o(b|o&qDEtw8x&t_p90PMEIN$nhy2!rN5?i zn)pZTC9Rfl*)JP^^?I=+7@_uK{X)JhYfnf2v{?QhGE85{}t(I>eDH}mKarGG3)O+cE#ul&S(9y zAs8e1(jnV3yTey0*ji=WhZoLU1#z;}s?_Yc7|sD0dm@`675*!%EwIg0L$j4r|6P?k zF)Xc2A$WK}L)}Z}-Xl6hR%{}VZJsiZ@d8@5w5s8Rr!bb*Q6D{%c|>A84TEulXTP{T zR__y5stW*K3^_$q0`4LsG0_ifrPRjP8XRM8~Pv%Su4gy4%6t(;OU|(g&Nq>uP6@PXt zWO){Mk0)j^xRgax8bxfJ?b`sA;neO3Y`Kuk>Ybzho?%N}c&xK+98v2kiXhwLpSzBu z7f@t!D@6CLST5sr-aUB!vBkPAI%o(UzF$8agvmBG*#+Ctbc+{ZY1>8B;&=d-yy@F*KQgi-wOpALNn6DPMX~dfxVjz%sH*ab z_S6{FNcMQH7M#GX*z$9jPB;!@O-y11V27S?!n!S%+p}=YF3hYz8=m| z6M>3aL9##obmGd84we6L*LSffg=DqdaQp=Y){B47TYM22)^7)Zz~bmxMyz!CH6x|P z&`WIQu>>YkDC5s6OYRu0xQkW`a;x{tY=i?+Ij$O)zu*bq?m#HVxe%yvGr4<5M{sf1 zzmI)vR#72FLN<4pGi1X#Pnze4duort%AeywHN&#dl^!RtA}@%_)TmfAKWkepoPFkj{<|JBGWg2T_wh zM%ZQAO|W#Y-TBU-m&ud9ezQk4S8rpp7woY<28(D(+q`)7vuX+g7_~ zk;1Zkf*-Y!u&6${(5Ip4S;8x_5qrjzp)Ty#fCwd~J6SVG3|25DZOI_2oqwp@+!QK(5x9Xdaw$49>y z>@pDDEmc=?p+kZzY%9QJ2U_1=pRGytuWE8!T$4^VR$HvvNE1;}ETUZOD6o9fPV|~> z%s=?}g#Z%b%joNvrL(A=nn9#ZA=Jj53iX$40?MHw0p}QKGXW7ox)lOF>d)X9zzXKc z5HcMRmMw6W@vKOFhvud(yKU2@yM682HIF!c(j4WOIhWOMo1U7=)}HVDx@3dn z+H|G)VuW}&oyuTJtKe(#s=kMJf14nPIpH&X53uM(PJeDdy8H z-h=^~7MFDg$3MxK>g*H`r#63*8~ePU4VY)M6EnB(<@u*VBZR9*VX|nF6)mMlPdXgt zc7Ol=t$AE}%_)o4Yqb%-lWXzu>Jma9G>M{|wX`G&>Y{?$R-x@5JxqWB`h=QqAL`&l z!1(jUr9ZnkpQ>&99|hOS40J0ppSD&dx8Ftm!!np1uJQq}RXLvOI?toqa+QtXUYh%C zO+-qCEvWCu2HG}7P%z@BUz+IXSTzZUlCTe8Au~LBsGIJuwKc3khiFDy8TkS@d=;%2 z3a8>`X0+%Z9e|{`It;ClhhE~c$6^D9t`>hFHtRPfeWQKqO%V);^Q)05V8ffp!iLbf>J=I;Do9fDDtwo6WBBjJTAJ9@}-3c4Tg3p!7H6vK7k${foCm^wf z8Smmr{K_}~sS!;J#9&22tid;t$#D;*8<1b2!kPs7_&B8(VMmY}1T%5d7tJTH={TqfE-7eI-i5a^V6%Ub^{$@Aez8w$JdH zK|m^~hDdM|lkS5CA=fw#SY1GywffqpX!94aGT}^1OLGStJNd5-D}7Z25Psv>3DKDr zo83`A4spjI$~7x(F`u)19Mqz}?OK-vQyO(YCX-ynnHB}q*_kY*8MH@n(A*Rr$510^ z7VfXQo)ZWM{%OTQWkklhcD7!7ejfGnJ-8vhUhj^m@Z9Eh85Lp^0qOmh53BPF6$qVg z#0U&(xZ3IOok};d+$HSb?zGBetrblMt_u9QS>BZwK%f^W!lrmi)}-lFvxV6DV4y2a znrM)sTk$WNu}_j_N?jjPDsJ25+>(voD$gUHNvW)`&ux{oc8?2fRvr8-R&zmxV`lpn zr8Bo9i&ko#LChBefexkEezsIlvW@R#Yp=Ufv|{I&B$?M9V|5|hwToQ`%W=L!SJkh2 z{qk{eZKjZeKe@2hrtWK#-TB(aTy*?yoqEuW!vKgU9>8<~O?A|ufh|Yt4c-hU?vBWQ zwTuanw|6?}twv*_Sn#`=yU!GZ&et~68kIpf{?gLHs<|(84S}8YSlrdK|8B;-FeW+B zN3kS`{ZwjvQQC=#4G8`#A9<9;CqiVOC}(eq#h1&5V`H8S`mt^jXk@pX;w$c<6Nl3M z?tLiZTD~ZnH9+qNys`TYosh&CKC^ z131Rldmifff+kGG@BjU6zGOWRC|Q%DJ7VI>Ujwys#|s5isrL^^((3i?)nRp`+BP%p zz>?^@qPb*=rXm3<qNMl82BLp5s$PjS*4O z*&SC_*fYfhEJ@9lS*%dN<`44KMCm7SwK$^p_dX0#|}h*qnnjq0A+^PzT%`AeamLqoW#g= z!%Xjf7N&~z{q>HPt;~2d2}{rkCa;!wJcW9mqO!wG^Ua3R#$2jiMHCXrVy%6RNyoy% zGD~jVZSGvZ(mx_iM0I8NbCjdo2NTuKneq|U$kC=nQ_j8!yv2wZN8&zlUWYNGzJX^o z7LXv;0d10C zMaU)=ZecN(o)+2~&@8XwsQ9THq5%lYQoDMaB<3=x6PG1EB#!UAaq7`u>$!{;ZHuRi z8A6%UQ-*0DKdx%1dahvo`HX)@#c>gTPpn{z)c*<0HCOPE2#@7xn+JNdU7?;ZC??OY zgDsZ`v#@HD>F_#ECgIf6*X|ikVsw^xB&Y*w+occB1TnApS824wQWj8r&lH{zD()#3 zpg(wPy^YhmcZjK(3QNgjA;}gjNRK7@+z2YarkTw(m107auMxn5oqCkbVq0muZ1&-| za2wR_s$QeC-)1BvQ!Z?nN-F(1XdTvEXQ>+6n>3MHtf;gSY6J)#rVn$*B5sOngygG# z1>EQ`zrLkDsMF!**RNZ-U)X79W%ho5)J%bC!uz_Hw@f_eb@LL0V$qeq)PpXJ1qxE& z8t#H7S?ORkdlCEPhd5EJRNiu!qAgXPdA_IJM}n>I3iV{PE@E@$+XvSE6i*~KI{|Bj z)RALYKI}n5NJSZDz&!C5G@|JEa!&WT4DXQAR-IYC8xKwA=QXOXGd~xKl{M9Kht#Hf zP04pavervW==lOqe4HhXw5zHsHfv|xJjboB3Y~Ojplq~O{*0YAJBA}Eo z@|3(jq80bE+ZA{HSlOJ84hoj`-P1K6WRaRgFgQGEcR=hGPE1O=vNo|aG~Y9x-4JD$6458%bf61wN z>;>cT#4i)|roX)#*(Z?zlKE9u^Cp8+{O;coPo1d&-a~v83luudLP1IJ9fj5;tv-lc zuCFBnW=xJ612)xj3CF{9BNt^=h>?ElLBPGVRA!50t3#y(y_E4U&>Hm!3JmKH_wQz2 zavNj|qOtg1RLRcpQ{3KcPVlS z6dO4w-S6ta8t+TLP4odtwupn5PP@`!nVAKj5&}lpPRi=( zl$t5j?83v6{=^37Iu!Ni5WhQWNVo9bpBZpTq^`!;*G?lwmfzw7aVNKB!6|WY zEP<4koXlP~ef;ZskE9}+Qe6H$k~C4?Jq!LT;E1rg%?$`lBR*Bq#t+@ysoF_^F9d$; z4{_q)6-e0%OpxLBD?=hO%F;v<8M#rJlS**U|2PBI~0u+af_-QNq z*CasS*bN&gPWN-;N){q)AC&5l*P7HuD~tlskKIJfwF-d-8n}E?1Z8B%|HLd0I!giz zAZ#dLF8SckGT0hKsV*-K!3X~5b989nWsN{;-_ZJR-0;J~xSaoak>kHX^bdp3rmoWe z-$A0K1Rr)bbn#BT{{}&j!65peFD*L%_sccV>cL{-E%;-<>3;`7z#v@Yx1A;bb0*-w z6LG-BZIFIdqx;_=87VLbl7GlW@-PE%g27Js8i-sRKfmh#1_6Q?$bFGaT+9EPl~o9s zy3^FGc5fPe9jk(C8>(ScPk#yWc1q8w}pSOw+&oUsb<**UvmSq0@;1q7^I zTzC*DD*Zqer!msm8R-CqAiyf900??YInck8mE-9v+JG3`{C^svPALcx zu;LR!h>CH;MIZ=n0WkpqZiI+1f?E_~EeNp{<+I@v1XRO!Dq@I5z=bsg6t(&IZP7R- zw2Gi7j8y=tu4!WLq3`W#rSFZ=7vWb`gbHY46j8Fy5Kj*ejGBU;=8MU=9(mV=cLS_7%>jW9ORhFPl%BXK&;O7;#$pkG-Rh_bzasx?MbSIka8*T9J1 zQ^?p3Wvqxa)^n9t0VEVsupNF4b={P$<&3acM?*tJLs1=LR}r+ch=3|a(M}dT6}8br zqxsyNyb)eHs`lW9BEk^ks_6Q82O7*Kx4(#KJ`!)u8GyH7rUE z%+OoJ!&OgEMBh+Z!yW5|({lx!0@cRafyUl0S{`EH7bybccQeoz!(nt0FnxP@6BQ2w zTN@)06MZ>tB`sAvP4xuDpw0+B4~UhQHn_%VdSK=3wfP(sptk%<0uU{AJFF)HrmHUI zB&vaiD?zPQ40P@7Au6t7`nqn8+6s=|vg$Vc#%Lq(IYB!)J9#5G9~$sAl+OmOZ-_!@ zAP^cT0}(lEEdytL0V9YJzoM(7D$3AG%UeuEQ%_ga-Ah=iE%L`Vm%;0C_sfl^mO$jf;N!L0OEbwr(!Ci-xc zfjZJo)m~8#>m~;C09>GGW3B3@tB=%2fO9=9SBwC^AvjZo8LJ9ogw#wl1r>!25gxXB zvT9l|XBCvIrVY+P%L`^LEDV)X!`R{URTTM92sc?>eOaustc?Q{XDDl+1GBPqbXW9% z0clnQf&fL!;zR^>Tr`!ywUwfxGX$-Mc0{>|sJVOVXgVPHg*;rn3{Y}ns)kNN3VfdW zB90h!4L4(mqluM*5TAy=rn0Ar1F;ZxO7wsSDDk#*Ix)0T(p!TA(b zM4cf<3Qqdq69S%4L%4~tqY4INCy%kRHc>Qi@Zfh<6ZCd6QH3fx8OmD;IIFqH85!FN zqP*aI-bRATFg;Hzth}MUFdW4vAnT=KtAs(rTm+l4|Opl4QxgAR1CF&wo&v%>*+eEX`(S2 zLj2D5C_ZmDE3^zWnm$2YnYH0AD@G|iW&r}ET(NErlbgzyQjP|P-0N57QU^#Gg1tq zr|K#u3YY)~(KE5qLaDnLWAHL(W2`Q(Vzg>V0bGu z!Vu{KI0)*1a}YK5&{sr2J+%>zVBMj5P^_+}wv&>xj=rprx|$f)Ths`HHqaAN#Y+a( zQ_WMs%?irrDyr(ur)ldTCI(f~^aSk$Og#1MT=)zy!Wa{4I8;{=;_R&iK?w3`sf#M> zdm^AH0e)qSs+*h!pQani1uKXY#eohnF2=T6Fe@uvgq$nr#nIjx;w`F-k>^M0ARMr8 zoIF&}Ti9L`rwAU3D2V85fL|{!K|v)K1#bkOtc{3{kUqrKOl-AR8|y{MC)pP}Bs1)3%1IVv!!U-qs!n zc}Hty0XvMYhAIRB)l@+0JL%)(b=+)m5G>lo6UT=U^Z>@p-9Zdxgb>zqaI#0}@GB^~ zfR4Se9#+Ege4_kL7!ffIc|(31Srub>tfPUVn+IG#*I7->0VjY}wRI9U(Gk-W@Unus z$lJ?e6|o}1UhbehA5_E8+g?mVK-on_0OMtArR^+&bV4ZrC8%iRq3qx-43+id({shz zSbNwBBcLj_n#OK6jtB*7ZDYJ<7jY0aR@U}J8KT_ZWjg$mA67}&XGZf?}**%L!m$5-l4;(7~A)#A8dnI`Y-G2I#>DnUdf-NdNgcB>CRsv+6ZRD5j}Y+$ev<$!52f)YOgFPcPDmGPT5U zUnwAaemW_p8j{yV=2G=P`tBdNYm!HfOG(qw6J6q6?XwI}0bj8>*j~c4a94z$Whf(Q zTpTF1`FNkC>%A)+R%-invL&7uR={Ik#d30d;2gD+ySJNk$Ec8Nq#B14P8V@ba~LYu z5Xa6kiD4#PdKWO2m?`xSjj%)_^6qSnX!dkp-QFTg=V$CB7lX`i{vo7{0GYOB^?h}} zr6&q}JeLU0eJlOM&m0(diw`rYeC2R*G#>O6DEw*d8MdQZ2fhyXS!S?S(ss`GWhRO5vvC74_<@Kqm8)kyFTXO z`{-#X%0^7ZN5rm~5?L|o-4edFHtg2^Rr|WA%Znd*Mq1drcb7)0jh3qxcq*rp&@9Nd zl&*Z3AgtE=-O*c#s$t*Y7V`Lc%7B8`8 zu-uUo&~w8x?VxS0J10vkT}t;Ql;lcyho8e>SyS!f!@ZgGu41?nhj~?*kn^aS)X}D1 zM8lE$%)v^1ykUV!)3>KLG~)aYwqp;LtF>&~QaC7X2n#jzl_IsoJQfo+7y8=iv~qQ` z71a%v5p)Us%PYIYuZvihQ?xDBQcR=Lv%1Hl02c+_ zyJ}pC$yu4aVx|1{UrQhFexB5+ za2mOdCNPLNwD8}vDP_#ddjxZKXXM`zM7Gh{kZ@%<)o%5^7D9E&U*k3rn*W|CXq!Cb zTrb%??*WhFHG5BG^Hjq+4G!@MuL6wsDt}x}ztF5QBY#=UHu>maCwU35*9{vIy9_KN zAcjD@*Xl>oR^f9;xRu(Sq#4toYY{mnvbRe8_tvLu{lL4ee(2%I+uQ*^KRs+c8m@Fx znp-P#7!YVaADH0oTz^#V^^DiXdpZ%BA*3aFkvn)gXQyZXGo>_EJ>N-9$1>pPT~puw z!^TCW_Asf2^Zz6sOf*D@L{KtF^bc2j6L?&5UsuPx3JZRj*v1sXs1qG`LryvI<1HZc z%WkrM+)n9}{`vt+x0rz#$a1VUv8N~Sem10`On6f=@j%ku;xX1!4P|t9B|MTn>39*3V8hBTo zpAWm`yB|z(J>Fko4MeB9kvN24>)reIGvMGCb)ZxAfu)jy;yP2H%nRat-dZ;Ff?BCo zb%(5uAfk~;WX!j;)GtdlR=ygSZ}P4gHq&z7qt+$jRcC>z$VS;%z=`Cy?)sx`(^5@R z#7K!v*j}kgL}-t-JT;G*9YeAp@|ke~_jjhkDk##mbD7;cnNG!gu~2&6BvbiPQ<`M8 zae>_TW%mo0mIM&EGwWIEUK`VpLcsX1jSB?jSI{ENc~cts3SEx*A42dPn1AoFYu6E~ z?|R=95%-jdXLS@-Fr{fCLKV8frjG000|3OzW-sv5%w*E7CkyJL?Wm|yn_mbies(59u-L9^O*w;|;*MPx%ppJSVidQjF!D-kyQELph718UHjXY& z;YoDqS-22iX7}{BIA4zFt*{7VbN$JuBBOi(Cc=3(;o&z#H1m0Q_)CCE%7ck`EE;## z&#L6Kmqw=v;<`49v2(gtWY!=|)BaK|r<0=khj1Q!?3PtGEv@D(c8Oq(?Xx#Am9i`0 z(dB$@mb(3UPOr7EG+${$K2Ic+T?;A~?m%JQK^~S@z5O=0+ON1WE0j1YxVbvN!JNqCd0e@131p5DcclIho zuXY|=v7Bl7Bjm#MoAEs6n5s81+@`%{W&OqQkkVX_rjCQbeQ0#KZimbRDXnOKm}R*` zBFy8Y`?~%`MybX8lCx_r?V}RXjs2UabZcQI=7WMG2zma`!s?^CODlI28>cR2ajMiZjF|LvY6~ zvPm1v&z^@&xX+dqiu>h1Q+YXJP!^`Nndyc8GD`dXhx*Z* zy?JbD@9SAxT8oj<(SVt@)Yf<}dN{n}g=}Z(`J{uj*j(+GKwvPpdSwc&TQlG$LFy@@ zoy1SY-RBX_R=AVmv;MKI$s);Xib7O26yNN#ZyB0Gy2sZt)|X3Ic-@ z8T#zqe?A{c;D>+zQMm147$5T*D4OnpZ}vx4w)Dk}eRF7^?M2jj8IrS;!@i)GLdUS> zEHYhO?=i%(I=Y=6H~dpQIFA#UuZi1vKH;UcJPXC|yH|gHZVeaOt}D0~n&{t~=JmC< zfVai)MZ;pdz0S|#%4P^y;AZTw1t(;}Y&WwkpJaq!OA>sp5 zokO$`dwJN1fjUFA$I_EK+AjjVhV2XBy|5rELGtheF>j}n{RQ5Q_mYBb+!e#WjOT>j z8@_E6&-nYcyjw3;0-eGpkPwU=4_4R@5YRSOP_{3sT!Wq zM?=uPp%>#|!1ZvuQR^~DA=fZ-+xYFh%@FnYi>V}vNbb%f)DCs^fnxYmbIvlG$IC{h z5q4@J{bxlbv9pnhOY+HFCLam=N`u|_!4#gBmv=7xSg%?r+?dVIpdOr3Zn#(6pwu~I z7e=*oIkU9W&WQFdOz&LFTdU7s&W9!#LaI`qL98RPteqRU{~CxKU?3)?d4Kfzim(&> zs=j7=Gf?IMnVrkmi-GdW&x5lQmI*>N^VCiko{-oYtUPtH>Uuu;)IKddkfj~{p!Q#1 z`ma|mbN)OZh12<8rD#A3%^`AQ z)b_A;VNoXu8)_yEd8$ADx{knRk&$(fun}us4hjA5=INQr6()ixA?dWI|IZUj z|83NC%LN1mow;Qye@%!lQIq=-D?ya+OpGMn4FLCLBFPco6Lf%(u*f~Sz)W>{a^}fr zIXv@|F$PUm9cLHwtjc`~c^dWa)K#uDMzcp?mj(?+eK#~ZEi>;JykRln|Ls@cI~*sD zn%HmQ;tRSPFd2S2O6EJ-IhypaI^RmSP2k6-Y%Y(OVkR4Z=EMK$mqSjf*#%xgs*^Nc z%9S?u49W8b9chnIO7Le{M3}C*GvFoyt1B zGZqk^p%A91-NbR{54&)%MUWz4ske*cFw%BUb2i-7KI?9YDbQ&wc6av<7Y(A(s2xgywa@-{YX zLiYFgnG#5d{Eo6nl=;&Ao>82te_i<(nyKO?zIzztnD{rPmC;&-V5YxuD_OYAi=z56 zf^*-!ZW;X@fezu(mP#;V*)CbBEx0 zU;ayK;72G1{b+j6>+$gakrlGcPy)ipt5(RIKcD-Txq(4TAtIKE(o6O`6_Eeh$~+;X zB2c;H;qm0Zd#7hj95MtfV($iM{?hi3aDk`)e}AaHq#J~yO&jgfyc$VD&(#wJRNm<4 zN*q7Ba2;atTLcA^cC|7Kq+l&Wxd`iMrJ z&#=IHAj+Wbyzf}~yQ1WhRGOe^L0ccM2R+AES7&yJ>PUAtzDF9}KDUd(DDiP-sE2d#e|-4M0JC^AJ7?H_L`bulWHr2!Y&p2Ofx zjC4tOzXa`tfBq@9(X#(Y^NjZS4=&F-N}`}$3mM5zq@Kd(I0-F_>ajs8FT15ch|j*O z^WMcOQOd6>1vpR{85t7CvqaHQ_Rx_(2?8n^!rD5e`f0SJ%)%KH-i}P^C_BHP2Lwbv zxj*dOUzMtl;dxI?7MS^APt<)r=6i}*_af}z#Q$)uA)8Zu`g@|@xLrT%DT#=K1AEVu zq4Rsm%lu!cERdTxGcgCsc%EOaWs+#;%sOvDNW{e9;xyfwJfm-G-&e@(KL0}{=+(XW zQ?{fECjukb4`MsQWNw|k43a)M1Y_i%HfnU=j9&wWfM~`RBum;Xk|F46uF`**?sZ_b z|9GLu3y_ZZ$vW;IP(8Nu(?C@qk}&R`0N8$ufEVo^55v^Ry-XatD~tbJJ59m-#^Uet~q^`-}weaV?0JcPbA2 z7%j3gg~*5_fOsLKXvBXVfLu{(?R0zk80=qPl1iHpcOn7JPM+I;a3a zzR!Tf2DXi1NhY-PKFQy4j!P5bBtM!55RefPf0FxfROeAY_W2byhA3$K>hDIZ25yr%DURTae2&QSZa|`D5i8C1$ZO)vI?{V1ky{3Kg={-@HcxK_VXN;lRXktST0>fE!)^%!w4@z}6UlnelNt|_PFq=R{H z_hE4p&kMLbpQe0CX{j7A{DNQ|tURC`7ys2}GQWu1OuH#|{9IGc34IShmi%~s>>aI> zoUJiAuso8fn_SLDwcb4s(Or1-2zzf`N59b z%#f4Yea7vzEVX3AZ&G^?VD)}03_kCC>#>PHs*A!V>xv6w?A^mQX(bgkQ^cnvMv;r; zT{h!PGj%+6=qNTy_vqRHdZ7iMXLPK$Mt#*rcd=DJmVE24+IOjoOOCXc39or(EVRv) zBB$o!zp2EQFJ*q`u1NHA7%lD|_!W{KAben4VjnB9IZRcWy1_(_Uy29kJBV1IS`uIX zcmsHAxO&yN!X^*aS?;CRPI_F8bF1~v2=LhV{YW&|Uy&YjN7tC4{2S>&9j>TG%*YzHp2wPdb@H{5bUPkNC z##b+uMwI)dMb&GiMDF+GRhHhn4n`ZQ3|8)v*C2<`e=CO#a;)a9SiBv>Yq=R>JzS5S zi@K1&r-PYkWDd(#f1WZ>n&|kb?)Z_!$@bm#Ioz09gCRFug17LRGv$pt1vf+ll7W+b z<8ykwAs)}Nj zSRcnT5Y=O%w4am8S6_Vpk1xrLiLQ6$2wqGSK!o&F*VdnDF>PZUsnPP8}GVClcr ze;9Pv^vdBX)lcwQ`4R$<$MYfMwiLi0$E$@vbpOjctt&S zed^1_D0#*U?{?qyCAIF*OCY4VzZGbrZ%D@8)^CIx)Jb?vz6rk$rze#^!<$4a-QP1I z=FN^QZ{gNiBzzyKF2~Hfm zQd^l@yHnS#FVcxG237bErBC}G=M`-muhhMQKa|%(=F4h~s30@N+?G=i?MYv22f2`y zcS^5YB07EaSp2H63=ugR(cdPdaKEj2AqWe*;5UZiGnsuaoh}- zNh9cDMWhm)h%Snlo{5d)((fl`rY=1E3a?H#EE3+~jN`F!Dz$0i3ZNIeDQ+8@9oAb= z`xLe|Rej_Ec%!rL;v(w|MU8_G1xCh8qwQ45IZ;h45=eKfO8k_7Pj#gk`yqj6f6V`jx&8FFsx7B2n zSwStv!||GT*qA>=uPdjW>1py9tv6}=rCZ~#2v#f^U-n-hB>r_3q%)-dkyPD(ntbnF zcEY?va!bNnyY1nN)q3(LLUaExbvM-7QM^tX9S+F!^Vyqj_*&9v z&yf*e&=Mc7G*}@RL|*za-~@YtiXJ{$o)(b|xuzB$r&G%y!mYc=FQ=QOYQxZd-8?&- zjyd8f9jjLOb#$*ydz6Br$e7@;V4RGmu8d5tReXL>cg*umkG{=bt^L; zGQV{@F!XvM$0_E!8u+88I0yuRDx-ezni~F}Ue|ZNg>=20n>zncdOLR5%lBjp8O4e& zCnl9qyx zD!1{6vi-Ng=RKsvx0V*;*&7Rw4s2T5%x$TuDFQP!{a9xsMQ}WOd(kM{8}#X)8O+>$ z>vNVIz85^ZzFuE37S(#!qdDufnr^u<|I8W|)!jT`kY?^U2ytek&4(e~d&F?Z_syK$ zD?6!gdCYf|Je*}b7o<%!F3zyQ%)rb`b?q9fWL4SofC9n>spM*? zYRnyEGj_9)dCq&MpsU)4eb2SWqbco{QDZ!WnMCw$K!jPW*z`F1TvM>)C9*Ptm9hSZ zUMJs{Kbe4eD#JEkH%sk+diwp=KkvSK zJmGE^VGEC%3ZrSfzfvFdvwd4Q*=eNaW6VpBheTb=(>JE7i;x2_<&dHI#|&~IrVFZ1 zF@4G_PV`eNuR>BAU@}bFc&71ZTRo=uk@wX1x8rlj9T~Z>`-^e9nVW*MiQ;Q%viGW% z8cot?F?df;2*oTbMP7W2t$TA5`R8+Ixw+pR_9rT(9XVt*m`8FY)>;zEMN5 zV3@qW9v(6JJkGr+KKafyYDX_CN)rd+{gw1%KJm-|tz6T}&>wkb`e}?^eFF`(IN`WG z!_)yyZ+ZsEuF657XI_X;iy(8~+O-zyMDb(vgrYH=AolsA9@R$EB8z3(89D;;X9R>) zA@?6DQybTBi|8HpS5?l6GWAVz-X1D<5Mq20VZyDjZSwI!-)Jfa&VBJF?^EAi-%xvz z=;K<(nEj`wO=?8}Of>nuEKAM>>@)4@(eMC9e!`$n3Tll*-F0z;B9JKNBkw0?^@JQv z>J7hLSYYRNu2xH<6;&06F*ZkAFgP-}opdiLQu>)N`2B)i7n!>yw%2~{x?oxQ0AeN0 zyu_`+5V;YcNf$4jk3k8VXsA)QMMD*yw9KAcNpRwhFeap3LeFux$5p(G?V7ry{I$6! zYh;A7d2J#_{7IZn?bb~a7i$wQ=?4H$fU)QVl(k|Ti#`@lON}K-DTJ^d5gteD7cTqLN2Qrji zJ#XsKM_!ZTQq#rVIhslPCCC5tuT=7Pt@l<>9#vRAPcL`@-P~*@|BTow;zazK)S4=; z3swkbbE`iZb|_zqfMk5UaCd2_+SFsEMuN4xaKn&tCk_cMoM?E)@H{K*m|cy!HQEYp z8GmudJ(@=8LSzv#z?$)51rK4>hxdHO;bwS?koZCdM9^@Bj=CD8W_r}tg1^X_%sOee zv>#QuFMs6r^~?K1m;|N@&SCU|v%41NnAsvSSXC2e-zvUyer=-n=$V&>$w;T>W^no8 zR_xSpWod~`w|7%=QQ*LF(6UzJh&cnKWufnoEm^n_(y|;-T|mt`m@!dw#%C(7mwqy~ zBBv$j$Y&(k)0{{9?b|)=9~6ao#xUBR+cr{M@50m^yr{V?R53G6=&BEPRLZ;;ax{-` z!PzvQ(}}sYJl#re&LA0UGD`Pzpc5Kfj@XG#Ua>0*%id~W;v~o*WTFp@eE_z}JWswI zs*fMtcx`lJ?w6n>&uUr%7pAdC^~ zWjTARp_a8^$X!^Ww`%VJe|ut;bK?57sUDoI@>11Pb^59VNM%s3D8Rf`1-%iQf~a+-}whQfw? z)TElT>RObIMy=TyQTvQB8s#*iGJ>_uaf=7%uX35mm(2~&8%Q@$^%pyqE)G?v(?%d&V-MLsBTe>5XvJ~m;e&uh3>m_)NOdHQ}5+XqqBEg zqPVM5q;Wj^Y+adO9lPd^Lu?k`9%m;%E>{HG-*(|k*sl-CXC!+ULh4dCo90B$h}tKn#6&kg9P}L^?^CoL^u>+iy>J<(eq!I+XA6{(gHuDAgCnMKw0?!8ub&i8cvyQb1WVc1%aypohu9foi3= zv(y0(P#r`}JQt{M8ObDfysN5Bt=Z{qnbt~fMYTL_mrA`ep-3SVF`}LI=<2(q?{gt5 zEa0b4sZjg7ifw4|xigxFasVV-%q#MguC;@;9>`Gjuj(a*4R&Jf-Pq)K< zIB_SXU!0y_zP0zWx+w8DLcB0^&>+w2N@=5K3du4tG;qgxG5uUkz?n7sTUx(ktpM^} zZ~DG9G3Xvv$L9%qxdKI0-`?2uHJ6}HITF|@{A|d+~5Nb>Q zJhV46`bMe~ZqUa$^gv0@vPID9`#rDY%DRkhD-lQckjYY$V7pq2=-$uuNA}q$h}2H< z!1}_IEQSH^ypV=iB(!Kk-2VkbdkSxMOI1(3$;9RIP0_OlZFzBFlGpE-WBZt*{8u_N z8w%ZzTr`PgKJ6{)mJ^=~_p^C|ttqO0e0gEE$-R*Gc5p%OwbUvJ>$8w|f2BByGr zKUeR>c*roCVaGDfyKkT6U8zXLV3Cfr*{htPp<%~&`;BnOShdBQm}b`QZ1t!d(un8S zxvu15k+O&1MsPwg!mVhPz4NgWX%^q+(=vkN>?=2eT{{}jO|QLQ&+mI(i5gjd?Ve)r zrmuV(GHB+29UEDxHBTz9F&`Wo>KTY&C~XUTRXUMb@lCI@E`fzON)D{k_jcmZ`lhvJ zIOD1IS)CFul$Q5c>g@ZjXPus#v|#>=MeJnwrR}btWFNY z{_4b$O)SK?zKzb!C)&R2{nw@Jv;x`7cPkf0sut^G?d-Ecmi-ElavBdLaz)Jcn_?+9V4%JKQRT zjWBh5mm%0-H)uujz=Bb_YoBmq{rgk#=vJlPoiG>8+95wnG#PNt5nH6yg` zh4M`T)2^)(zrF^vCU`O=esNRUDRyeT!=e2)Qt)}u(N#x3*WK};e;RD0mkSsejMD1N z8s1&|t|uwpGMLJ)fNbtmxv;6!sjOCK0i5&FFd>fSFc~4jqmqDBh?<(2N-zWM!)M%c zA+DR02%l{&TY{V~#L_}%D87G*+YFW}{1ALrp+>TA$eVuXOKOQtyOl}N`@YI} z_ecL6-C~Zs47`5H9NlQSz;2&!r;ygkjl*fzxrOFumSMg4+YeOO8YY{*ERpS@~E z>&gbw>$B%TU{UM#?b4r()fYrYrUfMnCL_Hnb>}*WzKF1wLkWUBiLsN8`22A;u*)41 z&UBDJDKl}+u?0O_!k@1|{>b-%wcvm0qti1obD-Q``YelL{+~yyI)MbC5!w!q{>ulS zp1tIhAz;C_(Omn$ymv_A=*0fb0RH{r?ro5jQMxUBy1R;Bfj^0=pboH=aJg#c*)662GFPW( zj9?7AWM6InOXZxNQB@J4j{Ih&k2a&Z%&YX%eAiV1kQ)B~z4!R4CxGrueR@dFpOz}_ zZa>#oWEsAdFT<2e;(Yb$<I{CHomcNNPy_-*q{=bCLtedm)`JcPh83E>p@F&- zs`X)oTW0v~AwaMJkk}mot53w00GK(szfcrUDYYxJzrDoy@cgx?^{JMYcuRj&T8Ya~ zD5^I<@dBfinQ9yt2iUQW<%fS09pE;8`(ZK`_-`Blq*b#s>eB`X;Lp5pM(I(BljZ6a z;a1W1G)Z*1G}vD&rN<|sPgjedcXsyN^pk6xlR=~md^7`ifN7Qc!sJ3xeVoVAU=yG)FTkfo0ytK(pWTNCV3+Nb z226OQl1jQ%EvW(^btY(t2f#K0Or*p8t0n;eoVtRTYL2xXvT2EH0^r0udfDoi3QQ%} z8*g<16yM%rX}kK1$&QzD>&=`+2~3T0l#+;fx2mNyNuSBBKFj##Sk9J-2x*?GB7n4O z3Z|5@o5wMbeoB1{HuhzW(=E=2$TX4>3lUgzUZ53fJk)(re_?i)4!^z0rjexlE&RI1 z>IA^MZf6U4ts}Zc^cnjMnY(ke;=!g`LRdjLb!Si&t+2ywOTVqybFb|PDvHB<(I(?#nw810pXbjDZXlyC``&AgbEw3$RwhI46lK@s7B{_THAF7#um;2*(Gl{*flG?YEd{upIeiAi+#sBIqzd>D#f zVfl3b^AR#n$XV0~SeUcuAoek{1lfbB3cQ7bU$X#S)7Fq?N$ySkZM(jImZ)C^r+&_uj^ItL=G{)U+Q*IR&on-eybI67X*qy7ylJ=ru#>eC_^x zUIyIHj$WPgRbOv~cv{F=am8nJD3j^=1Sdwn&F6E!=x)3{D<|Yqf?Ki3xvTClRD6-} z+PDv4(HXG)R1r8<{oxDsR7KxFg$MKE!FEAmUywFHSaA+YDjvMB572iUd3gqj()&JI z>yteGXw>kHeiLHKzpk)jSpZB4@xBU(b`!;Gn^!@~K*&%CW z^ZcV<1C(Da#n}1M0k%IeET@gA)TV{H`%stn%`$d%Ty_A!AY<+rG-JbDrK$a38=W5w z+~1VnQ!}~rcHrGf{z34lWy5~|?!)8eC%&iFi;0k^NTQR8(6pg0xA)58hahnHCjWBK+0=Oh#A0&!R_)+@jjSk_x$X4<%cg5L7vD!)6Z%cAs*E*qlk5OIJW*>N;g z3nn~s6l?xvs?_BN8A=N7Q4*iLLZWhO#z&^>(9>h~Jise#`H)iuxS#@Wm1p|tZnei} zo+%s*F5EBi!#KUVcKt3vhK8nlq)`C7rDk3Ij>=z?IL=78)Qo1oOJzN#)nrQHGHbb+ z>0Ssxx{8)dTmBASo+AmQH%)+OoRdECrBr@@y*-pJ=*9Ij^2z#x-8m#@>YvG3M_4Sk zPjuS8TDEk(pQ}63j*0pUIAO7n37{)pATz;r@OS76jQDP}N}Z5RwNG5o_xqmSploqW zGwu^~qS17TkeG*@Sc4!Fz*^cMs+5a`!LNE>>wNYLZ7QLAy>DDXCvjJ$3~a(*)@ZnLNrs6b=*79fFK#Iu z>n;GWg_!Mlshe-iUrz$XBUob|PN!ca`D^E>G(L=M226Z=+R5-Vr8?+!gu*ih)~$FM zCW{bXP#!YC%t-7@16-4kSk3ypU_X@6KNJrp0aU*!C{ogAThxck`0b0*?|%{COykrY z1Nw_))?d&2@c(i;qr(^`Dt|r&5hPP{anB-hvKxAqjKw&RKv@EThoCi3t2kaNabGZG zufNQyD%!&JukCdTQhZ7)h68GAflKMv{rUy?b35h4XrA$vKISpo(Ow4ZwN8IjcOLpFMNddmyT3?Hm^!1ZwjAP@=BYQ-YdsXF!{lFgd0KZD( zS2%7kkJA9}*59fo<*}l-yGte>jz4NPRED~;B7E8f0nu|#m-R`N>yqBsNg|e#$#c08 ztQZ;ziXcyt%j@EkKC(3_4uOGV#J?y4?P&g4V!hH7Fy^;oo-)2oI=sC!)GAczJ+_o} zEdi9ssDYAJh zK~Z-M?vyqG{=MZvRoWkJ{I^6Sji~-`J**VEa1*#o?#oKQpt^XLQ%pSKjr@UUxx)a> z#!EpD@IVoz1$>FX5vDfQQhx<{OFbEBF3 zWBOJxXJyF)nNP%rdwA-6S{$Gy3;?;m$4UbG7evLsg;eLMNoYl^xs=+rrnr++bGiHv zFld+v_%3eCpg^n(_UsEuKwrbn&PV}v^ABT1a&Xfo6nYVAv+_%5FDP6k0_I3y*qwuTBp);?g=V@3ZpdE-P=CjLp2e(!T? zo<4b^it$GP$@<7a6}m#=OG(z|)~Z8d@gaV}S^2C?*-dTW@q2Bwie&j8?FYqgZZHgA zOO){l;J|fv`%7U;HVp24jw-%iUu1GTb}`^2nTknQgluoH91$_A>A=QRyUGw`QGK_EZqkk$8g*N)n93PEU5#~1yH*?9Rob`#%J_*Cuheit9=`8kk> zQFBLuiZk;PWINBbJNl7;Gm~2{>sp2tT_|3PcmK#t)mJ&;BkPiK>lqOtaUmHXMv2#k z?R9DYnyVbT^4VJHPWLb3gUQ4m1c)KmL2%kqV$(9Y*1#BFe{yU(-;>8K9vE-o;#@gJ zjT)<~JzNPmsm5Hjhyxp0H#rUS@i@&;9#G~qG@T*t(9gFKPRi)3ZU5snGf)CipyUz{ z;+%XHAtfLi1tQJP@U%j`Mo>VZHQkoVi4XWf82$T&=I~KV?P6@t-`G`Vmh6iGFVGmt zpukP{{MFk`ZqwiSx3WkXJU?(1!Acd=yyrRaRgZSH%BFssOGACcD&n|hF7b;^?_DR< z$G;>$YSVWE7FropR!&y0)I|epoOqCTn42xE#*K{OHpgZn47ZW$`NnC{V+a!UlGNMY!dGbwbX2(ehPpwB2oW+ibY4 zQP|CP-40n^5?pzz7>*I2|g~Wn=ZJpEMa_6 zGw6LA{TTWEjTBdXGWj<$8E2T5$tMfVt0%`l27?uXRw?oI8Zy!{bsoQ>CF`s=$TJix z0KQnC?-mU?J-K{!yM6S_m!J0=0&_Wy3bD^1 zinjk^?}?%6A53f217!9=P${YUssLJM6LRr((L^o^H^u0``|&U#%lzTH(MfdIkv-b1 zpww~ry$*x-EVJNp(sBPa$*)G18-|Z&_gtiRPuZ_-7OKo zQjgY1y=&TVygQxjtln~Y$qm#rYnN*7Aag*CapH{s{#?#_3vYcw!&1Y0h11*|F%*WM z59!Ok0W++xZ~+ZUl^qAp{eDI|~tZu_j zN1{>LLq&i%)^LFyBn;-_V+c^@cb)HE;9hswJV;h>gWA7Rku~oFkbg-kmd4)GtEECS z>N;klNaZ(;&QsJ}xGo?s?9hLY=R=jVPqTrR9$i7&TcQGp#(O4V_zahS=zk)W zi5DrX#6|iT3*_v=NOi?I`&mbjmCFPvvGtFnj0tN}*l>trao$8VYDBfVb=I#y4Q0*? z%Grze?dY{hHGAUTn^bf&W@EMW50vo8%AW#s#e;(b4#e*gUboB5nG=bY!6^E~%;U-xz0$HeCk z_4Fj)^a%cPLe4E|0486Qr$6#~#CpXC8(@I2>9ngFnU;W2J)y@|zOJ^(@A9y)Bh;b3 z6P1V6{(O^7$_9)`vTMIbEt6t`gr#^8Pp-2*m}^QIBjJ1 zhWpJMi`uFdL3xf25I+?M2E9EdT?iU^^hvXYkm6H3mLJleaEgg+Oo`2?XYS>KVOh#% zB&jW0&Fxz{@)J6aTFe=kdO&b~Kw3V9Z|`irRJqQp5q~nKUa-ZM- zS1r7oJ5iy!)+5g0Kjq-%`&S8d`~MzlkEDysmQy@1+Nr$5+!m;kj9Flj&W z;?F~TRL%FRX7s;f`TYqJ1CFRHy>spP<4_a?U~AUTxAqp;Ke1~EJdz4US z@a}qPb+i*McBS)@Z1{mxbjP&oVh+)$$PY|7OqyYha`5@`2P5hrLk^G0LxfD04lsfX zymU#Rb9qMpuugD;JcR61bldhCm8yKHuMz3l7-+loksxJ5`N9CT5lWD0d@#uho)46n z&Tp%)Q6g7gjfn&CZX6AUwt)T+DKzrxbvoE*W&Upq5$2n>zl~ews1-X{4?SC)9BQ0d;9DseEXo}D+|SBY|4dv&=mNVC4NuywF>Do1;yT0OO8h7g9y zZS#~FY9o~m0Tn}MbRE5Af(qVLYkk%U-yx?YFT%!&k{-5gM{2YiS6&|7oQ6*otLt2C zBk*i!u7;9wR6co0ZRSJMTCi-R=)MJc#f%dZj#X~`_uiV4dDqFfr#2%G*tXka=|6VJ zoJ!I9wsf|GDCw+YY#iq+idM)`io!e7e>*79E@2jhM(D z3E0BV-qOo9t@X2RTf%*^qEHD+74_imZD?5cwxMsCTN)5zvw%4@W2XC2wJ%43H8`wy zaOr*V9m5;5?+SBNQ*C;SEM$bQ!wUV0KTgEDCtp&}cF#>c7DjiCFm;Su*C)3;J<=|rm|1lquBTYd6zyxaZ?f9-duN)E`9h^0ua8Gk zXL7Z1SNb^#vImb)^OGZSi#GNA&u6bB`tfoLS)YwZ8AD>f02DKD7>ofLXh?Oo>SB&;qNR|74Q8?oNu|DB3W!jdwVhx!p(+ z!G8tsaul5za|JuY66vUjZ|;G3dc5q`N#aB=ZnB%lPw&M^V9Mz&@Z|7a9_gN(eA^eJ zh~%s+aC8O0&9FSLujyt_-$5-u_>CBZ#+g3ndmmnCL;j*+ywSBVOMai*XV-ZhR}4f}&qjuzHk} zyRwf?K)Ndy7tytN zs3U{FC6x*%JE>{k~q6mM?ar6=>}BIi@K&SEtzvn z2*D^T<|_jzoFK_Lk9(?426_(P6+a>xC=*a4CtjO1ku@D$ zsjDNsrg61AcN3t26!q1Gb9SCVS`Ht7ehnIP3Dq8|aTVhb^$A$ok63uvB~@xO!inGw zk05*|eqUH>>#Tfz<&l@sXV;6swKr89S%HRIteCEU;$EI;$;sCxPT(<0t3CxxR!j$i zRP`zD+OPfBa=0cJ5;)H$Tm3*gdz*A5h~If`bg3bQ)92y*_FR$UmV3E}|Bc}N#}R{r z-TV%?*%fjzht#e4b1~-w%!QMq zryFH$={X^qVKkZB4|K_zn?vuXg7_`e6d1uSW*R(4g9(|I7}G@EKTPxZr#8#Pro7Ob z2!hetkUwvZBkuLvWJ!Fii9719=+VyWFh=e2D1>cy3SpiTx{BJmy;(Opd;NH%61K7P zOH7%vA_vjuA3x@|#>MZrPQP<5>~h1s?>3pRkv@%hgYBz}m%eNGzN;NO+wf`>J?C-_ z;ciAkdd1F?>Nfx65|-GYQL;*v3E536v@AoF2;`N>Oj2e+)P9HlaEYpaxv0=FT|E zlr~K7KdTYJd)6xS>$$1{?$cLoOWLkfMEh@z+*(dz=hsnz3De2P#xSuHr0-GuzL)(& zE@O;g8fNGDIZVwb51-n39m2b})oP#lP*n;=I}!1-WnHu>v!3;qTcB@2&on>wU{WxT zY!45^lc4wIgdD7%!QXlNLFXWZn7T(EHcXJfSz?6=6u$B*YKC(nuFPH)>~*IsVCp>LxL%brmuQ!eN@uZNm{ag`Z%CK z-h&G^g9@01y)|VD&}H@`C7coEO0^4e_AMFprlkaw@B5Ij#;np$R)`&kZXrICYoE+; zwocVQ`r*88uQFY8*TM3>$9?7gV>Js3y1Z+3P7d~`Z`??V6I_2<{JYk&v?v?8`qv|} z9FAV0{yk9wOx`^!NBaLm%H1lXUW|*{h)9oC;od=S8P;waP~% zOnYkWpIP(x$e<_1x~HxC8`=+G5+lUeO7*L2E0|SDReU?0u=s=^TL?)$b>gaAzV8Q8 zk{@&wJ+X{KeUJjADMS{8NI;=s^Wm~?f;5LuOoe2zxP`PI?MRYT3ZVTj8P@oU zd|`jn3zs9i&i7qF2~MGsp47_d9w7Vm2{um!fLp?^ga5#C$~0k^y_z}LNPe9VRtreP zBBkadkX>-ScS)9DBKO{x-8+R8QOhhl8i2iP?80PPhz0#0w}q?%blLRt$YteS?7jEM zFq$TZy)S!rYO(-@m#>+(_Wjw>0JyE!Wq>&YKQBpjVM^^*hk}EV4dwhcw=`y6@D2v8?8<*0A$&^uL6fzAp5m) zKBCuvF)*w#Wpw^c^@!dIYA~Hs6Z4)RkN)q&f|?7nsq+h8g+exlCIjk^y!C~Rh-^ECTjM-q zVcWvvXYc-h47YCpu~>>Z3cvc_;*`i(0kmT7z%&?|4{OB^8*~Cb*?$+}T`Z zrw2hVZpTXC@(Zfk-!Zv%L!$lt4i+kkosi+L*{5dTqz{AO*eckw=Q|j-<4BPXiww%+ zy{tqllxbNE;HuheGXn&HA3hP3#oGa~yH$d56H_AToWC9Vdx^H4jFPmvSo!1Q@f<)$ zyG^BgYbQ%t$Jn;qtVsmQzi`(XAyZk_wPinA9DUPF`~?$=7%|9n_{&ymO!Q@H=VdK* LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR459/index.html b/previews/PR459/index.html new file mode 100644 index 000000000..1df00594c --- /dev/null +++ b/previews/PR459/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                        ClimaCoupler.jl

                                        Coupling CliMA Models

                                        ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                        • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                        • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                        The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                        Coupler Scheme
                                        ClimaCoupler.jl allows for independent development of interchangeable component models.
                                        diff --git a/previews/PR459/interfacer/index.html b/previews/PR459/interfacer/index.html new file mode 100644 index 000000000..16afe9de1 --- /dev/null +++ b/previews/PR459/interfacer/index.html @@ -0,0 +1,12 @@ + +Interfacer · ClimaCoupler.jl

                                        Interfacer

                                        This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.

                                        Coupled Simulation

                                        • CoupledSimulation (cs) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.

                                        Component model simulations

                                        • all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation
                                        • the current version requires that there is:
                                          • one AtmosModelSimulation
                                          • one or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...
                                            • these adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.

                                        Prescribed conditions

                                        • SurfaceStub is a SurfaceModelSimulation, but it only contains required data in <surface_stub>.cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:
                                        get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction
                                        +get_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc
                                        +get_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α
                                        +get_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m
                                        +get_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b
                                        +get_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta

                                        with the corresponding update_field! functions

                                        function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)
                                        +    sim.cache.area_fraction .= field
                                        +end
                                        +function update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)
                                        +    sim.cache.T_sfc .= field
                                        +end

                                        Interfacer API

                                        ClimaCoupler.Interfacer.get_fieldFunction
                                        get_field(::SurfaceStub, ::Val)

                                        A getter function, that should not allocate. If undefined, it returns a descriptive error.

                                        source
                                        get_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)

                                        Extension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.

                                        source
                                        ClimaCoupler.Interfacer.update_field!Function
                                        update_field!(::ComponentModelSimulation, ::Val, _...)

                                        No update in unspecified in the particular component model simulation.

                                        source
                                        update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)

                                        Updates the specified value in the cache of SurfaceStub.

                                        source
                                        diff --git a/previews/PR459/performance/index.html b/previews/PR459/performance/index.html new file mode 100644 index 000000000..6ead1b9fa --- /dev/null +++ b/previews/PR459/performance/index.html @@ -0,0 +1,2 @@ + +Performance Analysis Tools · ClimaCoupler.jl

                                        Performance Analysis Tools

                                        ClimaCoupler.jl provides basic tools for analyzing performance:

                                        1. Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.
                                        2. Job walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.

                                        Flame Graph Interpretation

                                        • use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.
                                        • here is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:

                                        canvas

                                        • each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.
                                        • we also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.

                                        References

                                        diff --git a/previews/PR459/postprocessor/index.html b/previews/PR459/postprocessor/index.html new file mode 100644 index 000000000..f7a23f1db --- /dev/null +++ b/previews/PR459/postprocessor/index.html @@ -0,0 +1,10 @@ + +PostProcessor · ClimaCoupler.jl

                                        PostProcessor

                                        This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis).

                                        Diagnostics API

                                        ClimaCoupler.PostProcessor.postprocessFunction
                                        postprocess(
                                        +    name::Symbol,
                                        +    raw_data::Union{Fields.Field, Array},
                                        +    p_methods::Tuple;
                                        +    lev_slice = 1,
                                        +    datafile_latlon = nothing,
                                        +    nlat = 90,
                                        +    nlon = 180,
                                        +)

                                        Coordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].

                                        Arguments:

                                        • name: [Symbol] variable name
                                        • raw_data: [Union{Fields.Field, Array}] variable data
                                        • p_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)
                                        • lev_slice: [Int] level index along which the :horizontal_slice is applied
                                        • datafile_latlon: [String] name of the regrid file
                                        • nlat: [Int] number of latitudes of the regridded array
                                        • nlon: [Symbol] number of longitudes of the regridded array
                                        source
                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.PostProcessor.PostProcessedData. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.PostProcessor.ZLatLonData. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.PostProcessor.ZLatData. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.PostProcessor.LatLonData. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.PostProcessor.LatData. Check Documenter's build log for details.

                                        Missing docstring.

                                        Missing docstring for ClimaCoupler.PostProcessor.RawData. Check Documenter's build log for details.

                                        ClimaCoupler.PostProcessor.DataPackageType
                                        DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)

                                        A container for storing the tyoe, name, data and coordinates of a variable.

                                        source

                                        Diagnostics Internal Functions

                                        diff --git a/previews/PR459/regridder/index.html b/previews/PR459/regridder/index.html new file mode 100644 index 000000000..b314d9cdb --- /dev/null +++ b/previews/PR459/regridder/index.html @@ -0,0 +1,27 @@ + +Regridder · ClimaCoupler.jl

                                        Regridder

                                        This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.

                                        Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.

                                        Regridder API

                                        ClimaCoupler.Regridder.write_to_hdf5Function
                                        write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)

                                        Function to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.

                                        Arguments

                                        • REGRID_DIR: [String] directory to save output files in.
                                        • hd_outfile_root: [String] root of the output file name.
                                        • time: [Dates.DateTime] the timestamp of the data being written.
                                        • field: [Fields.Field] object to be written.
                                        • varname: [String] variable name of data.
                                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                        source
                                        ClimaCoupler.Regridder.read_from_hdf5Function
                                        read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)

                                        Read in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.

                                        Arguments

                                        • REGRID_DIR: [String] directory to save output files in.
                                        • hd_outfile_root: [String] root of the output file name.
                                        • time: [Dates.DateTime] the timestamp of the data being written.
                                        • varname: [String] variable name of data.
                                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.

                                        Returns

                                        • Field or FieldVector
                                        source
                                        ClimaCoupler.Regridder.dummmy_remap!Function
                                        dummmy_remap!(target, source)

                                        Simple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.

                                        Arguments

                                        • target: [Fields.Field] destination of remapping.
                                        • source: [Fields.Field] source of remapping.
                                        source
                                        ClimaCoupler.Regridder.remap_field_cgll_to_rllFunction
                                        remap_field_cgll_to_rll(
                                        +    name,
                                        +    field::Fields.Field,
                                        +    remap_tmpdir,
                                        +    datafile_rll;
                                        +    nlat = 90,
                                        +    nlon = 180
                                        +)

                                        Remap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.

                                        Arguments

                                        • name: [Symbol] variable name.
                                        • field: [Fields.Field] data to be remapped.
                                        • remap_tmpdir: [String] directory used for remapping.
                                        • datafile_rll: [String] filename of remapped data output.
                                        source
                                        ClimaCoupler.Regridder.land_fractionFunction
                                        function land_fraction(
                                        +    FT,
                                        +    REGRID_DIR,
                                        +    comms_ctx::ClimaComms.AbstractCommsContext,
                                        +    infile,
                                        +    varname,
                                        +    boundary_space;
                                        +    outfile_root = "land_sea_cgll",
                                        +    mono = false,
                                        +    threshold = 0.7,
                                        +)

                                        Initialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).

                                        See https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.

                                        Arguments

                                        • FT: [DataType] Float type
                                        • REGRID_DIR: [String] directory to save output files in.
                                        • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                        • infile: [String] filename containing input data.
                                        • varname: [Symbol] variable name.
                                        • boundary_space: [Spaces.AbstractSpace] over which we are mapping data.
                                        • outfile_root: [String] root for output file name.
                                        • mono: [Bool] flag for monotone remapping.
                                        • threshold: [FT] cutoff value for binary_mask when non-monotone remapping.

                                        Returns

                                        • Fields.Field
                                        source
                                        ClimaCoupler.Regridder.update_surface_fractions!Function
                                        update_surface_fractions!(cs::CoupledSimulation)

                                        Updates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.

                                        Arguments

                                        • cs: [CoupledSimulation] containing area fraction information.
                                        source
                                        ClimaCoupler.Regridder.combine_surfaces!Function
                                        combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)

                                        Sums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.

                                        Arguments

                                        • combined_field: [Fields.Field] output object containing weighted values.
                                        • sims: [NamedTuple] containing simulations .
                                        • field_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.

                                        Example

                                        • combine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))
                                        source

                                        Regridder Internal Functions

                                        ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!Function
                                        reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)

                                        Reshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.

                                        Arguments

                                        • field: [Fields.Field] object populated with the input array.
                                        • in_array: [Array] input used to fill field.
                                        • R: [NamedTuple] containing target_idxs and row_indices used for indexing.
                                        source
                                        ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgllFunction
                                        hdwrite_regridfile_rll_to_cgll(
                                        +    FT,
                                        +    REGRID_DIR,
                                        +    datafile_rll,
                                        +    varname,
                                        +    space;
                                        +    hd_outfile_root = "data_cgll",
                                        +    mono = false,
                                        +)

                                        Reads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.

                                        Arguments

                                        • FT: [DataType] Float type.
                                        • REGRID_DIR: [String] directory to save output files in.
                                        • datafile_rll: [String] filename of RLL dataset to be mapped to CGLL.
                                        • varname: [String] the name of the variable to be remapped.
                                        • space: [Spaces.AbstractSpace] the space to which we are mapping.
                                        • hd_outfile_root: [String] root of the output file name.
                                        • mono: [Bool] flag to specify monotone remapping.
                                        source
                                        ClimaCoupler.Regridder.write_datafile_ccFunction
                                        write_datafile_cc(datafile_cc, field, name)

                                        Write the data stored in field to an NCDataset file datafile_cc.

                                        Arguments

                                        • datafile_cc: [String] filename of output file.
                                        • field: [Fields.Field] to be written to file.
                                        • name: [Symbol] variable name.
                                        source
                                        ClimaCoupler.Regridder.binary_maskFunction
                                        binary_mask(var::FT; threshold = 0.5)

                                        Converts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.

                                        Arguments

                                        • var: [FT] value to be converted.
                                        • threshold: [Float] cutoff value for conversions.
                                        source
                                        diff --git a/previews/PR459/search/index.html b/previews/PR459/search/index.html new file mode 100644 index 000000000..5d5de0739 --- /dev/null +++ b/previews/PR459/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                        Loading search...

                                          diff --git a/previews/PR459/search_index.js b/previews/PR459/search_index.js new file mode 100644 index 000000000..5810b95bd --- /dev/null +++ b/previews/PR459/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"checkpointer/#Checkpointer","page":"Checkpointer","title":"Checkpointer","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":"This module contains general functions for logging the model states and restarting simulations. The Checkpointer uses ClimaCore.InputOutput infrastructure, which allows it to handle arbitrarily distributed logging and restart setups.","category":"page"},{"location":"checkpointer/#Checkpointer-API","page":"Checkpointer","title":"Checkpointer API","text":"","category":"section"},{"location":"checkpointer/","page":"Checkpointer","title":"Checkpointer","text":" ClimaCoupler.Checkpointer.get_model_state_vector\n ClimaCoupler.Checkpointer.restart_model_state!\n ClimaCoupler.Checkpointer.checkpoint_model_state","category":"page"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.get_model_state_vector","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.get_model_state_vector","text":"get_model_state_vector(sim::Interfacer.ComponentModelSimulation)\n\nReturns the model state of a simulation as a ClimaCore.FieldVector. This is a template function that should be implemented for each component model.\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.restart_model_state!","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.restart_model_state!","text":"restart_model_state!(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; input_dir = \"input\")\n\nSets the model state of a simulation from a HDF5 file from a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"checkpointer/#ClimaCoupler.Checkpointer.checkpoint_model_state","page":"Checkpointer","title":"ClimaCoupler.Checkpointer.checkpoint_model_state","text":"checkpoint_model_state(sim::Interfacer.ComponentModelSimulation, comms_ctx::ClimaComms.AbstractCommsContext, t::Int; output_dir = \"output\")\n\nCheckpoints the model state of a simulation to a HDF5 file at a given time, t (in seconds).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger","page":"FieldExchanger","title":"FieldExchanger","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"This module contains general functions for the exchange of fields between the atmospheric and surface component models.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The FieldExchanger needs to populate the coupler with","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"atmospheric fields (mostly fluxes), via the import_atmos_fields! function\naverage surface properties of each coupler gridpoint, via the import_combined_surface_fields! function","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"The component models are updated by broadcasting the coupler fields, via the update_model_sims! function. For an update, this function requires that update_field! is defined for the particular variable and component model. Currently, we support the:","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"AtmosModelSimulation: albedo, surface_temperature\nif calculating fluxes in the atmospheric model: roughness_momentum, roughness_buoyancy, beta\nSurfaceModelSimulation: air_density, turbulent_energy_flux, turbulent_moisture_flux, radiative_energy_flux, liquid_precipitation, snow_precipitation","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"If an update_field! function is not defined for a particular component model, it will be ignored.","category":"page"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":"Each component model is also required to define its own step! and reinit! functions, otherwise this will be ignored.","category":"page"},{"location":"fieldexchanger/#FieldExchanger-API","page":"FieldExchanger","title":"FieldExchanger API","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.import_atmos_fields!\n ClimaCoupler.FieldExchanger.import_combined_surface_fields!\n ClimaCoupler.FieldExchanger.update_model_sims!\n ClimaCoupler.FieldExchanger.update_sim!\n ClimaCoupler.FieldExchanger.reinit_model_sims!\n ClimaCoupler.FieldExchanger.step_model_sims!","category":"page"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_atmos_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_atmos_fields!","text":"import_atmos_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the atmospheric fluxes. The Interfacer.get_field functions (:turbulent_energy_flux, :turbulent_moisture_flux, :radiative_energy_flux, :liquid_precipitation, :snow_precipitation) have to be defined for the amtospheric component model type.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.import_combined_surface_fields!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.import_combined_surface_fields!","text":"import_combined_surface_fields!(csf, model_sims, boundary_space, turbulent_fluxes)\n\nUpdates the coupler with the surface properties. The Interfacer.get_field functions for (:surface_temperature, :albedo, :roughness_momentum, :roughness_buoyancy, :beta) need to be specified for each surface model.\n\nArguments\n\ncsf: [NamedTuple] containing coupler fields.\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nboundary_space: [Spaces.AbstractSpace] the space of the coupler surface.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_model_sims!","text":"update_model_sims!(model_sims, csf, turbulent_fluxes)\n\nIterates update_sim! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.update_sim!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.update_sim!","text":"update_sim!(atmos_sim::Interfacer.AtmosModelSimulation, csf)\n\nUpdates the surface fields for temperature, roughness length, albedo, and specific humidity.\n\nArguments\n\natmos_sim: [Interfacer.AtmosModelSimulation] containing an atmospheric model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(sim::SurfaceModelSimulation, csf, area_fraction = nothing)\n\nUpdates the surface component model cache with the current coupler fields of Fturbenergy, Fradiative, Fturbmoisture, Pliq, and ρ_sfc.\n\nArguments\n\nsim: [Interfacer.SurfaceModelSimulation] containing a surface model simulation object.\ncsf: [NamedTuple] containing coupler fields.\n\n\n\n\n\nupdate_sim!(::SurfaceStub, csf, area_fraction)\n\nThe stub surface simulation only updates the air density (needed for the turbulent flux calculation).\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.reinit_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.reinit_model_sims!","text":"reinit_model_sims!(model_sims)\n\nIterates reinit! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#ClimaCoupler.FieldExchanger.step_model_sims!","page":"FieldExchanger","title":"ClimaCoupler.FieldExchanger.step_model_sims!","text":"step_model_sims!(model_sims, t)\n\nIterates step! over all component model simulations saved in cs.model_sims.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\nt: [AbstractFloat] denoting the simulation time.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#FieldExchanger-Internal-Functions","page":"FieldExchanger","title":"FieldExchanger Internal Functions","text":"","category":"section"},{"location":"fieldexchanger/","page":"FieldExchanger","title":"FieldExchanger","text":" ClimaCoupler.FieldExchanger.step!\n ClimaCoupler.FieldExchanger.reinit!","category":"page"},{"location":"fieldexchanger/#CommonSolve.step!","page":"FieldExchanger","title":"CommonSolve.step!","text":"step!(::SurfaceStub, t)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.step!.\n\n\n\n\n\n","category":"function"},{"location":"fieldexchanger/#SciMLBase.reinit!","page":"FieldExchanger","title":"SciMLBase.reinit!","text":"reinit!(cs::SurfaceStub)\n\nThe stub surface simulation is not updated by this function. Extends SciMLBase.reinit!.\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#PostProcessor","page":"PostProcessor","title":"PostProcessor","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"This module contains functions for postprocessing model data that was saved during the simulation by ClimaCoupler.Diagnostics. This module is used for offline regridding, slicing and spatial averages. It can also handle data from other sources (e.g., NCEP reanalysis). ","category":"page"},{"location":"postprocessor/#Diagnostics-API","page":"PostProcessor","title":"Diagnostics API","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.postprocess\nClimaCoupler.PostProcessor.PostProcessedData\nClimaCoupler.PostProcessor.ZLatLonData\nClimaCoupler.PostProcessor.ZLatData\nClimaCoupler.PostProcessor.LatLonData\nClimaCoupler.PostProcessor.LatData\nClimaCoupler.PostProcessor.RawData\nClimaCoupler.PostProcessor.DataPackage\n","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.postprocess","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.postprocess","text":"postprocess(\n name::Symbol,\n raw_data::Union{Fields.Field, Array},\n p_methods::Tuple;\n lev_slice = 1,\n datafile_latlon = nothing,\n nlat = 90,\n nlon = 180,\n)\n\nCoordinates regridding, averaging or slicing of variable name corresponding to raw_data. Postprocessing methods are specified in p_methods. raw_data is assumed to be a Field (dimensions corresponding to the model's CGLL grid), a 2D Array with [longitude, latitude] or a 3D Array [longitude, latitude, level].\n\nArguments:\n\nname: [Symbol] variable name\nraw_data: [Union{Fields.Field, Array}] variable data\np_methods: [Tuple] postproessing methods (:regrid, :horizontal_slice, :zonal_mean)\nlev_slice: [Int] level index along which the :horizontal_slice is applied\ndatafile_latlon: [String] name of the regrid file\nnlat: [Int] number of latitudes of the regridded array\nnlon: [Symbol] number of longitudes of the regridded array\n\n\n\n\n\n","category":"function"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.DataPackage","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.DataPackage","text":"DataPackage(tag::PostProcessedData, name::Symbol, data::Union{Array, Field}; coords = coords)\n\nA container for storing the tyoe, name, data and coordinates of a variable.\n\n\n\n\n\n","category":"type"},{"location":"postprocessor/#Diagnostics-Internal-Functions","page":"PostProcessor","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"postprocessor/","page":"PostProcessor","title":"PostProcessor","text":"ClimaCoupler.PostProcessor.read_remapped_field","category":"page"},{"location":"postprocessor/#ClimaCoupler.PostProcessor.read_remapped_field","page":"PostProcessor","title":"ClimaCoupler.PostProcessor.read_remapped_field","text":"read_remapped_field(name::Symbol, datafile_latlon::String, lev_name = \"z\")\n\nExtract data and coordinates from datafile_latlon.\n\n\n\n\n\n","category":"function"},{"location":"utilities/#Utilities","page":"Utilities","title":"Utilities","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"This module contains functions, objects, and constants used by various modules in the coupler.","category":"page"},{"location":"utilities/#Utilities-API","page":"Utilities","title":"Utilities API","text":"","category":"section"},{"location":"utilities/","page":"Utilities","title":"Utilities","text":"ClimaCoupler.Utilities.CouplerSimulation\nClimaCoupler.Utilities.float_type\nClimaCoupler.Utilities.swap_space!","category":"page"},{"location":"utilities/#ClimaCoupler.Utilities.swap_space!","page":"Utilities","title":"ClimaCoupler.Utilities.swap_space!","text":"swap_space!(field_out::Fields.Field, field_in::Fields.Field)\n\nRemap the values of a field onto a new space.\n\nArguments\n\nfield_in: [Fields.Field] to be remapped to new space.\nfield_out: [Fields.Field] to remap field_in to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"ClimaCoupler.CouplerState\nClimaCoupler.coupler_add_field!\nClimaCoupler.coupler_put!\nClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"performance/#Performance-Analysis-Tools","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"ClimaCoupler.jl provides basic tools for analyzing performance:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Flame graphs: the perf/flame.jl script is run by Buildkite to produce flame graphs using ProfileCanvas.jl in the perf/output/ directory.\nJob walltime and allocation history: use Buildkite to trigger the build_history script to output an interactive plot with the history of memory usage and time elapsed for each tracked job (default: current build and past builds of the staging branch over the past year). Use key to select which jobs to track. More documentation can be found in the SLURM-Buildkite Wiki.","category":"page"},{"location":"performance/#Flame-Graph-Interpretation","page":"Performance Analysis Tools","title":"Flame Graph Interpretation","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"use for single-process (un)threaded performance CPU profiling of individual stack traces. It provides a tree representation of a set of backtraces, showing the dependence and CPU cost of each function.\nhere is an example of a flame graph of ClimaCoupler's AMIP run, produced by Buildkite running the perf/flame.jl script:","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"(Image: canvas)","category":"page"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"each row along the y-axis represents a level of backtraces. In this case the lowermost level is at the top, and the top level represents what is directly being run on the CPU. The stacks in each level are sorted alphabetically (not chronologically, like flame charts). The column width is proportional to the presence in samples (related to allocations). The colors are grouped into runtime-dispatch, gc, compilation and default. The intensity is random.\nwe also have a local beta version of flame graphs (in perf/ProfileCanvasDiff.jl and perf/ProfileViewerDiff.js), triggered by the perf/flame_diff.jl script, which plots the same flame graphs as above but with the color corresponding to whether the stack allocation has been reduced (blue) or increased (red) compared to the last staged runs. The color intensity is proportional to the fractional change, and black signifies untracked traces. The default is to show the cumulative allocation (current function + all its children functions). By setting self_count to true, we can also count only the allocations of the current function itself, allowing us to isolate allocation changes within our software from changes in the upstream packages.","category":"page"},{"location":"performance/#References","page":"Performance Analysis Tools","title":"References","text":"","category":"section"},{"location":"performance/","page":"Performance Analysis Tools","title":"Performance Analysis Tools","text":"Description of flame graphs and their interpretation\nClimaCore tips for writing performant code\nGeneral Julia-specific performance tips\nLogging performance history using Buildkite and SLURM\nNSight Systems for MPI profiling using Buildkite and SLURM","category":"page"},{"location":"diagnostics/#Diagnostics","page":"Diagnostics","title":"Diagnostics","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"This module contains functions for defining, gathering and outputting model diagnostics from the Coupler. ","category":"page"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":"Note that ClimaCoupler.Diagnostics is deployed online (i.e., as the model runs), working with cached model data (usually) on the model grid. This does not include offline post-processing (i.e., manipulating saved model output after the model is run, such as regridding data to the latitude-longitude grid). See ClimaCoupler.PostProcessor for offline model data treatment. ","category":"page"},{"location":"diagnostics/#Diagnostics-API","page":"Diagnostics","title":"Diagnostics API","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.AbstractOutputGroup\n ClimaCoupler.Diagnostics.DiagnosticsGroup\n ClimaCoupler.Diagnostics.AbstractDiagnosticsOperations\n ClimaCoupler.Diagnostics.TimeMean\n ClimaCoupler.Diagnostics.get_var\n ClimaCoupler.Diagnostics.accumulate_diagnostics!\n ClimaCoupler.Diagnostics.save_diagnostics","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.get_var","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.get_var","text":"get_var(cs::CoupledSimulation, x)\n\nDefines variable extraction from the coupler simulation. User specific diagnostics should extend this function in the experiments folder.\n\nExample:\n\ngetvar(cs, ::Val{:Tsfc}) = cs.fields.T_S\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.accumulate_diagnostics!","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.accumulate_diagnostics!","text":"accumulate_diagnostics!(cs::CoupledSimulation)\n\nAccumulates user-defined diagnostics listed in the in the field_vector of each dg.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_diagnostics","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_diagnostics","text":"save_diagnostics(cs::CoupledSimulation)\n\nsave_diagnostics(cs::CoupledSimulation, dg::DiagnosticsGroup, output_dir::String)\n\nSaves all entries in dg in separate HDF5 files per variable in output_dir.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#Diagnostics-Internal-Functions","page":"Diagnostics","title":"Diagnostics Internal Functions","text":"","category":"section"},{"location":"diagnostics/","page":"Diagnostics","title":"Diagnostics","text":" ClimaCoupler.Diagnostics.collect_diags\n ClimaCoupler.Diagnostics.iterate_operations\n ClimaCoupler.Diagnostics.operation\n ClimaCoupler.Diagnostics.pre_save\n ClimaCoupler.Diagnostics.post_save\n ClimaCoupler.Diagnostics.save_time_format","category":"page"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.collect_diags","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.collect_diags","text":"collect_diags(cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nCollects diagnostics in diags names.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.operation","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.operation","text":"operation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::TimeMean)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\noperation(cs::CoupledSimulation, dg::DiagnosticsGroup, new_diags::Fields.FieldVector, ::Nothing)\n\nAccumulates in time all entries in new_diags and saves the result in dg.field_vector, while increasing the dg.ct counter.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.pre_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.pre_save","text":"pre_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nDivides the accumulated sum by 'ct' to form the mean, before saving the diagnostics.\n\n\n\n\n\npre_save(::Nothing, cs::CoupledSimulation, dg::DiagnosticsGroup\n\nCollects variables and performs all specified operations before saving the snapshot diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.post_save","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.post_save","text":"post_save(::TimeMean, cs::CoupledSimulation, dg::DiagnosticsGroup)\n\nResets accumulating fields and counts after saving the diagnostics.\n\n\n\n\n\n","category":"function"},{"location":"diagnostics/#ClimaCoupler.Diagnostics.save_time_format","page":"Diagnostics","title":"ClimaCoupler.Diagnostics.save_time_format","text":"save_time_format(date::Dates.DateTime, ::Monthly)\n\nConverts the DateTime date to the conventional Unix format (seconds elapsed since 00:00:00 UTC on 1 January 1970).\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#Interfacer","page":"Interfacer","title":"Interfacer","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"This module contains functions for defining the interface for coupling component models, as well as stub objects that contain prescribed fields.","category":"page"},{"location":"interfacer/#Coupled-Simulation","page":"Interfacer","title":"Coupled Simulation","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"CoupledSimulation (cs) stores info for ESM run. We require that each cs contains four (atmos_sim, land_sim, ocean_sim and ice_sim) components. While this requirement will not be eventually needed, for the time being, if a simulation surface type is not needed for a given run, it should be initialized with SurfaceStub with a zero area_fracion. The atmos_sim should always be specified.","category":"page"},{"location":"interfacer/#Component-model-simulations","page":"Interfacer","title":"Component model simulations","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"all Simulations that are not the CoupledSimulation fall under ComponentModelSimulation\nthe current version requires that there is:\none AtmosModelSimulation\none or more SurfaceModelSimulations, which require the following adapter functions: get_field(sim::SurfaceModelSimulation, ::Val{:area_fraction}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:surface_temperature}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:albedo}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_momentum}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:roughness_buoyancy}) = ... get_field(sim::SurfaceModelSimulation, ::Val{:beta}) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:area_fraction}, field::Fields.Field) = ... update_field!(sim::SurfaceModelSimulation, ::Val{:surface_temperature}, field::Fields.Field) = ...\nthese adapter functions, to be defined in the component models' init files (preferably in their own repositories), allow the coupler to operate without having to assume particular data structures of the underlying component models. This allows easy swapping of model components, as well as a stable source code with coupler-specific unit tests.","category":"page"},{"location":"interfacer/#Prescribed-conditions","page":"Interfacer","title":"Prescribed conditions","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"SurfaceStub is a SurfaceModelSimulation, but it only contains required data in .cache, e.g., for the calculation of surface fluxes through a prescribed surface state. The above adapter functions are already predefined for SurfaceStub, with the cache variables specified as:","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"get_field(sim::SurfaceStub, ::Val{:area_fraction}) = sim.cache.area_fraction\nget_field(sim::SurfaceStub, ::Val{:surface_temperature}) = sim.cache.T_sfc\nget_field(sim::SurfaceStub, ::Val{:albedo}) = sim.cache.α\nget_field(sim::SurfaceStub, ::Val{:roughness_momentum}) = sim.cache.z0m\nget_field(sim::SurfaceStub, ::Val{:roughness_buoyancy}) = sim.cache.z0b\nget_field(sim::SurfaceStub, ::Val{:beta}) = sim.cache.beta","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"with the corresponding update_field! functions","category":"page"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":"function update_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n sim.cache.area_fraction .= field\nend\nfunction update_field!(sim::SurfaceStub, ::Val{:surface_temperature}, field::Fields.Field)\n sim.cache.T_sfc .= field\nend","category":"page"},{"location":"interfacer/#Interfacer-API","page":"Interfacer","title":"Interfacer API","text":"","category":"section"},{"location":"interfacer/","page":"Interfacer","title":"Interfacer","text":" ClimaCoupler.Interfacer.ComponentModelSimulation\n ClimaCoupler.Interfacer.AtmosModelSimulation\n ClimaCoupler.Interfacer.SurfaceModelSimulation\n ClimaCoupler.Interfacer.SurfaceStub\n ClimaCoupler.Interfacer.name\n ClimaCoupler.Interfacer.get_field\n ClimaCoupler.Interfacer.update_field!","category":"page"},{"location":"interfacer/#ClimaCoupler.Interfacer.ComponentModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.ComponentModelSimulation","text":"ComponentModelSimulation\n\nAn abstract type encompassing all component model (and model stub) simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.AtmosModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.AtmosModelSimulation","text":"AtmosModelSimulation\n\nAn abstract type for an atmospheric model simulation.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceModelSimulation","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceModelSimulation","text":"SurfaceModelSimulation\n\nAn abstract type for surface model simulations.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.SurfaceStub","page":"Interfacer","title":"ClimaCoupler.Interfacer.SurfaceStub","text":"SurfaceStub\n\nOn object containing simulation-like info, used as a stub or for prescribed data.\n\n\n\n\n\n","category":"type"},{"location":"interfacer/#ClimaCoupler.Interfacer.name","page":"Interfacer","title":"ClimaCoupler.Interfacer.name","text":"name(::ComponentModelSimulation)\n\nReturns simulation name, if defined, or Unnamed if not.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.get_field","page":"Interfacer","title":"ClimaCoupler.Interfacer.get_field","text":"get_field(::SurfaceStub, ::Val)\n\nA getter function, that should not allocate. If undefined, it returns a descriptive error.\n\n\n\n\n\nget_field(::ComponentModelSimulation, ::Val, colidx::Fields.ColumnIndex)\n\nExtension of get_field(::ComponentModelSimulation, ::Val), indexing into the specified colum index.\n\n\n\n\n\n","category":"function"},{"location":"interfacer/#ClimaCoupler.Interfacer.update_field!","page":"Interfacer","title":"ClimaCoupler.Interfacer.update_field!","text":"update_field!(::ComponentModelSimulation, ::Val, _...)\n\nNo update in unspecified in the particular component model simulation.\n\n\n\n\n\nupdate_field!(sim::SurfaceStub, ::Val{:area_fraction}, field::Fields.Field)\n\nUpdates the specified value in the cache of SurfaceStub.\n\n\n\n\n\n","category":"function"},{"location":"generated/amip/coupler_driver_modular/#AMIP-Driver","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/#Overview","page":"AMIP Driver","title":"Overview","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"AMIP is a standard experimental protocol of the Program for Climate Model Diagnosis & Intercomparison (PCMDI). It is used as a model benchmark for the atmospheric and land model components, while sea-surface temperatures (SST) and sea-ice concentration (SIC) are prescribed using time-interpolations between monthly observed data. We use standard data files with original sources:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"SST and SIC: https://gdex.ucar.edu/dataset/158_asphilli.html\nland-sea mask: https://www.ncl.ucar.edu/Applications/Data/#cdf","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"For more information, see the PCMDI's specifications for AMIP I and AMIP II.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This driver contains two modes. The full AMIP mode and a SlabPlanet (all surfaces are thermal slabs) mode. Since AMIP is not a closed system, the SlabPlanet mode is useful for checking conservation properties of the coupling.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Start-Up","page":"AMIP Driver","title":"Start Up","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Before starting Julia, ensure your environment is properly set up:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"module purge\nmodule load julia/1.9.3 openmpi/4.1.1 hdf5/1.12.1-ompi411 #netcdf-c/4.6.1\n\nexport CLIMACORE_DISTRIBUTED=\"MPI\" #include if using MPI, otherwise leave empty\nexport JUlIA_MPI_BINARY=\"system\"\nexport JULIA_HDF5_PATH=\"\"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Next instantiate/build all packages listed in Manifest.toml:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project -e 'using Pkg; Pkg.instantiate(); Pkg.build()'\njulia --project -e 'using Pkg; Pkg.build(\"MPI\"); Pkg.build(\"HDF5\")'","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler_driver.jl is now ready to be run. You can run a SLURM job (e.g., run sbatch sbatch_job.sh from the terminal), or you can run directly from the Julia REPL. The latter is recommended for debugging of lightweight simulations, and should be run with threading enabled:","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"julia --project --threads 8","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialization","page":"AMIP Driver","title":"Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we import standard Julia packages, ClimaESM packages, parse in command-line arguments (if none are specified then the defaults in cli_options.jl apply). We then specify the input data file names. If these are not already downloaded, include artifacts/download_artifacts.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import SciMLBase: step!, reinit!\nusing OrdinaryDiffEq\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33, savevalues!, Euler\nusing LinearAlgebra\nimport Test: @test\nusing Dates\nusing UnPack\nusing Plots\nusing Statistics: mean\nimport ClimaAtmos as CA\nimport YAML\n\nusing ClimaCore.Utilities: half, PlusHalf\nusing ClimaCore: InputOutput, Fields\nimport ClimaCore.Spaces as Spaces\n\n# coupler specific imports\nimport ClimaCoupler\nimport ClimaCoupler.Regridder\nimport ClimaCoupler.Regridder:\n update_surface_fractions!, combine_surfaces!, combine_surfaces_from_sol!, dummmy_remap!, binary_mask\nimport ClimaCoupler.ConservationChecker:\n EnergyConservationCheck, WaterConservationCheck, check_conservation!, plot_global_conservation\nimport ClimaCoupler.Utilities: swap_space!\nimport ClimaCoupler.BCReader:\n bcfile_info_init, float_type_bcf, update_midmonth_data!, next_date_in_file, interpolate_midmonth_to_daily\nimport ClimaCoupler.TimeManager: current_date, datetime_to_strdate, trigger_callback, Monthly, EveryTimestep\nimport ClimaCoupler.Diagnostics: get_var, init_diagnostics, accumulate_diagnostics!, save_diagnostics, TimeMean\nimport ClimaCoupler.PostProcessor: postprocess\n\nimport ClimaCoupler.Interfacer:\n CoupledSimulation,\n float_type,\n AtmosModelSimulation,\n SurfaceModelSimulation,\n SurfaceStub,\n SeaIceModelSimulation,\n LandModelSimulation,\n OceanModelSimulation,\n get_field,\n update_field!,\n update_sim!\nimport ClimaCoupler.FluxCalculator:\n PartitionedStateFluxes,\n CombinedStateFluxes,\n combined_turbulent_fluxes!,\n MoninObukhovScheme,\n partitioned_turbulent_fluxes!\nimport ClimaCoupler.FieldExchanger:\n import_atmos_fields!,\n import_combined_surface_fields!,\n update_sim!,\n update_model_sims!,\n reinit_model_sims!,\n step_model_sims!\nimport ClimaCoupler.Checkpointer: checkpoint_model_state, get_model_state_vector, restart_model_state!\n\ninclude(\"../../../artifacts/download_artifacts.jl\")\n\n# helpers for component models\ninclude(\"components/atmosphere/climaatmos_init.jl\")\ninclude(\"components/land/bucket_init.jl\")\ninclude(\"components/land/bucket_utils.jl\")\ninclude(\"components/ocean/slab_ocean_init.jl\")\ninclude(\"components/ocean/prescr_seaice_init.jl\")\ninclude(\"components/ocean/eisenman_seaice_init.jl\")\n\n# helpers for user-specified IO\ninclude(\"user_io/user_diagnostics.jl\")\ninclude(\"user_io/user_logging.jl\")\n\n# coupler defaults\ninclude(\"cli_options.jl\")\nparsed_args = parse_commandline(argparse_settings())\n\n# setup coupler and model configurations","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"modify parsed args for fast testing from REPL #hide","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"pkg_dir = pkgdir(ClimaCoupler)\nif isinteractive()\n include(\"user_io/debug_plots.jl\")\n parsed_args[\"config_file\"] =\n isnothing(parsed_args[\"config_file\"]) ? joinpath(pkg_dir, \"config/model_configs/interactive_debug.yml\") :\n parsed_args[\"config_file\"]\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"read in config dictionary from file, overriding the coupler defaults","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict = YAML.load_file(parsed_args[\"config_file\"])\nconfig_dict = merge(parsed_args, config_dict)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"get component model dictionaries","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict_atmos = get_atmos_config(config_dict)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"merge dictionaries of command line arguments, coupler dictionary and component model dictionaries (if there are common keys, the last dictorionary in the merge arguments takes precedence)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"config_dict = merge(config_dict_atmos, config_dict)\n\n# read in some parsed command line arguments\nmode_name = config_dict[\"mode_name\"]\nrun_name = config_dict[\"run_name\"]\nenergy_check = config_dict[\"energy_check\"]\nconst FT = config_dict[\"FLOAT_TYPE\"] == \"Float64\" ? Float64 : Float32\nland_sim_name = \"bucket\"\nt_end = Int(time_to_seconds(config_dict[\"t_end\"]))\ntspan = (Int(0), t_end)\nΔt_cpl = Int(config_dict[\"dt_cpl\"])\nsaveat = time_to_seconds(config_dict[\"dt_save_to_sol\"])\ndate0 = date = DateTime(config_dict[\"start_date\"], dateformat\"yyyymmdd\")\nmono_surface = config_dict[\"mono_surface\"]\nmonthly_checkpoint = config_dict[\"monthly_checkpoint\"]\nrestart_dir = config_dict[\"restart_dir\"]\nrestart_t = Int(config_dict[\"restart_t\"])\n\n# I/O directory setup\nif isinteractive()\n COUPLER_OUTPUT_DIR = joinpath(\"output\", joinpath(mode_name, run_name)) # TempestRemap fails if interactive and paths are too long\nelse\n COUPLER_OUTPUT_DIR = joinpath(pkg_dir, \"experiments/AMIP/modular/output\", joinpath(mode_name, run_name))\nend\nmkpath(COUPLER_OUTPUT_DIR)\n\nREGRID_DIR = joinpath(COUPLER_OUTPUT_DIR, \"regrid_tmp/\")\nmkpath(REGRID_DIR)\n\nCOUPLER_ARTIFACTS_DIR = COUPLER_OUTPUT_DIR * \"_artifacts\"\nisdir(COUPLER_ARTIFACTS_DIR) ? nothing : mkpath(COUPLER_ARTIFACTS_DIR)\n\n@info COUPLER_OUTPUT_DIR\nconfig_dict[\"print_config_dict\"] ? @info(config_dict) : nothing","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"get the paths to the necessary data files: land-sea mask, sst map, sea ice concentration","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"include(joinpath(pkgdir(ClimaCoupler), \"artifacts\", \"artifact_funcs.jl\"))\nsst_data = joinpath(sst_dataset_path(), \"sst.nc\")\nsic_data = joinpath(sic_dataset_path(), \"sic.nc\")\nco2_data = joinpath(co2_dataset_path(), \"mauna_loa_co2.nc\")\nland_mask_data = joinpath(mask_dataset_path(), \"seamask.nc\")","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Component-Model-Initialization","page":"AMIP Driver","title":"Component Model Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Here we set initial and boundary conditions for each component model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Atmosphere","page":"AMIP Driver","title":"Atmosphere","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This uses the ClimaAtmos.jl driver, with parameterization options specified in the command line arguments.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init atmos model component\natmos_sim = atmos_init(FT, config_dict_atmos);\nthermo_params = get_thermo_params(atmos_sim) # TODO: this should be shared by all models","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use a common Space for all global surfaces. This enables the MPI processes to operate on the same columns in both the atmospheric and surface components, so exchanges are parallelized. Note this is only possible when the atmosphere and surface are of the same horizontal resolution.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init a 2D boundary space at the surface\nboundary_space = atmos_sim.domain.face_space.horizontal_space","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"init land-sea fraction","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_fraction =\n Regridder.land_fraction(FT, REGRID_DIR, comms_ctx, land_mask_data, \"LSMASK\", boundary_space, mono = mono_surface)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Land","page":"AMIP Driver","title":"Land","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"We use ClimaLSM.jl's bucket model.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"land_sim = bucket_init(\n FT,\n FT.(tspan),\n config_dict[\"land_domain_type\"],\n config_dict[\"land_albedo_type\"],\n comms_ctx,\n REGRID_DIR;\n dt = FT(Δt_cpl),\n space = boundary_space,\n saveat = FT(saveat),\n area_fraction = land_fraction,\n date_ref = date0,\n t_start = FT(0),\n)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Ocean-and-Sea-Ice","page":"AMIP Driver","title":"Ocean and Sea Ice","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the AMIP mode, all ocean properties are prescribed from a file, while sea-ice temperatures are calculated using observed SIC and assuming a 2m thickness of the ice.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"In the SlabPlanet mode, all ocean and sea ice are dynamical models, namely thermal slabs, with different parameters.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"@info mode_name\nif mode_name == \"amip\"\n @info \"AMIP boundary conditions - do not expect energy conservation\"\n\n # ocean\n SST_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sst_data,\n \"SST\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sst, ## convert to Kelvin\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, SST_info)\n SST_init = interpolate_midmonth_to_daily(date0, SST_info)\n ocean_sim = SurfaceStub((;\n T_sfc = SST_init,\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(1e-3),\n z0b = FT(1e-3),\n beta = FT(1),\n α = FT(0.06),\n area_fraction = (FT(1) .- land_fraction),\n phase = TD.Liquid(),\n thermo_params = thermo_params,\n ))\n # sea ice\n SIC_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n sic_data,\n \"SEAICE\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n scaling_function = clean_sic, ## convert to fraction\n land_fraction = land_fraction,\n date0 = date0,\n mono = mono_surface,\n )\n update_midmonth_data!(date0, SIC_info)\n SIC_init = interpolate_midmonth_to_daily(date0, SIC_info)\n ice_fraction = get_ice_fraction.(SIC_init, mono_surface)\n ice_sim = ice_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ice_fraction,\n thermo_params = thermo_params,\n )\n\n # CO2 concentration\n CO2_info = bcfile_info_init(\n FT,\n REGRID_DIR,\n co2_data,\n \"co2\",\n boundary_space,\n comms_ctx,\n interpolate_daily = true,\n land_fraction = ones(boundary_space),\n date0 = date0,\n mono = mono_surface,\n )\n\n update_midmonth_data!(date0, CO2_info)\n CO2_init = interpolate_midmonth_to_daily(date0, CO2_info)\n update_field!(atmos_sim, Val(:co2_gm), CO2_init)\n\n mode_specifics = (; name = mode_name, SST_info = SST_info, SIC_info = SIC_info, CO2_info = CO2_info)\n\nelseif mode_name == \"slabplanet\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = (FT(1) .- land_fraction), ## NB: this ocean fraction includes areas covered by sea ice (unlike the one contained in the cs)\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = SurfaceStub((;\n T_sfc = ClimaCore.Fields.ones(boundary_space),\n ρ_sfc = ClimaCore.Fields.zeros(boundary_space),\n z0m = FT(0),\n z0b = FT(0),\n beta = FT(1),\n α = FT(1),\n area_fraction = ClimaCore.Fields.zeros(boundary_space),\n phase = TD.Ice(),\n thermo_params = thermo_params,\n ))\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\n\nelseif mode_name == \"slabplanet_eisenman\"\n # ocean\n ocean_sim = ocean_init(\n FT;\n tspan = tspan,\n dt = Δt_cpl,\n space = boundary_space,\n saveat = saveat,\n area_fraction = ClimaCore.Fields.zeros(boundary_space), # zero, since ML is calculated below\n thermo_params = thermo_params,\n )\n\n # sea ice (here set to zero area coverage)\n ice_sim = eisenman_seaice_init(\n FT,\n tspan,\n space = boundary_space,\n area_fraction = (FT(1) .- land_fraction),\n dt = Δt_cpl,\n saveat = saveat,\n thermo_params = thermo_params,\n )\n\n mode_specifics = (; name = mode_name, SST_info = nothing, SIC_info = nothing)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupler-Initialization","page":"AMIP Driver","title":"Coupler Initialization","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"The coupler needs to contain exchange information, manage the calendar and be able to access all component models. It can also optionally save online diagnostics. These are all initialized here and saved in a global CouplerSimulation struct, cs.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# coupler exchange fields\ncoupler_field_names = (\n :T_S,\n :z0m_S,\n :z0b_S,\n :ρ_sfc,\n :q_sfc,\n :albedo,\n :beta,\n :F_turb_energy,\n :F_turb_moisture,\n :F_turb_ρτxz,\n :F_turb_ρτyz,\n :F_radiative,\n :P_liq,\n :P_snow,\n :F_radiative_TOA,\n :P_net,\n)\ncoupler_fields =\n NamedTuple{coupler_field_names}(ntuple(i -> ClimaCore.Fields.zeros(boundary_space), length(coupler_field_names)))\n\n# model simulations\nmodel_sims = (atmos_sim = atmos_sim, ice_sim = ice_sim, land_sim = land_sim, ocean_sim = ocean_sim);\n\n# dates\ndates = (; date = [date], date0 = [date0], date1 = [Dates.firstdayofmonth(date0)], new_month = [false])","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Online-Diagnostics","page":"AMIP Driver","title":"Online Diagnostics","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"User can write custom diagnostics in the user_diagnostics.jl.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"monthly_3d_diags = init_diagnostics(\n (:T, :u, :q_tot, :q_liq_ice),\n atmos_sim.domain.center_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_3d_\",\n)\n\nmonthly_2d_diags = init_diagnostics(\n (:precipitation_rate, :toa_fluxes, :T_sfc, :tubulent_energy_fluxes),\n boundary_space;\n save = Monthly(),\n operations = (; accumulate = TimeMean([Int(0)])),\n output_dir = COUPLER_OUTPUT_DIR,\n name_tag = \"monthly_mean_2d_\",\n)\n\ndiagnostics = (monthly_3d_diags, monthly_2d_diags)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Conservation-Checks","page":"AMIP Driver","title":"Initialize Conservation Checks","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"# init conservation info collector\nconservation_checks = nothing\nif energy_check\n @assert(\n mode_name[1:10] == \"slabplanet\" && !CA.is_distributed(ClimaComms.context(boundary_space)),\n \"Only non-distributed slabplanet allowable for energy_check\"\n )\n conservation_checks = (; energy = EnergyConservationCheck(model_sims), water = WaterConservationCheck(model_sims))\nend\n\n# coupler simulation\ncs = CoupledSimulation{FT}(\n comms_ctx,\n dates,\n boundary_space,\n coupler_fields,\n config_dict,\n conservation_checks,\n [tspan[1], tspan[2]],\n atmos_sim.integrator.t,\n Δt_cpl,\n (; land = land_fraction, ocean = zeros(boundary_space), ice = zeros(boundary_space)),\n model_sims,\n mode_specifics,\n diagnostics,\n);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Restart-component-model-states-if-specified","page":"AMIP Driver","title":"Restart component model states if specified","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if restart_dir !== \"unspecified\"\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n restart_model_state!(sim, comms_ctx, restart_t; input_dir = restart_dir)\n end\n end\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Initialize-Component-Model-Exchange","page":"AMIP Driver","title":"Initialize Component Model Exchange","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"turbulent_fluxes = nothing\nif config_dict[\"turb_flux_partition\"] == \"PartitionedStateFluxes\"\n turbulent_fluxes = PartitionedStateFluxes()\nelseif config_dict[\"turb_flux_partition\"] == \"CombinedStateFluxes\"\n turbulent_fluxes = CombinedStateFluxes()\nelse\n error(\"turb_flux_partition must be either PartitionedStateFluxes or CombinedStateFluxes\")\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler combines surface states and calculates rho_sfc using surface and atmos variables","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update_surface_fractions!(cs)\nimport_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nimport_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"each surface component model calculates its own vapor specific humidity (q_sfc)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"TODO: the qsfc calculation follows the design of the bucket qsfc, but it would be neater to abstract this from step!","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"step!(land_sim, Δt_cpl)\nstep!(ocean_sim, Δt_cpl)\nstep!(ice_sim, Δt_cpl)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated surface fields and calculates turbulent fluxes, while updating atmos sfc_conditions","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if turbulent_fluxes isa CombinedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate fluxes using combined surface states on the atmos grid","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta, q_sfc\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the atmos thermo state, sfc_ts\nelseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surface models and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature TODO: this is hard coded and needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # sets T_sfc (but SF calculation not necessary - CA)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"given the new sfc_conditions, atmos calls the radiative flux callback","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"reinit_model_sims!(cs.model_sims) # NB: for atmos this sets a nonzero radiation flux","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"coupler re-imports updated atmos fluxes (radiative fluxes for both turbulent_fluxes types","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"and also turbulent fluxes if turbulent_fluxes isa CombinedStateFluxes, and sends them to the surface component models. If turbulent_fluxes isa PartitionedStateFluxes atmos receives the turbulent fluxes from the coupler.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes)\nupdate_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Coupling-Loop","page":"AMIP Driver","title":"Coupling Loop","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"function solve_coupler!(cs)\n @info \"Starting coupling loop\"\n\n @unpack model_sims, Δt_cpl, tspan = cs\n @unpack atmos_sim, land_sim, ocean_sim, ice_sim = model_sims\n\n # step in time\n walltime = @elapsed for t in ((tspan[1] + Δt_cpl):Δt_cpl:tspan[end])\n\n cs.dates.date[1] = current_date(cs, t) # if not global, `date` is not updated.\n\n # print date on the first of month\n if cs.dates.date[1] >= cs.dates.date1[1]\n @show(cs.dates.date[1])\n end\n\n if cs.mode.name == \"amip\"\n\n # monthly read of boundary condition data for SST and SIC and CO2\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SST_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SST_info)\n end\n SST_current = interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SST_info)\n update_field!(ocean_sim, Val(:surface_temperature), SST_current)\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.SIC_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.SIC_info)\n end\n SIC_current =\n get_ice_fraction.(interpolate_midmonth_to_daily(cs.dates.date[1], cs.mode.SIC_info), mono_surface)\n update_field!(ice_sim, Val(:area_fraction), SIC_current)\n\n if cs.dates.date[1] >= next_date_in_file(cs.mode.CO2_info)\n update_midmonth_data!(cs.dates.date[1], cs.mode.CO2_info)\n end\n CO2_current = interpolate_midmonth_to_daily(date0, CO2_info)\n update_field!(atmos_sim, Val(:co2_gm), CO2_current)\n\n # calculate and accumulate diagnostics at each timestep\n ClimaComms.barrier(comms_ctx)\n accumulate_diagnostics!(cs)\n\n # save and reset monthly averages\n save_diagnostics(cs)\n\n end\n\n # compute global energy\n !isnothing(cs.conservation_checks) ? check_conservation!(cs) : nothing\n\n # run component models sequentially for one coupling timestep (Δt_cpl)\n ClimaComms.barrier(comms_ctx)\n update_model_sims!(cs.model_sims, cs.fields, turbulent_fluxes)\n\n # step sims\n step_model_sims!(cs.model_sims, t)\n\n # exchange combined fields and (if specified) calculate fluxes using combined states\n update_surface_fractions!(cs)\n import_combined_surface_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # i.e. T_sfc, albedo, z0, beta\n if turbulent_fluxes isa CombinedStateFluxes\n combined_turbulent_fluxes!(cs.model_sims, cs.fields, turbulent_fluxes) # this updates the surface thermo state, sfc_ts, in ClimaAtmos (but also unnecessarily calculates fluxes)\n elseif turbulent_fluxes isa PartitionedStateFluxes","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"calculate turbulent fluxes in surfaces and save the weighted average in coupler fields","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" partitioned_turbulent_fluxes!(cs.model_sims, cs.fields, cs.boundary_space, MoninObukhovScheme(), thermo_params)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"update atmos sfc_conditions for surface temperature - TODO: this needs to be simplified (need CA modification)","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":" new_p = get_new_cache(atmos_sim, cs.fields)\n CA.SurfaceConditions.update_surface_conditions!(atmos_sim.integrator.u, new_p, atmos_sim.integrator.t) # to set T_sfc (but SF calculation not necessary - CA modification)\n atmos_sim.integrator.p.sfc_conditions .= new_p.sfc_conditions\n end\n\n import_atmos_fields!(cs.fields, cs.model_sims, cs.boundary_space, turbulent_fluxes) # radiative and/or turbulent\n\n # monthly callbacks\n if trigger_callback(cs, Monthly())\n # step to the next calendar month\n cs.dates.date1[1] += Dates.Month(1)\n # checkpoint model state\n if monthly_checkpoint\n for sim in cs.model_sims\n if get_model_state_vector(sim) !== nothing\n checkpoint_model_state(sim, comms_ctx, Int(t), output_dir = COUPLER_ARTIFACTS_DIR)\n end\n end\n end\n end\n\n end\n @show walltime\n\n return cs\nend\n\n\n# run the coupled simulation\nsolve_coupler!(cs);","category":"page"},{"location":"generated/amip/coupler_driver_modular/#Postprocessing","page":"AMIP Driver","title":"Postprocessing","text":"","category":"section"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"Currently all postprocessing is performed using the root process only.","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"if ClimaComms.iamroot(comms_ctx)\n\n # energy check plots\n if !isnothing(cs.conservation_checks) && cs.mode.name[1:10] == \"slabplanet\"\n @info \"Conservation Check Plots\"\n plot_global_conservation(\n cs.conservation_checks.energy,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_energy_log_bucket.png\"),\n )\n plot_global_conservation(\n cs.conservation_checks.water,\n cs,\n figname1 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_bucket.png\"),\n figname2 = joinpath(COUPLER_ARTIFACTS_DIR, \"total_water_log_bucket.png\"),\n )\n end\n\n # sample animations\n if !is_distributed && config_dict[\"anim\"]\n @info \"Animations\"\n include(\"user_io/viz_explorer.jl\")\n plot_anim(cs, COUPLER_ARTIFACTS_DIR)\n end\n\n # plotting AMIP results\n if cs.mode.name == \"amip\"\n @info \"AMIP plots\"\n\n # ClimaESM\n include(\"user_io/amip_visualizer.jl\")\n post_spec = (;\n T = (:regrid, :zonal_mean),\n u = (:regrid, :zonal_mean),\n q_tot = (:regrid, :zonal_mean),\n toa_fluxes = (:regrid, :horizontal_slice),\n precipitation_rate = (:regrid, :horizontal_slice),\n T_sfc = (:regrid, :horizontal_slice),\n tubulent_energy_fluxes = (:regrid, :horizontal_slice),\n q_liq_ice = (:regrid, :zonal_mean),\n )\n\n plot_spec = (;\n T = (; clims = (190, 320), units = \"K\"),\n u = (; clims = (-50, 50), units = \"m/s\"),\n q_tot = (; clims = (0, 30), units = \"g/kg\"),\n toa_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n precipitation_rate = (clims = (0, 1e-4), units = \"kg/m^2/s\"),\n T_sfc = (clims = (225, 310), units = \"K\"),\n tubulent_energy_fluxes = (; clims = (-250, 250), units = \"W/m^2\"),\n q_liq_ice = (; clims = (0, 10), units = \"g/kg\"),\n )\n amip_data = amip_paperplots(\n post_spec,\n plot_spec,\n COUPLER_OUTPUT_DIR,\n files_root = \".monthly\",\n output_dir = COUPLER_ARTIFACTS_DIR,\n )\n\n # NCEP reanalysis\n @info \"NCEP plots\"\n include(\"user_io/ncep_visualizer.jl\")\n ncep_post_spec = (;\n T = (:zonal_mean,),\n u = (:zonal_mean,),\n q_tot = (:zonal_mean,),\n toa_fluxes = (:horizontal_slice,),\n precipitation_rate = (:horizontal_slice,),\n T_sfc = (:horizontal_slice,),\n tubulent_energy_fluxes = (:horizontal_slice,),\n )\n ncep_plot_spec = plot_spec\n ncep_data = ncep_paperplots(\n ncep_post_spec,\n ncep_plot_spec,\n COUPLER_OUTPUT_DIR,\n output_dir = COUPLER_ARTIFACTS_DIR,\n month_date = cs.dates.date[1],\n ) ## plot data that correspond to the model's last save_hdf5 call (i.e., last month)\n end\n\n # clean up\n rm(COUPLER_OUTPUT_DIR; recursive = true, force = true)\nend","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"","category":"page"},{"location":"generated/amip/coupler_driver_modular/","page":"AMIP Driver","title":"AMIP Driver","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"import ClimaCore.Spaces as Spaces","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"fluxcalculator/#FluxCalculator","page":"FluxCalculator","title":"FluxCalculator","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"This modules contains abstract types and functions to calculate surface fluxes in the coupler, or to call flux calculating functions from the component models.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Fluxes over a heterogeneous surface (e.g., from a gridpoint where atmospheric cell is overlying both land and ocean) can be handled in two different ways:","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Combined fluxes (called with CombinedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated by averaging the surface properties for each gridpoint (e.g., land and ocean temperatures, albedos and roughness lengths are averaged, based on their respective area fractions), so the flux is calculated only once per gridpoint of the grid where we calculate fluxes. This is computationally faster, but it makes the fluxes on surface boundaries more diffuse. Currently, we use this method for calculating radiative fluxes in the atmosphere, and turbulent fluxes in the coupler (on the atmospheric grid). The fluxes are calculated in the atmospheric (host) model's cache, which can be setup to avoid allocating coupler fields.","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"Partitioned fluxes (called with PartitionedStateFluxes())","category":"page"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":"these are calculated separately for each surface type. It is then the fluxes (rather than the surface states) that are combined and passed to the atmospheric model as a boundary condition. This method ensures that each surface model receives fluxes that correspond to its state properties, resulting in a more accurate model evolution. However, it is more computationally expensive, and requires more communication between the component models.","category":"page"},{"location":"fluxcalculator/#FluxCalculator-API","page":"FluxCalculator","title":"FluxCalculator API","text":"","category":"section"},{"location":"fluxcalculator/","page":"FluxCalculator","title":"FluxCalculator","text":" ClimaCoupler.FluxCalculator.TurbulentFluxPartition\n ClimaCoupler.FluxCalculator.PartitionedStateFluxes\n ClimaCoupler.FluxCalculator.CombinedStateFluxes\n ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!\n ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!\n","category":"page"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.TurbulentFluxPartition","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.TurbulentFluxPartition","text":"TurbulentFluxPartition\n\nAbstract type for flags that denote where and how to calculate tubulent fluxes.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.PartitionedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.PartitionedStateFluxes","text":"PartitionedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes should be partitioned and calculated over each surface model and then combined. This is calculated on the coupler grid.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.CombinedStateFluxes","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.CombinedStateFluxes","text":"CombinedStateFluxes <: TurbulentFluxPartition\n\nA flag indicating that the turbulent fluxes (e.g. sensible and latent heat fluxes, drag and moisture fluxes) are to be calculated on the Atmos grid, and saved in Atmos cache.\n\n\n\n\n\n","category":"type"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.combined_turbulent_fluxes!","text":"combined_turbulent_fluxes!(model_sims, csf, turbulent_fluxes::TurbulentFluxPartition)\n\nCalls the method(s) which calculate turbulent surface fluxes from combined surface states in coupler fields, csf.\n\nArguments\n\nmodel_sims: [NamedTuple] containing ComponentModelSimulations.\ncsf: [NamedTuple] containing coupler fields.\nturbulent_fluxes: [TurbulentFluxPartition] denotes a flag for turbulent flux calculation.\n\n\n\n\n\n","category":"function"},{"location":"fluxcalculator/#ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","page":"FluxCalculator","title":"ClimaCoupler.FluxCalculator.atmos_turbulent_fluxes!","text":"atmos_turbulent_fluxes!(sim::Interfacer.ComponentModelSimulation, csf)\n\nA function to calculate turbulent surface fluxes using the combined surface states. It is required that a method is defined for the given sim and that the fluxes are saved in that sim's cache. csf refers to the coupler fields.\n\nArguments\n\nsim: [Interfacer.ComponentModelSimulation] object containing the component model simulation.\ncsf: [NamedTuple] containing coupler fields.\n\nExample:\n\nfunction atmos_turbulent_fluxes!(atmos_sim::ClimaAtmosSimulation, csf)\n atmos_sim.cache.flux .= atmos_sim.c .* (csf.T_S .- atmos_sim.temperature)\nend\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader","page":"BCReader","title":"BCReader","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"This module coordinates reading of boundary conditions from NetCDF files, as well as regridding calls and temporal interpolations from monthly to daily intervals.","category":"page"},{"location":"bcreader/#BCReader-API","page":"BCReader","title":"BCReader API","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.BCFileInfo\nClimaCoupler.BCReader.bcfile_info_init\nClimaCoupler.BCReader.update_midmonth_data!\nClimaCoupler.BCReader.next_date_in_file\nClimaCoupler.BCReader.interpolate_midmonth_to_daily","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.BCFileInfo","page":"BCReader","title":"ClimaCoupler.BCReader.BCFileInfo","text":"BCFileInfo\n\nStores information specific to each boundary condition from a file and each variable.\n\nInputs:\n\nbcfile_dir::b # directory of the BC file\ncomms_ctx::X # communication context used for MPI\nhdoutfileroot::S # filename root for regridded data\nvarname::V # name of the variable\nall_dates::D # vector of all dates contained in the original data file\nmonthly_fields::C # tuple of the two monthly fields, that will be used for the daily interpolation\nscaling_function::O # function that scales, offsets or transforms the raw variable\nland_fraction::M # fraction with 1 = 100% land, 0 = 100% ocean and/or sea-ice\nsegment_idx::Vector{Int} # index of the monthly data in the file\nsegmentidx0::Vector{Int} # `segmentidx` of the file data that is closest to date0\nsegment_length::Vector{Int} # length of each month segment (used in the daily interpolation)\ninterpolate_daily::Bool # switch to trigger daily interpolation\n\n\n\n\n\n","category":"type"},{"location":"bcreader/#ClimaCoupler.BCReader.bcfile_info_init","page":"BCReader","title":"ClimaCoupler.BCReader.bcfile_info_init","text":"bcfile_info_init(\n FT,\n bcfile_dir,\n datafile_rll,\n varname,\n boundary_space,\n comms_ctx;\n interpolate_daily = false,\n segment_idx0 = nothing,\n scaling_function = no_scaling,\n land_fraction = nothing,\n date0 = nothing,\n mono = true,\n)\n\nRegrids from lat-lon grid to cgll grid, saving the output in a new file, and returns the info packaged in a single struct.\n\nArguments\n\nFT: [DataType] Float type.\nbcfile_dir: [String] directory the BC file is stored in.\ndatafile_rll: [String] file containing data to regrid.\nvarname: [String] name of the variable to be regridded.\nboundary_space: [Spaces.AbstractSpace] the space to which we are mapping.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninterpolate_daily: [Bool] switch to trigger daily interpolation.\nsegment_idx0: [Vector{Int}] index of the file data that is closest to date0.\nscaling function: [Function] scales, offsets or transforms varname.\nland_fraction: [Fields.field] fraction with 1 = land, 0 = ocean / sea-ice.\ndate0: [Dates.DateTime] start date of the file data.\nmono: [Bool] flag for monotone remapping of datafile_rll.\n\nReturns\n\nBCFileInfo\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.update_midmonth_data!","page":"BCReader","title":"ClimaCoupler.BCReader.update_midmonth_data!","text":"update_midmonth_data!(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nExtracts boundary condition data from regridded (to model grid) NetCDF files. The times for which data is extracted depends on the specifications in the bcf_info struct).\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] containing boundary condition data.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.next_date_in_file","page":"BCReader","title":"ClimaCoupler.BCReader.next_date_in_file","text":"next_date_in_file(bcf_info)\n\nReturns the next date stored in the file bcfile_info struct after the current date index given by segment_idx. Note: this function does not update segment_idx, so repeated calls will return the same value unless segment_idx is modified elsewhere in between.\n\nArguments\n\nbcf_info: [BCFileInfo] containing the date information.\n\nReturns\n\nDates.DateTime\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpolate_midmonth_to_daily","page":"BCReader","title":"ClimaCoupler.BCReader.interpolate_midmonth_to_daily","text":"interpolate_midmonth_to_daily(date, bcf_info::BCFileInfo{FT}) where {FT}\n\nInterpolates linearly between two Fields in the bcf_info struct, or returns the first Field if interpolation is switched off.\n\nArguments\n\ndate: [Dates.DateTime] start date for data.\nbcf_info: [BCFileInfo] contains fields to be interpolated.\n\nReturns\n\nFields.field\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#BCReader-Internal-Functions","page":"BCReader","title":"BCReader Internal Functions","text":"","category":"section"},{"location":"bcreader/","page":"BCReader","title":"BCReader","text":"ClimaCoupler.BCReader.no_scaling\nClimaCoupler.BCReader.interpol","category":"page"},{"location":"bcreader/#ClimaCoupler.BCReader.no_scaling","page":"BCReader","title":"ClimaCoupler.BCReader.no_scaling","text":"no_scaling(field, bcf_info)\n\nRemap the values of a field onto the space of the bcf_info's land_fraction without scaling.\n\nArguments\n\nfield: [Fields.Field] contains the values to be remapped.\nbcf_info: [BCFileInfo] contains a land_fraction to remap onto the space of.\n\n\n\n\n\n","category":"function"},{"location":"bcreader/#ClimaCoupler.BCReader.interpol","page":"BCReader","title":"ClimaCoupler.BCReader.interpol","text":"interpol(f1::FT, f2::FT, Δt_tt1::FT, Δt_t2t1::FT)\n\nPerforms linear interpolation of f at time t within a segment Δt_t2t1 = (t2 - t1), of fields f1 and f2, with t2 > t1.\n\nArguments\n\nf1: [FT] first value to be interpolated (f(t1) = f1).\nf2: [FT] second value to be interpolated.\nΔt_tt1: [FT] time between t1 and some t (Δt_tt1 = (t - t1)).\nΔt_t2t1: [FT] time between t1 and t2.\n\nReturns\n\nFT\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#TestHelper","page":"TestHelper","title":"TestHelper","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"This module defines helper functions, objects, and constants to be used by various files in the test folder.","category":"page"},{"location":"testhelper/#TestHelper-API","page":"TestHelper","title":"TestHelper API","text":"","category":"section"},{"location":"testhelper/","page":"TestHelper","title":"TestHelper","text":"ClimaCoupler.TestHelper.create_space\nClimaCoupler.TestHelper.gen_ncdata","category":"page"},{"location":"testhelper/#ClimaCoupler.TestHelper.create_space","page":"TestHelper","title":"ClimaCoupler.TestHelper.create_space","text":"create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), \n R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)\n\nInitialize a space on a sphere with the given parameters. Used for debugging and testing.\n\nArguments\n\nFT: [DataType] Float type\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\nR: [FT] radius of the sphere underlying space.\nne: [Integer] number of elements used in the space's mesh.\npolynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).\nnz: [Integer] number of vertical elements\n\n\n\n\n\n","category":"function"},{"location":"testhelper/#ClimaCoupler.TestHelper.gen_ncdata","page":"TestHelper","title":"ClimaCoupler.TestHelper.gen_ncdata","text":"gen_ncdata(FT, path, varname, val)\n\nCreate an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.\n\nArguments\n\nFT: [DataType] Float type.\npath: [String] location to store output datafile.\nvarname: [Symbol] variable name.\nval: [FT] value to store as varname at all indices.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder","page":"Regridder","title":"Regridder","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"This module contains functions to regrid information between spaces. Many of the functions used in this module call TempestRemap functions via ClimaCoreTempestRemap wrappers.","category":"page"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"Information about the TempestRemap library can be found here. Multiple remapping approaches from TempestRemap have been tested with our implementation, and information about them is located here.","category":"page"},{"location":"regridder/#Regridder-API","page":"Regridder","title":"Regridder API","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.write_to_hdf5\nClimaCoupler.Regridder.read_from_hdf5\nClimaCoupler.Regridder.dummmy_remap!\nClimaCoupler.Regridder.remap_field_cgll_to_rll\nClimaCoupler.Regridder.land_fraction\nClimaCoupler.Regridder.update_surface_fractions!\nClimaCoupler.Regridder.combine_surfaces!","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.write_to_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.write_to_hdf5","text":"write_to_hdf5(REGRID_DIR, hd_outfile_root, time, field, varname, comms_ctx)\n\nFunction to save individual HDF5 files after remapping. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nfield: [Fields.Field] object to be written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.read_from_hdf5","page":"Regridder","title":"ClimaCoupler.Regridder.read_from_hdf5","text":"read_from_hdf5(REGIRD_DIR, hd_outfile_root, time, varname, comms_ctx)\n\nRead in a variable varname from an HDF5 file. If a CommsContext other than SingletonCommsContext is used for comms_ctx, the input HDF5 file must be readable by multiple MPI processes.\n\nArguments\n\nREGRID_DIR: [String] directory to save output files in.\nhd_outfile_root: [String] root of the output file name.\ntime: [Dates.DateTime] the timestamp of the data being written.\nvarname: [String] variable name of data.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\n\nReturns\n\nField or FieldVector\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.dummmy_remap!","page":"Regridder","title":"ClimaCoupler.Regridder.dummmy_remap!","text":"dummmy_remap!(target, source)\n\nSimple stand-in function for remapping. For AMIP we don't need regridding of surface model fields. When we do, we re-introduce the ClimaCoreTempestRemap remapping functions.\n\nArguments\n\ntarget: [Fields.Field] destination of remapping.\nsource: [Fields.Field] source of remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.remap_field_cgll_to_rll","page":"Regridder","title":"ClimaCoupler.Regridder.remap_field_cgll_to_rll","text":"remap_field_cgll_to_rll(\n name,\n field::Fields.Field,\n remap_tmpdir,\n datafile_rll;\n nlat = 90,\n nlon = 180\n)\n\nRemap an individual FT-valued Field from model (CGLL) nodes to a lat-lon (RLL) grid using TempestRemap.\n\nArguments\n\nname: [Symbol] variable name.\nfield: [Fields.Field] data to be remapped.\nremap_tmpdir: [String] directory used for remapping.\ndatafile_rll: [String] filename of remapped data output.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.land_fraction","page":"Regridder","title":"ClimaCoupler.Regridder.land_fraction","text":"function land_fraction(\n FT,\n REGRID_DIR,\n comms_ctx::ClimaComms.AbstractCommsContext,\n infile,\n varname,\n boundary_space;\n outfile_root = \"land_sea_cgll\",\n mono = false,\n threshold = 0.7,\n)\n\nInitialize a fraction for land/sea classification of grid squares over the space. With mono = true, remappings are monotone and conservative, (slower). With mono = false, values outside of threshold are cutoff (faster).\n\nSee https://github.com/CliMA/ClimaCoupler.jl/wiki/ClimaCoupler-Lessons-Learned for a detailed comparison of remapping approaches.\n\nArguments\n\nFT: [DataType] Float type\nREGRID_DIR: [String] directory to save output files in.\ncomms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.\ninfile: [String] filename containing input data.\nvarname: [Symbol] variable name.\nboundary_space: [Spaces.AbstractSpace] over which we are mapping data.\noutfile_root: [String] root for output file name.\nmono: [Bool] flag for monotone remapping.\nthreshold: [FT] cutoff value for binary_mask when non-monotone remapping.\n\nReturns\n\nFields.Field\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.update_surface_fractions!","page":"Regridder","title":"ClimaCoupler.Regridder.update_surface_fractions!","text":"update_surface_fractions!(cs::CoupledSimulation)\n\nUpdates dynamically changing area fractions. Maintains the invariant that the sum of area fractions is 1 at all points.\n\nArguments\n\ncs: [CoupledSimulation] containing area fraction information.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.combine_surfaces!","page":"Regridder","title":"ClimaCoupler.Regridder.combine_surfaces!","text":"combine_surfaces!(combined_field::Fields.Field, sims, field_name::Val)\n\nSums the fields, specified by field_name, weighted by the respective area fractions of all surface simulations. THe result is saved in combined_field.\n\nArguments\n\ncombined_field: [Fields.Field] output object containing weighted values.\nsims: [NamedTuple] containing simulations .\nfield_name: [Val] containing the name Symbol of the field t be extracted by the get_field functions.\n\nExample\n\ncombine_surfaces!(zeros(boundary_space), cs.model_sims, Val(:surface_temperature))\n\n\n\n\n\n","category":"function"},{"location":"regridder/#Regridder-Internal-Functions","page":"Regridder","title":"Regridder Internal Functions","text":"","category":"section"},{"location":"regridder/","page":"Regridder","title":"Regridder","text":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!\nClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll\nClimaCoupler.Regridder.write_datafile_cc\nClimaCoupler.Regridder.binary_mask","category":"page"},{"location":"regridder/#ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","page":"Regridder","title":"ClimaCoupler.Regridder.reshape_cgll_sparse_to_field!","text":"reshape_cgll_sparse_to_field!(field::Fields.Field, in_array::Array, R)\n\nReshapes a sparse vector array in_array (CGLL, raw output of the TempestRemap), and uses its data to populate the input Field object field. Redundant nodes are populated using dss operations.\n\nArguments\n\nfield: [Fields.Field] object populated with the input array.\nin_array: [Array] input used to fill field.\nR: [NamedTuple] containing target_idxs and row_indices used for indexing.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","page":"Regridder","title":"ClimaCoupler.Regridder.hdwrite_regridfile_rll_to_cgll","text":"hdwrite_regridfile_rll_to_cgll(\n FT,\n REGRID_DIR,\n datafile_rll,\n varname,\n space;\n hd_outfile_root = \"data_cgll\",\n mono = false,\n)\n\nReads and regrids data of the varname variable from an input NetCDF file and saves it as another NetCDF file using Tempest Remap. The input NetCDF fileneeds to be Exodus formatted, and can contain time-dependent data. The output NetCDF file is then read back, the output arrays converted into Fields and saved as HDF5 files (one per time slice). This function should be called by the root process. The saved regridded HDF5 output is readable by multiple MPI processes.\n\nArguments\n\nFT: [DataType] Float type.\nREGRID_DIR: [String] directory to save output files in.\ndatafile_rll: [String] filename of RLL dataset to be mapped to CGLL.\nvarname: [String] the name of the variable to be remapped.\nspace: [Spaces.AbstractSpace] the space to which we are mapping.\nhd_outfile_root: [String] root of the output file name.\nmono: [Bool] flag to specify monotone remapping.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.write_datafile_cc","page":"Regridder","title":"ClimaCoupler.Regridder.write_datafile_cc","text":"write_datafile_cc(datafile_cc, field, name)\n\nWrite the data stored in field to an NCDataset file datafile_cc.\n\nArguments\n\ndatafile_cc: [String] filename of output file.\nfield: [Fields.Field] to be written to file.\nname: [Symbol] variable name.\n\n\n\n\n\n","category":"function"},{"location":"regridder/#ClimaCoupler.Regridder.binary_mask","page":"Regridder","title":"ClimaCoupler.Regridder.binary_mask","text":"binary_mask(var::FT; threshold = 0.5)\n\nConverts a number var to 1, if var is greater or equal than a given threshold value, or 0 otherwise, keeping the same type.\n\nArguments\n\nvar: [FT] value to be converted.\nthreshold: [Float] cutoff value for conversions.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"conservation/#Conservation-Checks","page":"Conservation Checks","title":"Conservation Checks","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"If the model is a physically closed system (e.g., in the slabplanet configuration with free slip conditions), it should conserve mass (including water), energy and momentum. The conservation checker logs global conservation.","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Only energy and water are currently implemented. ","category":"page"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"Note that kinetic energy is not included in the calculation of the global energy, reflecting the formulation on ClimaAtmos, which assumes that kinetic energy is negligible in comparison with the moist static energy components. ","category":"page"},{"location":"conservation/#Coupler-Object-API","page":"Conservation Checks","title":"Coupler Object API","text":"","category":"section"},{"location":"conservation/","page":"Conservation Checks","title":"Conservation Checks","text":"ClimaCoupler.ConservationChecker.EnergyConservationCheck\nClimaCoupler.ConservationChecker.WaterConservationCheck\nClimaCoupler.ConservationChecker.check_conservation!\nClimaCoupler.ConservationChecker.plot_global_conservation","category":"page"},{"location":"conservation/#ClimaCoupler.ConservationChecker.EnergyConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.EnergyConservationCheck","text":"EnergyConservationCheck{A} <: AbstractConservationCheck\n\nStruct of type AbstractConservationCheck containing global energy conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.WaterConservationCheck","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.WaterConservationCheck","text":"WaterConservationCheck{A} <: AbstractConservationCheck\n\nStruct of type AbstractConservationCheck containing global water mass conservation logs.\n\n\n\n\n\n","category":"type"},{"location":"conservation/#ClimaCoupler.ConservationChecker.check_conservation!","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.check_conservation!","text":"check_conservation!(coupler_sim::Interfacer.CoupledSimulation; runtime_check = false)\n\nitertes over all specified conservation checks.\n\n\n\n\n\n check_conservation!(\n cc::EnergyConservationCheck,\n coupler_sim::Interfacer.CoupledSimulation,\n runtime_check = false,\n )\n\ncomputes the total energy, ∫ ρe dV, of the model components of the coupled simulations and the TOA radiation, and updates cc with these values.\n\n\n\n\n\ncheck_conservation!(\ncc::WaterConservationCheck,\ncoupler_sim::Interfacer.CoupledSimulation,\nruntime_check = false,\n)\n\ncomputes the total water, ∫ ρq_tot dV, of the various components of the coupled simulations, and updates cc with the values.\n\nNote: in the future this should not use push!.\n\n\n\n\n\n","category":"function"},{"location":"conservation/#ClimaCoupler.ConservationChecker.plot_global_conservation","page":"Conservation Checks","title":"ClimaCoupler.ConservationChecker.plot_global_conservation","text":"plot_global_conservation(\n cc::EnergyConservationCheck,\n coupler_sim::Interfacer.CoupledSimulation;\n figname1 = \"total_energy.png\",\n figname2 = \"total_energy_log.png\",\n)\n\nCreates two plots of the globally integrated quantity (energy, rho e):\n\nglobal quantity of each model component as a function of time,\n\nrelative to the initial value;\n\nfractional change in the sum of all components over time on a log scale.\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#TimeManager","page":"TimeManager","title":"TimeManager","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.","category":"page"},{"location":"timemanager/#TimeManager-API","page":"TimeManager","title":"TimeManager API","text":"","category":"section"},{"location":"timemanager/","page":"TimeManager","title":"TimeManager","text":"ClimaCoupler.TimeManager.current_date\nClimaCoupler.TimeManager.strdate_to_datetime\nClimaCoupler.TimeManager.datetime_to_strdate\nClimaCoupler.TimeManager.trigger_callback\nClimaCoupler.TimeManager.Monthly\nClimaCoupler.TimeManager.EveryTimestep","category":"page"},{"location":"timemanager/#ClimaCoupler.TimeManager.current_date","page":"TimeManager","title":"ClimaCoupler.TimeManager.current_date","text":"current_date(cs::CoupledSimulation, t::Int)\n\nReturn the model date at the current timestep.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\nt: [Real] number of seconds since simulation began\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.strdate_to_datetime","page":"TimeManager","title":"ClimaCoupler.TimeManager.strdate_to_datetime","text":"strdate_to_datetime(strdate::String)\n\nConvert from String (\"YYYYMMDD\") to Date format, required by the official AMIP input files.\n\nArguments\n\nstrdate: [String] to be converted to Date type\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.datetime_to_strdate","page":"TimeManager","title":"ClimaCoupler.TimeManager.datetime_to_strdate","text":"datetime_to_strdate(datetime::DateTime)\n\nConvert from Date to String (\"YYYYMMDD\") format.\n\nArguments\n\ndatetime: [DateTime] object to be converted to string\n\n\n\n\n\n","category":"function"},{"location":"timemanager/#ClimaCoupler.TimeManager.trigger_callback","page":"TimeManager","title":"ClimaCoupler.TimeManager.trigger_callback","text":"trigger_callback(cs, ::Monthly)\n\nReturns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.\n\nArguments\n\ncs: [CoupledSimulation] containing info about the simulation\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nModule for atmos-ocean-land coupled simulations.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nA subtype of the abstract type AbstractCoupledSimulation representing a model simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation sim by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR459/siteinfo.js b/previews/PR459/siteinfo.js new file mode 100644 index 000000000..071e28244 --- /dev/null +++ b/previews/PR459/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR459"; diff --git a/previews/PR459/testhelper/index.html b/previews/PR459/testhelper/index.html new file mode 100644 index 000000000..86f8e362f --- /dev/null +++ b/previews/PR459/testhelper/index.html @@ -0,0 +1,3 @@ + +TestHelper · ClimaCoupler.jl

                                          TestHelper

                                          This module defines helper functions, objects, and constants to be used by various files in the test folder.

                                          TestHelper API

                                          ClimaCoupler.TestHelper.create_spaceFunction
                                          create_space(FT; comms_ctx = ClimaComms.SingletonCommsContext(), 
                                          +    R = FT(6371e3), ne = 4, polynomial_degree = 3, nz = 1)

                                          Initialize a space on a sphere with the given parameters. Used for debugging and testing.

                                          Arguments

                                          • FT: [DataType] Float type
                                          • comms_ctx: [ClimaComms.AbstractCommsContext] context used for this operation.
                                          • R: [FT] radius of the sphere underlying space.
                                          • ne: [Integer] number of elements used in the space's mesh.
                                          • polynomial_degree: [Integer] degree of the polynomial used to represent the space (number of GLL nodes - 1).
                                          • nz: [Integer] number of vertical elements
                                          source
                                          ClimaCoupler.TestHelper.gen_ncdataFunction
                                          gen_ncdata(FT, path, varname, val)

                                          Create an NCDataset with lat/lon dimensions containing the value val for the variable varname, and store it at path.

                                          Arguments

                                          • FT: [DataType] Float type.
                                          • path: [String] location to store output datafile.
                                          • varname: [Symbol] variable name.
                                          • val: [FT] value to store as varname at all indices.
                                          source
                                          diff --git a/previews/PR459/timemanager/index.html b/previews/PR459/timemanager/index.html new file mode 100644 index 000000000..65829c18e --- /dev/null +++ b/previews/PR459/timemanager/index.html @@ -0,0 +1,2 @@ + +TimeManager · ClimaCoupler.jl

                                          TimeManager

                                          This module contains functions that handle dates and times in simulations. The functions in this module often call functions from Julia's Dates module.

                                          TimeManager API

                                          ClimaCoupler.TimeManager.current_dateFunction
                                          current_date(cs::CoupledSimulation, t::Int)

                                          Return the model date at the current timestep.

                                          Arguments

                                          • cs: [CoupledSimulation] containing info about the simulation
                                          • t: [Real] number of seconds since simulation began
                                          source
                                          ClimaCoupler.TimeManager.trigger_callbackFunction
                                          trigger_callback(cs, ::Monthly)

                                          Returns true if the current date is equal to or exceeds the saved first of the month at time of 00:00:00.

                                          Arguments

                                          • cs: [CoupledSimulation] containing info about the simulation
                                          source
                                          Missing docstring.

                                          Missing docstring for ClimaCoupler.TimeManager.Monthly. Check Documenter's build log for details.

                                          Missing docstring.

                                          Missing docstring for ClimaCoupler.TimeManager.EveryTimestep. Check Documenter's build log for details.

                                          diff --git a/previews/PR459/timestepping/index.html b/previews/PR459/timestepping/index.html new file mode 100644 index 000000000..48e0054f7 --- /dev/null +++ b/previews/PR459/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                          Coupled Simulations & Timestepping

                                          ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                          Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                          • step!: advances the component model in time
                                          • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                          • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                          ClimaCoupler.run!Function
                                          run!(::CoupledSimulation)

                                          A simple outer timestepping loop for coupled system runs.

                                          This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                          source
                                          ClimaCoupler.step!Function
                                          step!(sim, dt)

                                          Advances a simulation sim by dt.

                                          Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                          source
                                          ClimaCoupler.coupler_push!Function
                                          coupler_push!(coupler::CouplerState, model)

                                          Update coupler with fields retrieved from the coupler.

                                          coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                          source
                                          ClimaCoupler.coupler_pull!Function
                                          coupler_pull!(model, coupler::CouplerState)

                                          Update model with fields retrieved from the coupler.

                                          coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                          source
                                          diff --git a/previews/PR459/utilities/index.html b/previews/PR459/utilities/index.html new file mode 100644 index 000000000..436e8d323 --- /dev/null +++ b/previews/PR459/utilities/index.html @@ -0,0 +1,2 @@ + +Utilities · ClimaCoupler.jl

                                          Utilities

                                          This module contains functions, objects, and constants used by various modules in the coupler.

                                          Utilities API

                                          Missing docstring.

                                          Missing docstring for ClimaCoupler.Utilities.CouplerSimulation. Check Documenter's build log for details.

                                          Missing docstring.

                                          Missing docstring for ClimaCoupler.Utilities.float_type. Check Documenter's build log for details.

                                          ClimaCoupler.Utilities.swap_space!Function
                                          swap_space!(field_out::Fields.Field, field_in::Fields.Field)

                                          Remap the values of a field onto a new space.

                                          Arguments

                                          • field_in: [Fields.Field] to be remapped to new space.
                                          • field_out: [Fields.Field] to remap field_in to.
                                          source
                                          diff --git a/previews/PR50/assets/documenter.js b/previews/PR50/assets/documenter.js new file mode 100644 index 000000000..15dc682b9 --- /dev/null +++ b/previews/PR50/assets/documenter.js @@ -0,0 +1,264 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) { +$(document).ready(function() { + hljs.initHighlighting(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR50/assets/logo.svg b/previews/PR50/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR50/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR50/assets/search.js b/previews/PR50/assets/search.js new file mode 100644 index 000000000..71ebd87ed --- /dev/null +++ b/previews/PR50/assets/search.js @@ -0,0 +1,251 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.6/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                        • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR50/assets/themes/documenter-dark.css b/previews/PR50/assets/themes/documenter-dark.css new file mode 100644 index 000000000..f866234ff --- /dev/null +++ b/previews/PR50/assets/themes/documenter-dark.css @@ -0,0 +1,7642 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close, .is-unselectable, html.theme--documenter-dark .button, html.theme--documenter-dark .file, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after, html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .box:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:focus, html.theme--documenter-dark .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .delete:active, html.theme--documenter-dark .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete, html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.delete, html.theme--documenter-dark .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.delete, html.theme--documenter-dark .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .button.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, html.theme--documenter-dark .modal, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .button, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .button:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .is-active.button, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis { + outline: none; } + html.theme--documenter-dark .button[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], + fieldset[disabled] html.theme--documenter-dark .button, + html.theme--documenter-dark fieldset[disabled] .button, + fieldset[disabled] html.theme--documenter-dark .input, + html.theme--documenter-dark fieldset[disabled] .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + html.theme--documenter-dark fieldset[disabled] .textarea, + fieldset[disabled] html.theme--documenter-dark .select select, + html.theme--documenter-dark .select fieldset[disabled] select, + fieldset[disabled] html.theme--documenter-dark .file-cta, + html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, + fieldset[disabled] html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                                          that is identified by id #documenter. + */ + /* a11y-dark theme */ + /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ + /* @author: ericwbailey */ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #e74c3c; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark, + fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], + fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag:not(body).is-white, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-white, html.theme--documenter-dark .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag:not(body).is-black, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-black, html.theme--documenter-dark .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag:not(body).is-light, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-light, html.theme--documenter-dark .content kbd:not(body).is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag:not(body).is-dark, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-dark, html.theme--documenter-dark .content kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag:not(body).is-primary, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body).is-primary { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-link, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-link, html.theme--documenter-dark .content kbd:not(body).is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-info, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-info, html.theme--documenter-dark .content kbd:not(body).is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-success, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-success, html.theme--documenter-dark .content kbd:not(body).is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-warning, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-warning, html.theme--documenter-dark .content kbd:not(body).is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-danger, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-danger, html.theme--documenter-dark .content kbd:not(body).is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-normal, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-normal, html.theme--documenter-dark .content kbd:not(body).is-normal { + font-size: 0.85em; } + html.theme--documenter-dark .tag:not(body).is-medium, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-medium, html.theme--documenter-dark .content kbd:not(body).is-medium { + font-size: 15px; } + html.theme--documenter-dark .tag:not(body).is-large, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-large, html.theme--documenter-dark .content kbd:not(body).is-large { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body).is-delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete, html.theme--documenter-dark .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before, html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag:not(body).is-delete:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, html.theme--documenter-dark .content kbd:not(body).is-delete:hover, html.theme--documenter-dark .tag:not(body).is-delete:focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, html.theme--documenter-dark .content kbd:not(body).is-delete:focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag:not(body).is-delete:active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:active, html.theme--documenter-dark .content kbd:not(body).is-delete:active { + background-color: #111414; } + html.theme--documenter-dark .tag:not(body).is-rounded, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-rounded, html.theme--documenter-dark .content kbd:not(body).is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .select select.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], + fieldset[disabled] html.theme--documenter-dark .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + fieldset[disabled] html.theme--documenter-dark .select select { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .select select[disabled]::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .select select[disabled]:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly], html.theme--documenter-dark .textarea[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white, html.theme--documenter-dark .is-white.textarea { + border-color: white; } + html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-active, html.theme--documenter-dark .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black, html.theme--documenter-dark .is-black.textarea { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-active, html.theme--documenter-dark .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light, html.theme--documenter-dark .is-light.textarea { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-active, html.theme--documenter-dark .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark .content kbd.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link, html.theme--documenter-dark .is-link.textarea { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-active, html.theme--documenter-dark .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info, html.theme--documenter-dark .is-info.textarea { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-active, html.theme--documenter-dark .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success, html.theme--documenter-dark .is-success.textarea { + border-color: #008438; } + html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-active, html.theme--documenter-dark .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning, html.theme--documenter-dark .is-warning.textarea { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, html.theme--documenter-dark .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger, html.theme--documenter-dark .is-danger.textarea { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, html.theme--documenter-dark .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .is-small.textarea { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium, html.theme--documenter-dark .is-medium.textarea { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large, html.theme--documenter-dark .is-large.textarea { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth, html.theme--documenter-dark .is-fullwidth.textarea { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline, html.theme--documenter-dark .is-inline.textarea { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .checkbox, html.theme--documenter-dark .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .checkbox input, html.theme--documenter-dark .radio input { + cursor: pointer; } + html.theme--documenter-dark .checkbox:hover, html.theme--documenter-dark .radio:hover { + color: #8c9b9d; } + html.theme--documenter-dark .checkbox[disabled], html.theme--documenter-dark .radio[disabled], + fieldset[disabled] html.theme--documenter-dark .checkbox, + fieldset[disabled] html.theme--documenter-dark .radio { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, + fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .content kbd { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; + padding: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs { + display: block; + overflow-x: auto; + background: #2b2b2b; + color: #f8f8f2; + padding: 0.5em; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR50/assets/themes/documenter-light.css b/previews/PR50/assets/themes/documenter-light.css new file mode 100644 index 000000000..57fdf947d --- /dev/null +++ b/previews/PR50/assets/themes/documenter-light.css @@ -0,0 +1,7630 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child), .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .delete::before, .modal-close::before { + height: 2px; + width: 50%; } + .delete::after, .modal-close::after { + height: 50%; + width: 2px; } + .delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + .delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete, .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.button, .input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .button:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .file-cta:focus, + .file-name:focus, .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .is-focused.button, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, + .is-focused.file-name, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .button:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .file-cta:active, + .file-name:active, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .is-active.button, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active, .is-active.file-cta, + .is-active.file-name, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis { + outline: none; } + .button[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], + .file-name[disabled], .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], + fieldset[disabled] .button, + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select, + fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, + fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #7a7a7a !important; } + +.has-background-grey { + background-color: #7a7a7a !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #2e63b8; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], + fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], + fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], + fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], + fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], + fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], + fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], + fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], + fieldset[disabled] .button.is-dark, + fieldset[disabled] .content kbd.button, + .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], + fieldset[disabled] .button.is-dark.is-inverted, + fieldset[disabled] .content kbd.button.is-inverted, + .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-outlined, + fieldset[disabled] .content kbd.button.is-outlined, + .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] .content kbd.button.is-inverted.is-outlined, + .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary, + fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted, + fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], + fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], + fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], + fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], + fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], + fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], + fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], + fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], + fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], + fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], + fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], + fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } + +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .docstring > section > a.docs-sourcelink, .tags .content kbd, .content .tags kbd { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .docstring > section > a.docs-sourcelink, .tags.is-centered .content kbd, .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .docstring > section > a.docs-sourcelink, .tags.has-addons .content kbd, .content .tags.has-addons kbd { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete, .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag:not(body).is-white, .docstring > section > a.docs-sourcelink:not(body).is-white, .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + .tag:not(body).is-black, .docstring > section > a.docs-sourcelink:not(body).is-black, .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + .tag:not(body).is-light, .docstring > section > a.docs-sourcelink:not(body).is-light, .content kbd:not(body).is-light { + background-color: whitesmoke; + color: #363636; } + .tag:not(body).is-dark, .docstring > section > a.docs-sourcelink:not(body).is-dark, .content kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag:not(body).is-primary, .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body).is-primary { + background-color: #4eb5de; + color: #fff; } + .tag:not(body).is-link, .docstring > section > a.docs-sourcelink:not(body).is-link, .content kbd:not(body).is-link { + background-color: #2e63b8; + color: #fff; } + .tag:not(body).is-info, .docstring > section > a.docs-sourcelink:not(body).is-info, .content kbd:not(body).is-info { + background-color: #209cee; + color: #fff; } + .tag:not(body).is-success, .docstring > section > a.docs-sourcelink:not(body).is-success, .content kbd:not(body).is-success { + background-color: #22c35b; + color: #fff; } + .tag:not(body).is-warning, .docstring > section > a.docs-sourcelink:not(body).is-warning, .content kbd:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag:not(body).is-danger, .docstring > section > a.docs-sourcelink:not(body).is-danger, .content kbd:not(body).is-danger { + background-color: #da0b00; + color: #fff; } + .tag:not(body).is-normal, .docstring > section > a.docs-sourcelink:not(body).is-normal, .content kbd:not(body).is-normal { + font-size: 0.75rem; } + .tag:not(body).is-medium, .docstring > section > a.docs-sourcelink:not(body).is-medium, .content kbd:not(body).is-medium { + font-size: 1rem; } + .tag:not(body).is-large, .docstring > section > a.docs-sourcelink:not(body).is-large, .content kbd:not(body).is-large { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag:not(body).is-delete, .docstring > section > a.docs-sourcelink:not(body).is-delete, .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before, .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + .tag:not(body).is-delete:hover, .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, .content kbd:not(body).is-delete:hover, .tag:not(body).is-delete:focus, .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, .content kbd:not(body).is-delete:focus { + background-color: #e8e8e8; } + .tag:not(body).is-delete:active, .docstring > section > a.docs-sourcelink:not(body).is-delete:active, .content kbd:not(body).is-delete:active { + background-color: #dbdbdb; } + .tag:not(body).is-rounded, .docstring > section > a.docs-sourcelink:not(body).is-rounded, .content kbd:not(body).is-rounded, #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .docstring > section > a.docs-sourcelink, .title .content kbd, .content .title kbd, + .subtitle .tag, + .subtitle .docstring > section > a.docs-sourcelink, + .subtitle .content kbd, + .content .subtitle kbd { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .textarea:hover, .select select:hover, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; } + .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; } + .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, + fieldset[disabled] .input::-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder, + fieldset[disabled] .textarea::-moz-placeholder, + fieldset[disabled] .select select::-moz-placeholder, + .select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] .input::-webkit-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] .textarea::-webkit-input-placeholder, + fieldset[disabled] .select select::-webkit-input-placeholder, + .select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, + fieldset[disabled] .input:-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder, + fieldset[disabled] .textarea:-moz-placeholder, + fieldset[disabled] .select select:-moz-placeholder, + .select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] .input:-ms-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] .textarea:-ms-input-placeholder, + fieldset[disabled] .select select:-ms-input-placeholder, + .select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly], .textarea[readonly] { + box-shadow: none; } + .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white, .is-white.textarea { + border-color: white; } + .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.textarea:focus, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, .is-white.is-focused.textarea, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.textarea:active, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-active, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black, .is-black.textarea { + border-color: #0a0a0a; } + .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.textarea:focus, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, .is-black.is-focused.textarea, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.textarea:active, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-active, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light, .is-light.textarea { + border-color: whitesmoke; } + .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.textarea:focus, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, .is-light.is-focused.textarea, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.textarea:active, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-active, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.input, .content kbd.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .is-dark.textarea, .content kbd.textarea { + border-color: #363636; } + .is-dark.input:focus, .content kbd.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.is-focused.input, .content kbd.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.input:active, .content kbd.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.is-active.input, .content kbd.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, .is-dark.is-active.textarea, .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.input, .docstring > section > a.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary, .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.input:focus, .docstring > section > a.input.docs-sourcelink:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.is-focused.input, .docstring > section > a.is-focused.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.input:active, .docstring > section > a.input.docs-sourcelink:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.is-active.input, .docstring > section > a.is-active.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link, .is-link.textarea { + border-color: #2e63b8; } + .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.textarea:focus, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, .is-link.is-focused.textarea, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.textarea:active, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-active, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info, .is-info.textarea { + border-color: #209cee; } + .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.textarea:focus, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, .is-info.is-focused.textarea, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.textarea:active, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-active, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success, .is-success.textarea { + border-color: #22c35b; } + .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.textarea:focus, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, .is-success.is-focused.textarea, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.textarea:active, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-active, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning, .is-warning.textarea { + border-color: #ffdd57; } + .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, .is-warning.is-focused.textarea, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.textarea:active, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger, .is-danger.textarea { + border-color: #da0b00; } + .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, .is-danger.is-focused.textarea, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.textarea:active, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.input, #documenter .docs-sidebar form.docs-search > input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium, .is-medium.textarea { + font-size: 1.25rem; } + .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large, .is-large.textarea { + font-size: 1.5rem; } + .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth, .is-fullwidth.textarea { + display: block; + width: 100%; } + .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline, .is-inline.textarea { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .checkbox input, .radio input { + cursor: pointer; } + .checkbox:hover, .radio:hover { + color: #363636; } + .checkbox[disabled], .radio[disabled], + fieldset[disabled] .checkbox, + fieldset[disabled] .radio { + color: #7a7a7a; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, + fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #7a7a7a; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]).is-hovered, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input:not([disabled]).is-focused, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input:not([disabled]).is-active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select:not([disabled]).is-focused, + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input:not([disabled]).is-focused:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input:not([disabled]).is-active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select:not([disabled]).is-focused:hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, + .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon, + .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } + +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537e; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1em 1.25em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #2e63b8; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.33333%; } + .column.is-offset-1-mobile { + margin-left: 8.33333%; } + .column.is-2-mobile { + flex: none; + width: 16.66667%; } + .column.is-offset-2-mobile { + margin-left: 16.66667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.33333%; } + .column.is-offset-4-mobile { + margin-left: 33.33333%; } + .column.is-5-mobile { + flex: none; + width: 41.66667%; } + .column.is-offset-5-mobile { + margin-left: 41.66667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.33333%; } + .column.is-offset-7-mobile { + margin-left: 58.33333%; } + .column.is-8-mobile { + flex: none; + width: 66.66667%; } + .column.is-offset-8-mobile { + margin-left: 66.66667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.33333%; } + .column.is-offset-10-mobile { + margin-left: 83.33333%; } + .column.is-11-mobile { + flex: none; + width: 91.66667%; } + .column.is-offset-11-mobile { + margin-left: 91.66667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.33333%; } + .column.is-offset-1-touch { + margin-left: 8.33333%; } + .column.is-2-touch { + flex: none; + width: 16.66667%; } + .column.is-offset-2-touch { + margin-left: 16.66667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.33333%; } + .column.is-offset-4-touch { + margin-left: 33.33333%; } + .column.is-5-touch { + flex: none; + width: 41.66667%; } + .column.is-offset-5-touch { + margin-left: 41.66667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.33333%; } + .column.is-offset-7-touch { + margin-left: 58.33333%; } + .column.is-8-touch { + flex: none; + width: 66.66667%; } + .column.is-offset-8-touch { + margin-left: 66.66667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.33333%; } + .column.is-offset-10-touch { + margin-left: 83.33333%; } + .column.is-11-touch { + flex: none; + width: 91.66667%; } + .column.is-offset-11-touch { + margin-left: 91.66667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.33333%; } + .column.is-offset-1-desktop { + margin-left: 8.33333%; } + .column.is-2-desktop { + flex: none; + width: 16.66667%; } + .column.is-offset-2-desktop { + margin-left: 16.66667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.33333%; } + .column.is-offset-4-desktop { + margin-left: 33.33333%; } + .column.is-5-desktop { + flex: none; + width: 41.66667%; } + .column.is-offset-5-desktop { + margin-left: 41.66667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.33333%; } + .column.is-offset-7-desktop { + margin-left: 58.33333%; } + .column.is-8-desktop { + flex: none; + width: 66.66667%; } + .column.is-offset-8-desktop { + margin-left: 66.66667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.33333%; } + .column.is-offset-10-desktop { + margin-left: 83.33333%; } + .column.is-11-desktop { + flex: none; + width: 91.66667%; } + .column.is-offset-11-desktop { + margin-left: 91.66667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.33333%; } + .tile.is-2 { + flex: none; + width: 16.66667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.33333%; } + .tile.is-5 { + flex: none; + width: 41.66667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.33333%; } + .tile.is-8 { + flex: none; + width: 66.66667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.33333%; } + .tile.is-11 { + flex: none; + width: 91.66667%; } + .tile.is-12 { + flex: none; + width: 100%; } } + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .content kbd.hero .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover, .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } + +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #b8dffa; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #9beeb8; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ff857e; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: #fff; } + .admonition.is-compat { + background-color: #99e6f0; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 1em 1.25em; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; + padding: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +/* This file contain the overall layout. + * + * The main container is
                                          that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; } + +/* Base color: saturation 0; */ +.hljs, +.hljs-subst { + color: #444; } + +.hljs-comment { + color: #888888; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR50/assets/themeswap.js b/previews/PR50/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR50/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR50/couplerstate/index.html b/previews/PR50/couplerstate/index.html new file mode 100644 index 000000000..fc54a38eb --- /dev/null +++ b/previews/PR50/couplerstate/index.html @@ -0,0 +1,9 @@ + +Coupler State · ClimaCoupler.jl

                                          Coupler State

                                          The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                          The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                          Coupler Object API

                                          ClimaCoupler.CouplerStateType
                                          CouplerState()

                                          Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                          A field is exported by one component and imported by one or more other components.

                                          source
                                          ClimaCoupler.coupler_add_field!Function
                                          coupler_add_field!(
                                          +        coupler::CouplerState,
                                          +        fieldname::Symbol,
                                          +        fieldvalue,
                                          +        grid,
                                          +        datetime::DateTime,
                                          +        units::Unitful.Units = Unitful.NoUnits, 
                                          +    )

                                          Add a field to the coupler that is accessible with key fieldname.

                                          Arguments

                                          • coupler: coupler object the field is added to.
                                          • fieldname: key to access the field in the coupler.
                                          • fieldvalue: data array of field values.
                                          • grid: grid the field is stored on.
                                          • datetime: time associated with the field state.
                                          • units: units associated with the field values. Dimensionless by default.
                                          source
                                          ClimaCoupler.coupler_put!Function
                                          coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue, gridinfo, datetime::DateTime, units::Unitful.Units)

                                          Updates coupler field fieldname with fieldvalue, the field's value at time datetime.

                                          gridinfo and units inform the coupler of the format of the inputted data allowing conversion to match the grid and units of the coupler field.

                                          source
                                          ClimaCoupler.coupler_getFunction
                                          coupler_get(coupler::CouplerState, fieldname::Symbol, gridinfo, datetime::DateTime, units::Unitful.Units)

                                          Retrieve data array corresponding to fieldname.

                                          Returns data on the grid specified by gridinfo and in the units of units. Checks that the coupler data field is the state at time datetime.

                                          source
                                          diff --git a/previews/PR50/generated/images/tc1_f1.png b/previews/PR50/generated/images/tc1_f1.png new file mode 100644 index 0000000000000000000000000000000000000000..e505321f8b5422b5d6e00a0f5452aa19ff87c96d GIT binary patch literal 15341 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 literal 0 HcmV?d00001 diff --git a/previews/PR50/generated/images/tc1_f2.png b/previews/PR50/generated/images/tc1_f2.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb1a58a5d6955c3d90bcd69639bf6d9c137b77f GIT binary patch literal 24017 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 literal 0 HcmV?d00001 diff --git a/previews/PR50/generated/images/tc1_f3.png b/previews/PR50/generated/images/tc1_f3.png new file mode 100644 index 0000000000000000000000000000000000000000..78bbb07f6dd7de074d39d0ed23fb1694b61df4e0 GIT binary patch literal 31883 zcmb4qWmr^e*e<0GDcvB=5K>Z-0@6r#3?0&lbi)AB-O>`GNSBm!3rKf^G)VV(+28s8 zpR@Ll?KKx`X012w=egqzQ&yD5L?cB*KtRBhm3ga*fPkcpfPfeaK?0xLX@w1g|2;L4 zmwt=z@c3U&b5Q~U0u_SnTQPO_&wI@tpViLJ9v*(C*;dh|(IH3rvsMMwtM~Zom0pU; z*?dD1FVIa1C$qL;s%0x(xGmNwcd^l!*YkT(N;XMI;AX3VhNda`k&uwWg_w#jjjn3l zqOnzUQR34pS%v|F#lwsFtrsF83Y(jE=Zo{s!>`Mnqp1eCF#fx`nHidijQ+cF7(=MJ zIlx6cMjSHo3tUDDro`gN;0of5GKOG2-q6kc|NBSf>a})rgkf+0d05iKDSL5V$15mDDWmzE|*vb8Qk`X_D{`}{$_3M}aY{Y0vTbtNHtM7bvrxka9 zbLR3rUH96t6?e%6^SI{0DheaQ56O=?6T3Zbd2}p>+RUBvxc|{ezn$BZm|8u)=c6RpUx1huI>9&&a zS>j>@*W+j@Kk2}>$f>Ft+y1DSDUft~(n}k2`!_%4)FA%9ACXHvgCRtH%KPiculn%) z$B)HEH-}oj(2kY-7?D{sQqM2-8_9Z#g8S8R4s&=ou+O~Jhvo0r0j539 zdTOogH2SrDr_;wm*`0bKiDaKEuGCPPiSh`K=?GixuX|9z=UXBP9i!{pXPn@38o%Ah zmp=}xlA`W^hlhuc-@PUap&s;~+dtS9JQ79?7KfGb&1HNmDY?HI_M4oVO7PRv)YL7V z1dqVh=XOxdD#+DQR&VUpI!^IQOJl>yu2NR-?IKloNr}5i*xYqqd1^^Xee)3r=BPl)QNnb37!KHumji2oDY|q#F*8 zd3WUO38d7_*U~=(2BTyaNg%)!Sb_H$lN{~JNv_c;e9+UcRHg6Asv+rD)bUxf~>j83x1#L zRlHZ@WW$W4V$A9ernO4koE20;nPU+QremymJKjVko90HW(+Q7BH&>7MmG8F7s zem4daS-2_o329j$vzZ%tc4vkEYOYELwsq(n^Rvsl>nC{}sGpY%Z*lwKxznU6D0JEi zM<-c-U-IF_jQDHZ;tFYY(3;`32#a$D_7Qvz#q9bdRG_-)9wQ=~r5Wsqar|XbUM0#0 zXI!h#+pBrLYWN5;(`C1DMY)r*?kW9e_$;Uvn%lzMcRUs;id6Q_RcBc}3#S%d3vAjyh~UNo%biy9iUbw$Z6S2@MzPWLHZ-*ih&o$SsT(`kr4?M$7+5>wIV z`0Fh&_ZQy`@2uClqtJ=i=*sFB4qSF8n@|79=d*QV4{%^CQ5wIA|Mv1|y1rCAAz%?& zsMSXvD%Ay<*POB0YG{Zgjw7R}j4_liqukiokWXRD6!Q4jYuHzL+s{(gxpsU?l+gEu zj-q};k|yqKcWR6Oe#SC;;m@D=VY$eEs3A^s?vwGC1-V|(GOxWP<@envg2TVzhVjj= zZ8muBHF)dq3tQwiwXeUSM-Z_;JxVI`E@)}-1rHnccGXh!W~MU?kBpRbb1>}$d~MtX zfcx>O$Lnyup(-)vMAED*kHRmCJlD0pbXi+|HD$S?&6KuZ8*5D7SN41sr7p>`Ef;EB zDStj)&vV|4%RE?I+mA{T<{mzt^!r7m2+`Bu-@Z4Qe z-@Y#vrVLwA;(c}7S?gPOyUs>1p#S?l_XY?2tC&koO%1JIqwD@GKn9$A_X!Ox3h$$~ zxZb0iz_IN?CpdX$LUHA=TK`e zKAa)9{!7}QhZy~KH!CyGOtj>@2z@36kE=#qRBW=Qz@{X1)% zOswDJ#Dv|#&!pQXu+BtBUW&%0e*y8paFrwwZQF zH+!;6Qpi~0)0Gg$*$liEiZDT;Bnw2fFKGRGEmLN|ac$4?i3;+{^0$7CwT6w&EBo^HiGSM&AGw|F|cnM!lBeh$Ap+41QlJw62R zL&N~TPxyxp{Oin!ZgI1Hn2}XHbdwN%397U7&B>B~lE7BB59#SIwdSTzKA!z$6ZXjy zv;+x?0^74TWp;LU6jyVg>#+IJz;HHP=6eP<@Qzk!v*qM>ohpl=e%ITs2qK4>%8jOz z-viB&sm2hU9@91F5W%nrq-7meytX(P!ja<+2L%VNYrvFQEpZzwAA`Ft`X*I6e6s%v=G%9W19f zYU;3N3=2dbPIaAASi+ynKjQg^*QYQ{HEq`9uWCgl*Er8!csq(XsCCeCe}Jd2Rvce_ z&-@2z<_(xCMBH96WUHZDy~jj4`q0>;Zl%s4h07Ig3`q;Mj2U@~pvdwR@6&NAy}}GC zOt@X$2lA^F2EfVDUq!lCXr4?w0AptPLrfg90J?otCt^&jl3-j3Eq5o^o{2kraIF>< zk&;#sQPx#2G;6dTTDvMt z`J(#nPb~5C&pYOUD(Y#Wvt%F0Ni(%8M7jI(rTK|NS@YW?kM4;@^h*DM{dcyWptRGB zmN`@JWGaMOM{pP3e~2kj%+yqCd+sM|*|vg!=G00G0YCbD;emT?&G|S-%FMLWw`?fQan0@TU%8eILAh*;K5nLfLI$k`QGzA>M%D z+cY|_J&Bk}%8Xyx9qUTZ$v%*gz9Sld2zE5>a|)w|-?gh~>TY;6FWwxs`i<9Ro?EY0 zZ?}Ja#u(qXUg&?8J`~2NxVgjdpi*|*tc7o-Er8*=ilo21QZ1$Cyk z@HpgLmDmrm2j_p4s_^uaXTsu;+1Rm87dFuhb^qpt^d$UME0QdDTuScpO$Hh7pPVgE z(cXSgkCL{e5$5hMsH5}gOIxl?RE{JkR#~sf=L@GZtRw57T}S+es)=`P;#nr4vMPJp zvm&sJ^Y1-G_o|mXZqphQtOb{k>rJzq2g7X%%U*DRbj!*Aec?3yrT{r4ZaXEk0FtJUqj4 z_GmLr%j6fo9!QJBmUfp1Ei)dN4NSj_5o4*qf#TUu0^*C2o#i7?nI*eLA@Sc`Twg0X zm@Wmwq^uJ0<~70BfERnkTGFlck(-IO+V2#ltz+R%l03I+d2kv`RD|C)-Oo};5B3)H zBd5YK%7IY3Hf~TDa*{5Z39)#olk*nNQ@Sq}960TS2dRAE^_*=7RnY+?@$UN$(&91Izykmsmv?0j!f3aiVJu`i7e$P-(Bh z>GX(KD&`Co7?xz}^lWJ0ePTizXPRjDQ7q#mIJxHa{!L?l`Y^%FE@73(ZYfS4CyMMA zNOjP~)q=xT_TP;0pCogLvmzhRgmzdnBBZ`6hDyYi70*IqV%cdqY5bo4am&bOtc^4w z>7X5a2EKntn*(m&(#b_@0CUumOJ$PoP0$wli7rz8_6M-5aj$@Djd)P%Nr zI=9lDyi6u}PxmXcV|~kjhuOkcgjN>>~owGkM1tR+ZSYset~yyahx zRCFwh`=0?bZn%&gw$2`Wip|kA0Xb+iDq>+Y|0YJy|CTYizGO*RMtdnKonJ@F9LQ*CE)fU79HA)Ki(}1J4`s;cyXupQyv>EcLQMN0) zyM#ZkKfXFeZ)LDlLl}98NqJJ6Chx6F6)G0GXM?*59&N9-uCnQ~7qCN-iFq;b>O}6$ z*$|mZ!Lg~B4Au5G_=@QLQnpUEaH-cG=_I^i92E9>`7@ndJgxyTMI?rW$q+fPc`24f zxY44||Hhcf1e$yYe|rq6((!ZzLqISv&5s&o@$I<^N(c51f)XdiKSJgG?M=yiTwO-p3ueoxH5BQ!yPeDH_H?dAZFGwn9;LQPxI1V3WrqF z4Q6-U^P?bc&=wN<=M&oG!ELwcMNq_ASao1XFPgieMxYLKh)qbaR%nBh-`PQ;#q;mUx9Qo=Q(ub7 zIO=&Ec{)$vd@!N=FvPf;zfkNMB?ac9dAUQ;%vMiw*))jw9czc!556_;JbW12+obs^ zoN!e(hp-qno7dJxay=aI>tCUny$mEzP{}GC=wh3rv75f6bh1()L%bo<&XYL*R&gx& zaJ?ackt5L1qZNhqqhy&g+-GN-Gdqwr`IH*+3d18+xzws?Y+uyxha7r1)B!&s4h-XPpwhf{ z-n`v4d-nw(Ds>y#`1llim*Uy1cT3XmF17MnaywubApv4r@1A8wYiMSMIpG$!_Ds(`@c zY%coSZbOVG-R=}60J)5hs_lIM(*R-5TdTyo(?7+*)8v26>xl-61w4`btvR)HK}#He zTJUXg`=f5DPS#a`5r_MfftxT;J^I-?OgnCT&7Xfo_C*~d*YO(&$m~^lf#fTm|N6qJ zN4i;;P1@r_k1yxAo8GsHVhQ^S1= zwrNi@@k6EvVIQA2AxR;KL;3PHWVG{pjx`STM^3n)>z+2CR6h(Ft!-?EUvGVuO<;)f zR&sCv&HdsH;F&{duPjINB(KPMu_3mgx!;{E4SnHziOTpn)>D`mV-c_b0|SGe7k;-F zEf>v8_vdvUKb(PJ*%tVONZ+yTeNkreR`z;K55pz>CVdhhqSKX9Q^KyB68W#K86lKp zxA8(1fh%5C2P0Nd2G}I6%F<_$*MHw^4zNYgyW3*xv?x3Gyp)p;C1268%$%5$9h%endmt>cKfUE&DzhSK<8@->x*ax%L*Q-BpxG;5`{ zc$9&Wz->ljsQ&ifWt@AkZsj)CMXuHp7_;10cfOS=`gH&TC7wG11V&v=&B;H1K6H~< z>buUE6Gn7xo!qSwwbrji3-%8TAkyK6W#69`iQa81?e6X(-tIg2A(w+mIF)F=T#d+s zw%nc1nVXvfE_l0m(NYIkU?hnc5LvXe+<+Q_T>SMbqGQ_=qSJG%0%^bnv+V?r-Mu?P zFu{baXM?*w^E<5;Kj85ztDB6E6jRtm7Ny+INGoA$A67CTw?XH1)YgSg7YOOEaz1Cp zPKA^r4khOcwe&(Owad#=RyerR?L)6`ZZZ|O%K4g(yUCn42bow{kdLAqygLpr9F|&q zx+6(oWmC4i+3u@hK)!8Suou0UclHr6?C!PhmY{GRB?v(C%itkI4GpzV1R{9Y zTXF1=b9L&J{q0x59mv-&%hf&GH|40vql;j&qG1U77Q0)`s`cR$%f=4s#n39O^H8<2 zw=_6aGq$|X7f1$WPo?(Tl=(A0Ci{A}CwKod9^AD*sst?YE)HVIUgMN7JIk)a*WCPnw?Hgodw0#p6Ti%lTrI*N25 zb>E3ljHj(BeJ@uI4h|mG?rA}{!^O-GCH?*VO)v*Hw~I)US14ljK)+_MUk(gLCyFNH zW5Y)iJ{f$)tM`NPe4)_|?*hxe&#dI@*X@IY-&T-_!ph2jE1@qaE#6kGIFe)Q=)U7@ zJLsht$w|}39X0ztX^`|&B3+>n2+WDppZ~^77@&qq3_W|Dw4H$Wj;(D4s^rIcM;BeD zfB_*44VvKkB1}DFqx9vl*QDYLnK**RruLsr$FC%*s!7URB41~@_s9zzJSz1L?$+fW z@TN^TSYuco{#=JqE41=WYSKSdz%VQhaQ6=H*>UvVc2a0lD-5S@0`Tm6UX_jcKv(s8 zA*A*8-+-3BQIepXpbON< zP;x@e>}p9=d%Yk27|&eb`Qhf;&!aZ2s8RyoN;~66s$yNZz#AeUsC%JO8stjPlRCM8 zAQ3}DD^nM^J5?sS`@Jg5_j((kMx39B(`u(W;?1vLZ>X?kxMeh&Y`L`a2LV2{0rg$7utYPPzZe;j#Yx`j11X3d?<`XOi8qfP`(Oe zQT{BJ;Y7!Db;a)5#lbFWQBnl{4 zC}Is0ZxEUyzxkc06nK$jTku&^7-OylQgJ?~MjfLx=0MX+`zaZFou~wWgXKqk9uUlG zYR+ydZ18Sjp zh%uRVKrC6Gmufece6fZM?G#eaxAl_Gx5JKf(~<9obS?jGkoF=OM7qX5_*O>YAv{zr zWGA;@%QYg&a~y5-}v$@ zlp$feFvDK%&KZ4Gn5I4C+`kPFHjL5Hd1_Qe=jy;<)-q-tucHE-pn3Y<}U5=e2g-8wgzvc z3!BpOZ!U?U=w5lppNFfOGN00%4#m&>oO*~$4>x`fWjPY>gXa1JsL3~kVU5cvj(*dC)&~$_RrqK5>96faHAA766l1Dkemr7hGy@6H;*J9@O=QA29WRKv~ zMeQTvHvrg8J@-V$)qe!wR9@U(2^pkrY25JFWW5DOy8P)e+Jzw-DrzmC^z$pNWD=6%;{yT<{5Nd$_HeI=+@-Ne{aOK=f_TfucCcqW= zgm~MAzsJ3ybb%WQ1t-T8^xO*-Uk|7Rs|Y^zcZuO>9Vwo|l8SoE8rIecO|wO6+=vH! z$ubp-j7C&&rIzdSGXmOtJx>mpSe%ws;x@T)iwTKl=quo;tlJ(X1{yR+&i`U9 zjCA}H=FUDhHS&n*OmmFhR46A??I6Y;SRXTt`t<`Q6(k@I2*cCeD6Q@{R_d;LCvwdk zo|Jd_E)n$V>4@beRlUMLg`YH`Rg(0y4^6PTuAq9rF2 ze$`f8F+4_V#>dUPsq#+AsII^|D_6y}i_2tj5x3FnbYuUF5V)#mokQOpxv_(3V?rnt zLj6wg2g=Dvhl*NB0~WZA@4-S?;x9L&k1Z~miA=#7-dROu&P2f|Ws+KP~E?mog+|mGv8?@wK=g zrSLi=5-X>-wHje?GGmK9*_iwJPDHN9nFxj5k4hR8P_GmQG%mQUfI( z@tq}2wqgkrF@-@!t9HnE(0NtzGam8$+YWmx?reZ?>=|Bzug=kb*-3DO(0SF3Abli^ zJYOI@0eGJmGL&560a)NT$K^<&SdSf8mxe;TD8$^j&_P-=F79+c^-_g5NojrHy(+ai zGH3@yZ6T{?m9;(YxIRwmTR6WM%eBRF+b|d&?sbs5WFx_Y$%=;Cm|K(bDyiiVZ-=ui8jCB z$<;+Ha)wD-AlP?R1tm}aThBhm^Vpkbic%NavA+W)#gzTX#TR*8?OED6>4+PH#UmZr zl8*^0#maT$tN>XKRdGNK=EsX9ZNHs(WAuu9hrLse3y6Bt1C~VV92L-H9Q4!VCRYxk zdme#-BPE`U=d%b%xbq$n=F^cS1c@+{V@lm$PZ7sCh$&vOO81)Fe^-tfVJolcfk!H{ zF6q5{+{sD`NaTblI(Yx15Tq~FbXYZeh?$TO3f}~pv>J_16KPBLey&U0s_w!c43@gX z1=FY0z(fJ|4@Shrh!B7#V$7(`*PemDOkBjo$T~+TNg9>WOK3mpP}37#&S-!(lAbfx|J5O>AjhRSYq2se#w3n) zeqsRN+o27IlxW;=y664#2;uEJ5WB$aug~o8aY)UFb_oC{rE}saBq#WxdW;B z`Y2Pmgi3}oVZWp*kwOU_)!m z@X)h4jN1Xd;=Xi8uG4^UY`o09xzlqWV- z9ueOvOb4cK(7wCAOveZrG2<%Lt=XAsy*~qCjcV=o>5wi&{9rG5WUy2h5+4-7e)6|z zu9w+wTGmy{{^W`ac}E?z9~GwZ{9qr?!lho-k$RucSW4uM7>815YH9I#{4=Y%`ZWjh zy)u6}$zx%}X8Vce1N=K?&JhtYZ|D6}0lfYi$Qm?I^w1bg874;XIOw%K^aG0WyQ81q zGQX7e=*+X;I}eqbsaLKcQHrq*!Ttrly0EQ>%-uH7(1f{=7ymWu8;8BxfR`~G4>P1p z(_H7WB+V-I=wB;NW=X!$;?q~F6P+`{GL|DaPRv=W0ic#1mGQ1^#|>eNfR;$tyB=}b zxExt$g)(;p$E*)KJg%Mh6LL`awEGB_l!|#sL+mOOXeJm=yOhmU>~z9a6{2Im-s zBfny9t*pZ70=G>f#MdzGiPi2VVyfp;9yQ~IJG9=N<4BV`0UoBMrS-yX-U+l~F{1bG zz_B|S7A@;5>BiOs#rL#It(ruZiYcF_HQ)zIZ4*5{%od9#*?5amxASRRx??pYX2edy zkDODg5-w?rtuTROO-LkJOTH50dz$}#tgzIe(G?^%){~mOF0w!uJCOYH1~h8#7-(}! z=sJx{D$CXNy~n7b8`ltLkm!P)HJbwT^_F;0weg5)ipO8 zfA@YvY|3(k|{pp-!O5+d~ zdfYICBhTgzSQ+4{AgPnnR@se@LE7Ga568%nDL>vv4#$k*8aE$eC&1G%?VXO0w8QS4 zew853!o|%jHH}Sgr70L-`*ITWh;GBe7Z_f5K#Zu-Ed?%UI;$jkHP&wCMA|6SbIZ!tTKwueETz}jP{*FLdqO@cj za%ft@rVYhZ4%I#1$*n~!_mW15umn*n(BVF6H^8*LT6^(O4`!{XsHm{e0&sCnn}Fwi zPp?*LE4cmhMn>^aLYfxEGaNw@02>9PTLmU#90tQDAvN#OV;14ICOXIDIx@$2yHbun zNd|qw;=JR7(@=QSQ?uH8#OZau_ukHKq1G;A##UrKR$}varq|_4D4C|RFsRDfkQu!2 z69@@zG+~|C-eF_u=?8T&)}PU_PaII`0f*zj?Q(f6<+#lwT+*p+*q%a^8AF6omCg

                                          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 gro8%pe>uCdlS+~PG+E<5OczI}E9=~ +Heat Equation + Slab Tutorial · ClimaCoupler.jl

                                          Heat Equation + Slab Tutorial

                                          In this tutorial, we demonstrate simple sequential coupling of two PDE models using the ClimaCore.jl backends.

                                          Model 1

                                          Model 1 represents a simplified atmosphere (atm) and solves the heat equation in a one-column domain:

                                          $\frac{∂ T}{∂ t} + ∇ ⋅ (-μ ∇T) = 0$

                                          with top and bottom boundary conditions set to fixed-temperature (non-zero Dirichlet) and fixed-flux (non-zero Neumann) conditions, respectively:

                                          $T_{top} = 280 K, \,\,\,\,\,\,\, \frac{∂ T_{bottom}}{∂ t} = - ∇ F_{sfc}$

                                          where

                                          • t is time
                                          • μ is the thermal diffusivity
                                          • T is the temperature
                                          • F_sfc is the thermal boundary flux (see below for calculation)

                                          Model 2

                                          Model 2 assumes a simplified soil (lnd) domain to be a slab, represented by an ODE for its surface temperature:

                                          $\frac{dT_{sfc}}{dt} = - (F_{accumulated} + G ) / h_{lnd}$

                                          where

                                          $F_{accumulated} = {F_{integrated}} / Δt_{coupler}$

                                          where

                                          • Δt_coupler is the duration of the coupling cycle
                                          • T_sfc is the temperature
                                          • h_lnd is the slab thickness
                                          • F_integrated and F_accumulated thermal boundary fluxes, respectively (see below for calculation)
                                          • G represents soil physics, which we assume to be 0 for now

                                          Coupling and Flux Calculation

                                          We use this Model 1 (usually this is done by the model with the shortest timestep) to calculate and accumulate the downward surface fluxes, F_sfc:

                                          $F_{sfc} = - λ (T_{sfc} - T1)$

                                          $d(F_{integrated})/dt = F_{sfc}$

                                          where

                                          • T1 is the atm temperature near the surface (here assumed equal to the first model level)
                                          • λ a constant relaxation timescale

                                          Note that in a more realistic setup the above equations would be weighted by their domains' densities and thermal heat capacities, so that the thermal flux would have the units of W m$^{-2}$. Here we assume these are unity for both domains.

                                          Sequential coupling has the following steps:

                                          1. pre-Model 1: supply Model 1 with T_sfc for the F_sfc calculation; reset F_integrated to zero
                                          2. run Model 1: step forward for all Model 1 timesteps within one coupling cycle using F_sfc as the bottom boundary condition; accumulate F_integrated at each (sub-)step
                                          3. post-Model 1: pass F_integrated into coupler and convert to F_accumulated for the correct units.
                                          4. pre-Model 2: supply Model 2 with F_accumulated
                                          5. run Model 2: step forward for all Model 2 timesteps within one coupling cycle;
                                          6. post-Model 2: state variable, T_sfc of Model 2 into coupler.
                                          7. repeat steps 1-6 for all coupling timesteps.

                                          Implementation

                                          Loading Packages

                                          First, we'll load our pre-requisites:

                                          • load CliMA packages under development - you may need to add unregistered packages in Pkg, e.g.:
                                          # import Pkg; Pkg.add(url="https://github.com/CliMA/ClimaCore.jl",rev="main")
                                          • load external packages:
                                          import LinearAlgebra, UnPack
                                          +import ClimaCore: Fields, Domains, Topologies, Meshes, DataLayouts, Operators, Geometry, Spaces
                                          +
                                          +using Base: show_supertypes
                                          +using OrdinaryDiffEq: ODEProblem, solve, SSPRK33
                                          +
                                          +using Logging: global_logger
                                          +using TerminalLoggers: TerminalLogger
                                          +
                                          +using RecursiveArrayTools
                                          +
                                          +using OrdinaryDiffEq
                                          +
                                          +using Statistics

                                          Define Parameters

                                          • Global Constants
                                          const FT = Float64;
                                          • Experiment-specific Parameters
                                          parameters = (
                                          +    # atmos parameters
                                          +    zmin_atm = FT(0.0), # height of atm stack bottom [m]
                                          +    zmax_atm = FT(1.0), # height of atm stack top [m]
                                          +    n = 15,  # number of elements in atm stack
                                          +    μ = FT(0.0001), # diffusion coefficient [m^2 / s]
                                          +    T_top = FT(280.0), # fixed temperature at the top of the domain_atm [K]
                                          +    T_atm_ini = FT(280.0), # initial condition of at temperature (isothermal) [K]
                                          +    # slab parameters
                                          +    h_lnd = FT(0.5), # depth of slab layer [m]
                                          +    T_lnd_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                          +    # coupling parameters
                                          +    λ = FT(1e-5), # transfer coefficient
                                          +)
                                          (zmin_atm = 0.0, zmax_atm = 1.0, n = 15, μ = 0.0001, T_top = 280.0, T_atm_ini = 280.0, h_lnd = 0.5, T_lnd_ini = 260.0, λ = 1.0e-5)

                                          Define Model Functions

                                          • Model 1 (atm) Equations
                                          """
                                          +    ∑tendencies_atm!(du, u, (parameters, T_sfc), t)
                                          +
                                          +Heat diffusion equation
                                          +    dT/dt =  ∇ μ ∇ T
                                          +    where
                                          +        T  = 280 K              at z = zmax_atm
                                          +        dT/dt = - ∇ F_sfc       at z = zmin_atm
                                          +
                                          +We also use this model to calculate and accumulate the downward surface fluxes, F_sfc:
                                          +    F_sfc = - λ * (T_sfc - T1)
                                          +    d(F_integrated)/dt  = F_sfc
                                          +    where
                                          +        F_integrated is reset to 0 at the beginning of each coupling cycle
                                          +        T1 = atm temperature near the surface (here assumed equal to the first model level)
                                          +"""
                                          +function ∑tendencies_atm!(du, u, (parameters, T_sfc), t)
                                          +    T = u.x[1] # u.x = vector of prognostic variables from DifferentialEquations
                                          +    F_sfc = calculate_flux(T_sfc[1], parent(T)[1], parameters)
                                          +    # set BCs
                                          +    bcs_bottom = Operators.SetValue(Geometry.Cartesian3Vector(F_sfc)) # F_sfc is converted to a Cartesian vector in direction 3 (vertical)
                                          +    bcs_top = Operators.SetValue(FT(parameters.T_top))
                                          +
                                          +    gradc2f = Operators.GradientC2F(top = bcs_top) # Dirichlet BC (center-to-face)
                                          +    gradf2c = Operators.DivergenceF2C(bottom = bcs_bottom) # Neumann BC (face-to-center)
                                          +
                                          +    # tendency calculations
                                          +    @. du.x[1] = gradf2c(parameters.μ * gradc2f(T)) # dT/dt
                                          +    du.x[2] .= -F_sfc[1] # d(F_integrated)/dt
                                          +end
                                          Main.##438.∑tendencies_atm!
                                          • Model 2 (lnd) Equations
                                          """
                                          +    ∑tendencies_lnd!(dT_sfc, T_sfc, (parameters, F_accumulated), t)
                                          +
                                          +Slab layer equation
                                          +    lnd d(T_sfc)/dt = - (F_accumulated + G) / h_lnd
                                          +    where
                                          +        F_accumulated = F_integrated / Δt_coupler
                                          +"""
                                          +function ∑tendencies_lnd!(dT_sfc, T_sfc, (parameters, F_accumulated), t)
                                          +    G = 0.0 # place holder for soil dynamics
                                          +    @. dT_sfc = (-F_accumulated + G) / parameters.h_lnd
                                          +end
                                          Main.##438.∑tendencies_lnd!
                                          • Surface Flux Calculation (coarse bulk formula)
                                          calculate_flux(T_sfc, T1, parameters) = -parameters.λ * (T_sfc - T1);
                                          • Coupler Communication Functions

                                          These functions export / import / transform variables These functions are now just place holders for coupler transformations (e.g. regridding, masking, etc)

                                          coupler_get_(x) = x;
                                          +coupler_put_(x) = x;

                                          Model Initialization

                                          • initialize atm model domain and grid
                                          domain_atm = Domains.IntervalDomain(
                                          +    Geometry.ZPoint{FT}(parameters.zmin_atm),
                                          +    Geometry.ZPoint{FT}(parameters.zmax_atm);
                                          +    boundary_tags = (:bottom, :top),
                                          +);
                                          +mesh_atm = Meshes.IntervalMesh(domain_atm, nelems = parameters.n); # struct, allocates face boundaries to 5,6: atmos
                                          +center_space_atm = Spaces.CenterFiniteDifferenceSpace(mesh_atm); # collection of the above, discretises space into FD and provides coords
                                          • initialize prognostic variables, either as ClimaCore's Field objects or as Arrays
                                          T_atm_0 = Fields.ones(FT, center_space_atm) .* parameters.T_atm_ini; # initiates a spatially uniform atm progostic var
                                          +T_lnd_0 = [parameters.T_lnd_ini]; # initiates lnd progostic var
                                          +ics = (; atm = T_atm_0, lnd = T_lnd_0)
                                          (atm = Float64-valued Field:
                                          +  [280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0], lnd = [260.0])
                                          • specify timestepping information
                                          stepping = (;
                                          +    Δt_min = 0.02,
                                          +    timerange = (0.0, 6.0),
                                          +    Δt_coupler = 1.0,
                                          +    odesolver = SSPRK33(),
                                          +    nsteps_atm = 8, # number of timesteps of atm per coupling cycle
                                          +    nsteps_lnd = 1, # number of timesteps of lnd per coupling cycle
                                          +);

                                          Define the sequential coupling loop

                                          function coupler_solve!(stepping, ics, parameters)
                                          +    t = 0.0
                                          +    Δt_min = stepping.Δt_min
                                          +    Δt_coupler = stepping.Δt_coupler
                                          +    t_start = stepping.timerange[1]
                                          +    t_end = stepping.timerange[2]
                                          +
                                          +    # init coupler fields
                                          +    coupler_F_sfc = [0.0]
                                          +    coupler_T_lnd = copy(ics.lnd)
                                          +
                                          +    # atmos copies of coupler variables
                                          +    atm_T_lnd = copy(coupler_T_lnd)
                                          +    atm_F_sfc = copy(coupler_F_sfc)
                                          +
                                          +    ## SETUP ATMOS
                                          +    # put all prognostic variable arrays into a vector and ensure that solve can partition them
                                          +    T_atm = ics.atm
                                          +    Y_atm = ArrayPartition((T_atm, atm_F_sfc))
                                          +    prob_atm = ODEProblem(∑tendencies_atm!, Y_atm, (t_start, t_end), (parameters, atm_T_lnd))
                                          +    integ_atm = init(prob_atm, stepping.odesolver, dt = Δt_min, saveat = 10 * Δt_min)
                                          +
                                          +    # land copies of coupler variables
                                          +    T_lnd = ics.lnd
                                          +    lnd_F_sfc = copy(coupler_F_sfc)
                                          +
                                          +    ## SETUP LAND
                                          +    prob_lnd = ODEProblem(∑tendencies_lnd!, T_lnd, (t_start, t_end), (parameters, lnd_F_sfc))
                                          +    integ_lnd = init(prob_lnd, stepping.odesolver, dt = Δt_min, saveat = 10 * Δt_min)
                                          +
                                          +    # coupler stepping
                                          +    for t in (t_start:Δt_coupler:t_end)
                                          +
                                          +        # STEP ATMOS
                                          +        # pre_atmos
                                          +        integ_atm.p[2] .= coupler_get_(coupler_T_lnd) # integ_atm.p is the parameter vector of an ODEProblem from DifferentialEquations
                                          +        integ_atm.u.x[2] .= [0.0] # surface flux to be accumulated
                                          +
                                          +        # run atmos
                                          +        # NOTE: use (t - integ_atm.t) here instead of Δt_coupler to avoid accumulating roundoff error in our timestepping.
                                          +        OrdinaryDiffEq.step!(integ_atm, t - integ_atm.t, true)
                                          +
                                          +        # post_atmos
                                          +        coupler_F_sfc .= coupler_put_(integ_atm.u.x[2]) / Δt_coupler
                                          +
                                          +        # STEP LAND
                                          +        # pre_land
                                          +        lnd_F_sfc .= coupler_get_(coupler_F_sfc)
                                          +
                                          +        # run land
                                          +        OrdinaryDiffEq.step!(integ_lnd, t - integ_lnd.t, true)
                                          +
                                          +        # post land
                                          +        coupler_T_lnd .= coupler_put_(integ_lnd.u) # update T_sfc
                                          +    end
                                          +
                                          +    return integ_atm, integ_lnd
                                          +end;

                                          Run the Coupler Model Simulation

                                          integ_atm, integ_lnd = coupler_solve!(stepping, ics, parameters);
                                          +sol_atm, sol_lnd = integ_atm.sol, integ_lnd.sol;

                                          Postprocessing and Visualization

                                          Each integrator output (sol_atm, sol_lnd), contains the DifferentialEquations variable .u (the name is hard coded). If ArrayPartition was used for combining multiple prognostic variables, u will include an additional variable x (also hard coded) parent() accesses the Field values. So, for example, the structure of u from Model 1 is:

                                          parent(sol_atm.u[<time-index>].x[<ArrayPartition-index>])[<z-index>,<variable-index>]

                                          ENV["GKSwstype"] = "nul"
                                          +import Plots
                                          +Plots.GRBackend()
                                          +
                                          +show_plots = isdefined(Main, :SHOWPLOTS) ? SHOWPLOTS : true
                                          +
                                          +path = joinpath(dirname(@__FILE__), "images/")
                                          +mkpath(path);
                                          • Vertical profile at start and end
                                          t0_ = parent(sol_atm.u[1].x[1])[:, 1];
                                          +tend_ = parent(sol_atm.u[end].x[1])[:, 1];
                                          +z_centers = parent(Fields.coordinate_field(center_space_atm))[:, 1];
                                          +show_plots ?
                                          +Plots.png(
                                          +    Plots.plot(
                                          +        [t0_ tend_],
                                          +        z_centers,
                                          +        title = "model 1: atm",
                                          +        labels = ["t=0" "t=end"],
                                          +        xlabel = "T (K)",
                                          +        ylabel = "z (m)",
                                          +    ),
                                          +    joinpath(path, "tc1_f1.png"),
                                          +) : nothing

                                          • Conservation: absolute "energy" of both models with time

                                          convert to the same units (analogous to energy conservation, assuming that is both domains density=1 and thermal capacity=1)

                                          lnd_sfc_u_t = [u[1] for u in sol_lnd.u] .* parameters.h_lnd;
                                          +atm_sum_u_t = [sum(parent(u.x[1])[:]) for u in sol_atm.u] .* (parameters.zmax_atm - parameters.zmin_atm) ./ parameters.n;
                                          +v1 = lnd_sfc_u_t .- lnd_sfc_u_t[1];
                                          +v2 = atm_sum_u_t .- atm_sum_u_t[1];
                                          +show_plots ?
                                          +Plots.png(
                                          +    Plots.plot(
                                          +        sol_lnd.t,
                                          +        [v1 v2 v1 + v2],
                                          +        labels = ["lnd" "atm" "tot"],
                                          +        xlabel = "time (s)",
                                          +        ylabel = "pseudo-energy (J / m2)",
                                          +    ),
                                          +    joinpath(path, "tc1_f2.png"),
                                          +) : nothing

                                          • Conservation: relative error with time
                                          total = atm_sum_u_t + lnd_sfc_u_t;
                                          +rel_error = (total .- total[1]) / mean(total);
                                          +show_plots ?
                                          +Plots.png(
                                          +    Plots.plot(sol_lnd.t, rel_error, labels = ["tot"], xlabel = "time (s)", ylabel = "relative error"),
                                          +    joinpath(path, "tc1_f3.png"),
                                          +) : nothing


                                          This page was generated using Literate.jl.

                                          diff --git a/previews/PR50/images/cplsetup.png b/previews/PR50/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR50/index.html b/previews/PR50/index.html new file mode 100644 index 000000000..865d3ce8b --- /dev/null +++ b/previews/PR50/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                          ClimaCoupler.jl

                                          Coupling CliMA Models

                                          ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                          • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                          • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                          The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                          Coupler Scheme
                                          ClimaCoupler.jl allows for independent development of interchangeable component models.
                                          diff --git a/previews/PR50/search/index.html b/previews/PR50/search/index.html new file mode 100644 index 000000000..8f4bf6a54 --- /dev/null +++ b/previews/PR50/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                          Loading search...

                                            diff --git a/previews/PR50/search_index.js b/previews/PR50/search_index.js new file mode 100644 index 000000000..5ebb3afb1 --- /dev/null +++ b/previews/PR50/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/run/#Heat-Equation-Slab-Tutorial","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"In this tutorial, we demonstrate simple sequential coupling of two PDE models using the ClimaCore.jl backends.","category":"page"},{"location":"generated/run/#Model-1","page":"Heat Equation + Slab Tutorial","title":"Model 1","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Model 1 represents a simplified atmosphere (atm) and solves the heat equation in a one-column domain:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"frac T t + (-μ T) = 0","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"with top and bottom boundary conditions set to fixed-temperature (non-zero Dirichlet) and fixed-flux (non-zero Neumann) conditions, respectively:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"T_top = 280 K frac T_bottom t = - F_sfc","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"where","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"t is time\nμ is the thermal diffusivity\nT is the temperature\nF_sfc is the thermal boundary flux (see below for calculation)","category":"page"},{"location":"generated/run/#Model-2","page":"Heat Equation + Slab Tutorial","title":"Model 2","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Model 2 assumes a simplified soil (lnd) domain to be a slab, represented by an ODE for its surface temperature:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"fracdT_sfcdt = - (F_accumulated + G ) h_lnd","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"where","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"F_accumulated = F_integrated Δt_coupler","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"where","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Δt_coupler is the duration of the coupling cycle\nT_sfc is the temperature\nh_lnd is the slab thickness\nF_integrated and F_accumulated thermal boundary fluxes, respectively (see below for calculation)\nG represents soil physics, which we assume to be 0 for now","category":"page"},{"location":"generated/run/#Coupling-and-Flux-Calculation","page":"Heat Equation + Slab Tutorial","title":"Coupling and Flux Calculation","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"We use this Model 1 (usually this is done by the model with the shortest timestep) to calculate and accumulate the downward surface fluxes, F_sfc:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"F_sfc = - λ (T_sfc - T1)","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"d(F_integrated)dt = F_sfc","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"where","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"T1 is the atm temperature near the surface (here assumed equal to the first model level)\nλ a constant relaxation timescale","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Note that in a more realistic setup the above equations would be weighted by their domains' densities and thermal heat capacities, so that the thermal flux would have the units of W m^-2. Here we assume these are unity for both domains.","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Sequential coupling has the following steps:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"pre-Model 1: supply Model 1 with T_sfc for the F_sfc calculation; reset F_integrated to zero\nrun Model 1: step forward for all Model 1 timesteps within one coupling cycle using F_sfc as the bottom boundary condition; accumulate F_integrated at each (sub-)step\npost-Model 1: pass F_integrated into coupler and convert to F_accumulated for the correct units.\npre-Model 2: supply Model 2 with F_accumulated\nrun Model 2: step forward for all Model 2 timesteps within one coupling cycle;\npost-Model 2: state variable, T_sfc of Model 2 into coupler.\nrepeat steps 1-6 for all coupling timesteps.","category":"page"},{"location":"generated/run/#Implementation","page":"Heat Equation + Slab Tutorial","title":"Implementation","text":"","category":"section"},{"location":"generated/run/#Loading-code-coupler","page":"Heat Equation + Slab Tutorial","title":"Loading Packages","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"First, we'll load our pre-requisites:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"load CliMA packages under development - you may need to add unregistered packages in Pkg, e.g.:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"# import Pkg; Pkg.add(url=\"https://github.com/CliMA/ClimaCore.jl\",rev=\"main\")","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"load external packages:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"import LinearAlgebra, UnPack\nimport ClimaCore: Fields, Domains, Topologies, Meshes, DataLayouts, Operators, Geometry, Spaces\n\nusing Base: show_supertypes\nusing OrdinaryDiffEq: ODEProblem, solve, SSPRK33\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\n\nusing RecursiveArrayTools\n\nusing OrdinaryDiffEq\n\nusing Statistics","category":"page"},{"location":"generated/run/#Define-Parameters","page":"Heat Equation + Slab Tutorial","title":"Define Parameters","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Global Constants","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"const FT = Float64;","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Experiment-specific Parameters","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"parameters = (\n # atmos parameters\n zmin_atm = FT(0.0), # height of atm stack bottom [m]\n zmax_atm = FT(1.0), # height of atm stack top [m]\n n = 15, # number of elements in atm stack\n μ = FT(0.0001), # diffusion coefficient [m^2 / s]\n T_top = FT(280.0), # fixed temperature at the top of the domain_atm [K]\n T_atm_ini = FT(280.0), # initial condition of at temperature (isothermal) [K]\n # slab parameters\n h_lnd = FT(0.5), # depth of slab layer [m]\n T_lnd_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n λ = FT(1e-5), # transfer coefficient\n)","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"(zmin_atm = 0.0, zmax_atm = 1.0, n = 15, μ = 0.0001, T_top = 280.0, T_atm_ini = 280.0, h_lnd = 0.5, T_lnd_ini = 260.0, λ = 1.0e-5)","category":"page"},{"location":"generated/run/#Define-Model-Functions","page":"Heat Equation + Slab Tutorial","title":"Define Model Functions","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Model 1 (atm) Equations","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"\"\"\"\n ∑tendencies_atm!(du, u, (parameters, T_sfc), t)\n\nHeat diffusion equation\n dT/dt = ∇ μ ∇ T\n where\n T = 280 K at z = zmax_atm\n dT/dt = - ∇ F_sfc at z = zmin_atm\n\nWe also use this model to calculate and accumulate the downward surface fluxes, F_sfc:\n F_sfc = - λ * (T_sfc - T1)\n d(F_integrated)/dt = F_sfc\n where\n F_integrated is reset to 0 at the beginning of each coupling cycle\n T1 = atm temperature near the surface (here assumed equal to the first model level)\n\"\"\"\nfunction ∑tendencies_atm!(du, u, (parameters, T_sfc), t)\n T = u.x[1] # u.x = vector of prognostic variables from DifferentialEquations\n F_sfc = calculate_flux(T_sfc[1], parent(T)[1], parameters)\n # set BCs\n bcs_bottom = Operators.SetValue(Geometry.Cartesian3Vector(F_sfc)) # F_sfc is converted to a Cartesian vector in direction 3 (vertical)\n bcs_top = Operators.SetValue(FT(parameters.T_top))\n\n gradc2f = Operators.GradientC2F(top = bcs_top) # Dirichlet BC (center-to-face)\n gradf2c = Operators.DivergenceF2C(bottom = bcs_bottom) # Neumann BC (face-to-center)\n\n # tendency calculations\n @. du.x[1] = gradf2c(parameters.μ * gradc2f(T)) # dT/dt\n du.x[2] .= -F_sfc[1] # d(F_integrated)/dt\nend","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Main.##438.∑tendencies_atm!","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Model 2 (lnd) Equations","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"\"\"\"\n ∑tendencies_lnd!(dT_sfc, T_sfc, (parameters, F_accumulated), t)\n\nSlab layer equation\n lnd d(T_sfc)/dt = - (F_accumulated + G) / h_lnd\n where\n F_accumulated = F_integrated / Δt_coupler\n\"\"\"\nfunction ∑tendencies_lnd!(dT_sfc, T_sfc, (parameters, F_accumulated), t)\n G = 0.0 # place holder for soil dynamics\n @. dT_sfc = (-F_accumulated + G) / parameters.h_lnd\nend","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Main.##438.∑tendencies_lnd!","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Surface Flux Calculation (coarse bulk formula)","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"calculate_flux(T_sfc, T1, parameters) = -parameters.λ * (T_sfc - T1);","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Coupler Communication Functions","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"These functions export / import / transform variables These functions are now just place holders for coupler transformations (e.g. regridding, masking, etc)","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"coupler_get_(x) = x;\ncoupler_put_(x) = x;","category":"page"},{"location":"generated/run/#Model-Initialization","page":"Heat Equation + Slab Tutorial","title":"Model Initialization","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"initialize atm model domain and grid","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"domain_atm = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(parameters.zmin_atm),\n Geometry.ZPoint{FT}(parameters.zmax_atm);\n boundary_tags = (:bottom, :top),\n);\nmesh_atm = Meshes.IntervalMesh(domain_atm, nelems = parameters.n); # struct, allocates face boundaries to 5,6: atmos\ncenter_space_atm = Spaces.CenterFiniteDifferenceSpace(mesh_atm); # collection of the above, discretises space into FD and provides coords","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"initialize prognostic variables, either as ClimaCore's Field objects or as Arrays","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"T_atm_0 = Fields.ones(FT, center_space_atm) .* parameters.T_atm_ini; # initiates a spatially uniform atm progostic var\nT_lnd_0 = [parameters.T_lnd_ini]; # initiates lnd progostic var\nics = (; atm = T_atm_0, lnd = T_lnd_0)","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"(atm = Float64-valued Field:\n [280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0, 280.0], lnd = [260.0])","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"specify timestepping information","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"stepping = (;\n Δt_min = 0.02,\n timerange = (0.0, 6.0),\n Δt_coupler = 1.0,\n odesolver = SSPRK33(),\n nsteps_atm = 8, # number of timesteps of atm per coupling cycle\n nsteps_lnd = 1, # number of timesteps of lnd per coupling cycle\n);","category":"page"},{"location":"generated/run/#Define-the-sequential-coupling-loop","page":"Heat Equation + Slab Tutorial","title":"Define the sequential coupling loop","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"function coupler_solve!(stepping, ics, parameters)\n t = 0.0\n Δt_min = stepping.Δt_min\n Δt_coupler = stepping.Δt_coupler\n t_start = stepping.timerange[1]\n t_end = stepping.timerange[2]\n\n # init coupler fields\n coupler_F_sfc = [0.0]\n coupler_T_lnd = copy(ics.lnd)\n\n # atmos copies of coupler variables\n atm_T_lnd = copy(coupler_T_lnd)\n atm_F_sfc = copy(coupler_F_sfc)\n\n ## SETUP ATMOS\n # put all prognostic variable arrays into a vector and ensure that solve can partition them\n T_atm = ics.atm\n Y_atm = ArrayPartition((T_atm, atm_F_sfc))\n prob_atm = ODEProblem(∑tendencies_atm!, Y_atm, (t_start, t_end), (parameters, atm_T_lnd))\n integ_atm = init(prob_atm, stepping.odesolver, dt = Δt_min, saveat = 10 * Δt_min)\n\n # land copies of coupler variables\n T_lnd = ics.lnd\n lnd_F_sfc = copy(coupler_F_sfc)\n\n ## SETUP LAND\n prob_lnd = ODEProblem(∑tendencies_lnd!, T_lnd, (t_start, t_end), (parameters, lnd_F_sfc))\n integ_lnd = init(prob_lnd, stepping.odesolver, dt = Δt_min, saveat = 10 * Δt_min)\n\n # coupler stepping\n for t in (t_start:Δt_coupler:t_end)\n\n # STEP ATMOS\n # pre_atmos\n integ_atm.p[2] .= coupler_get_(coupler_T_lnd) # integ_atm.p is the parameter vector of an ODEProblem from DifferentialEquations\n integ_atm.u.x[2] .= [0.0] # surface flux to be accumulated\n\n # run atmos\n # NOTE: use (t - integ_atm.t) here instead of Δt_coupler to avoid accumulating roundoff error in our timestepping.\n OrdinaryDiffEq.step!(integ_atm, t - integ_atm.t, true)\n\n # post_atmos\n coupler_F_sfc .= coupler_put_(integ_atm.u.x[2]) / Δt_coupler\n\n # STEP LAND\n # pre_land\n lnd_F_sfc .= coupler_get_(coupler_F_sfc)\n\n # run land\n OrdinaryDiffEq.step!(integ_lnd, t - integ_lnd.t, true)\n\n # post land\n coupler_T_lnd .= coupler_put_(integ_lnd.u) # update T_sfc\n end\n\n return integ_atm, integ_lnd\nend;","category":"page"},{"location":"generated/run/#Run-the-Coupler-Model-Simulation","page":"Heat Equation + Slab Tutorial","title":"Run the Coupler Model Simulation","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"integ_atm, integ_lnd = coupler_solve!(stepping, ics, parameters);\nsol_atm, sol_lnd = integ_atm.sol, integ_lnd.sol;","category":"page"},{"location":"generated/run/#Postprocessing-and-Visualization","page":"Heat Equation + Slab Tutorial","title":"Postprocessing and Visualization","text":"","category":"section"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Each integrator output (sol_atm, sol_lnd), contains the DifferentialEquations variable .u (the name is hard coded). If ArrayPartition was used for combining multiple prognostic variables, u will include an additional variable x (also hard coded) parent() accesses the Field values. So, for example, the structure of u from Model 1 is:","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"parent(sol_atm.u[].x[])[,]","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"ENV[\"GKSwstype\"] = \"nul\"\nimport Plots\nPlots.GRBackend()\n\nshow_plots = isdefined(Main, :SHOWPLOTS) ? SHOWPLOTS : true\n\npath = joinpath(dirname(@__FILE__), \"images/\")\nmkpath(path);","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Vertical profile at start and end","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"t0_ = parent(sol_atm.u[1].x[1])[:, 1];\ntend_ = parent(sol_atm.u[end].x[1])[:, 1];\nz_centers = parent(Fields.coordinate_field(center_space_atm))[:, 1];\nshow_plots ?\nPlots.png(\n Plots.plot(\n [t0_ tend_],\n z_centers,\n title = \"model 1: atm\",\n labels = [\"t=0\" \"t=end\"],\n xlabel = \"T (K)\",\n ylabel = \"z (m)\",\n ),\n joinpath(path, \"tc1_f1.png\"),\n) : nothing","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"(Image: )","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Conservation: absolute \"energy\" of both models with time","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"convert to the same units (analogous to energy conservation, assuming that is both domains density=1 and thermal capacity=1)","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"lnd_sfc_u_t = [u[1] for u in sol_lnd.u] .* parameters.h_lnd;\natm_sum_u_t = [sum(parent(u.x[1])[:]) for u in sol_atm.u] .* (parameters.zmax_atm - parameters.zmin_atm) ./ parameters.n;\nv1 = lnd_sfc_u_t .- lnd_sfc_u_t[1];\nv2 = atm_sum_u_t .- atm_sum_u_t[1];\nshow_plots ?\nPlots.png(\n Plots.plot(\n sol_lnd.t,\n [v1 v2 v1 + v2],\n labels = [\"lnd\" \"atm\" \"tot\"],\n xlabel = \"time (s)\",\n ylabel = \"pseudo-energy (J / m2)\",\n ),\n joinpath(path, \"tc1_f2.png\"),\n) : nothing","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"(Image: )","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"Conservation: relative error with time","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"total = atm_sum_u_t + lnd_sfc_u_t;\nrel_error = (total .- total[1]) / mean(total);\nshow_plots ?\nPlots.png(\n Plots.plot(sol_lnd.t, rel_error, labels = [\"tot\"], xlabel = \"time (s)\", ylabel = \"relative error\"),\n joinpath(path, \"tc1_f3.png\"),\n) : nothing","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"(Image: )","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"","category":"page"},{"location":"generated/run/","page":"Heat Equation + Slab Tutorial","title":"Heat Equation + Slab Tutorial","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n grid,\n datetime::DateTime,\n units::Unitful.Units = Unitful.NoUnits, \n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\ngrid: grid the field is stored on.\ndatetime: time associated with the field state.\nunits: units associated with the field values. Dimensionless by default.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue, gridinfo, datetime::DateTime, units::Unitful.Units)\n\nUpdates coupler field fieldname with fieldvalue, the field's value at time datetime.\n\ngridinfo and units inform the coupler of the format of the inputted data allowing conversion to match the grid and units of the coupler field.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol, gridinfo, datetime::DateTime, units::Unitful.Units)\n\nRetrieve data array corresponding to fieldname.\n\nReturns data on the grid specified by gridinfo and in the units of units. Checks that the coupler data field is the state at time datetime.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"CoupledSimulation\n\nAn abstract type representing a coupled simulation.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR50/siteinfo.js b/previews/PR50/siteinfo.js new file mode 100644 index 000000000..7cde162d1 --- /dev/null +++ b/previews/PR50/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR50"; diff --git a/previews/PR50/timestepping/index.html b/previews/PR50/timestepping/index.html new file mode 100644 index 000000000..0ed143ee4 --- /dev/null +++ b/previews/PR50/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                            Coupled Simulations & Timestepping

                                            ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                            Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                            • step!: advances the component model in time
                                            • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                            • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                            ClimaCoupler.run!Function
                                            run!(::CoupledSimulation)

                                            A simple outer timestepping loop for coupled system runs.

                                            This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                            source
                                            ClimaCoupler.step!Function
                                            step!(sim, dt)

                                            Advances a simulation by dt.

                                            Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                            source
                                            ClimaCoupler.coupler_push!Function
                                            coupler_push!(coupler::CouplerState, model)

                                            Update coupler with fields retrieved from the coupler.

                                            coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                            source
                                            ClimaCoupler.coupler_pull!Function
                                            coupler_pull!(model, coupler::CouplerState)

                                            Update model with fields retrieved from the coupler.

                                            coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                            source
                                            diff --git a/previews/PR82/assets/documenter.js b/previews/PR82/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR82/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR82/assets/logo.svg b/previews/PR82/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR82/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR82/assets/search.js b/previews/PR82/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR82/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                          • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR82/assets/themes/documenter-dark.css b/previews/PR82/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR82/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                                            that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR82/assets/themes/documenter-light.css b/previews/PR82/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR82/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
                                            that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR82/assets/themeswap.js b/previews/PR82/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR82/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR82/assets/warner.js b/previews/PR82/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR82/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                                            Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR82/couplerstate/index.html b/previews/PR82/couplerstate/index.html new file mode 100644 index 000000000..4ba7a9415 --- /dev/null +++ b/previews/PR82/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                            Coupler State

                                            The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                            The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                            Coupler Object API

                                            ClimaCoupler.CouplerStateType
                                            CouplerState()

                                            Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                            A field is exported by one component and imported by one or more other components.

                                            source
                                            ClimaCoupler.coupler_add_field!Function
                                            coupler_add_field!(
                                            +        coupler::CouplerState,
                                            +        fieldname::Symbol,
                                            +        fieldvalue,
                                            +    )

                                            Add a field to the coupler that is accessible with key fieldname.

                                            Arguments

                                            • coupler: coupler object the field is added to.
                                            • fieldname: key to access the field in the coupler.
                                            • fieldvalue: data array of field values.
                                            source
                                            ClimaCoupler.coupler_getFunction
                                            coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                            Retrieve data array corresponding to fieldname.

                                            If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                            source
                                            diff --git a/previews/PR82/generated/sea_breeze/atmos_rhs/index.html b/previews/PR82/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..6c36d5e4d --- /dev/null +++ b/previews/PR82/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                                            Atmospheric Model

                                            Atmosphere Conservation Equations

                                            Density:

                                            \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                                            Momentum (flux form):

                                            \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                                            Potential temperature:

                                            \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                                            Total Energy (possibly replace potential temperature equation with total energy conservation):

                                            \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                                            where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                                            Tracer transport:

                                            \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                                            Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                                            \[\rho\tau = -2\rho\nu\nabla u.\]

                                            Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                                            \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                                            with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                                            Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                                            Consider components of the viscous stress tensor in three dimensions:

                                            \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                                            Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                                            \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                                            Which can be interpreted as, for horizontal-momentum:

                                            1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                            2. Vertical divergence of vertical gradients of cell-centered variables $u$
                                            3. Vertical divergence of horizontal gradients of cell-face variables $w$

                                            and for vertical-momentum, as:

                                            1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                            2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                                            3. Vertical divergence of vertical gradients of cell-face variables $w$.

                                            Model Code

                                            push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                                            +
                                            +using Test
                                            +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                                            +
                                            +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                                            +using ClimaCore.Geometry
                                            +using ClimaCore.Utilities: PlusHalf
                                            +
                                            +using Logging: global_logger
                                            +using TerminalLoggers: TerminalLogger
                                            +global_logger(TerminalLogger())
                                            +
                                            +using ClimaCoupler
                                            +
                                            +# set up function space
                                            +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                                            +    FT = Float64
                                            +    vertdomain = Domains.IntervalDomain(
                                            +        Geometry.ZPoint{FT}(zlim[1]),
                                            +        Geometry.ZPoint{FT}(zlim[2]);
                                            +        boundary_tags = (:bottom, :top),
                                            +    )
                                            +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                                            +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                                            +
                                            +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                            +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                                            +    horztopology = Topologies.IntervalTopology(horzmesh)
                                            +
                                            +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                                            +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                                            +
                                            +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                                            +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                                            +    return (hv_center_space, hv_face_space)
                                            +end
                                            +
                                            +function pressure(ρθ)
                                            +    if ρθ >= 0
                                            +        return MSLP * (R_d * ρθ / MSLP)^γ
                                            +    else
                                            +        return NaN
                                            +    end
                                            +end
                                            +
                                            +Φ(z) = grav * z
                                            +
                                            +abstract type BCtag end
                                            +struct ZeroFlux <: BCtag end
                                            +
                                            +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                            +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                            +
                                            +function init_sea_breeze_2d(x, z)
                                            +    θ₀ = atm_T_ini
                                            +    cp_d = C_p
                                            +    cv_d = C_v
                                            +    p₀ = MSLP
                                            +    g = grav
                                            +    γ = cp_d / cv_d
                                            +    z_c = 100.0
                                            +    θ_b = atm_T_ini
                                            +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                                            +    θ = θ_b + θ_p # potential temperature
                                            +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                                            +    T = π_exn * θ # temperature
                                            +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                                            +    ρ = p / R_d / T # density
                                            +    ρθ = ρ * θ # potential temperature density
                                            +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                                            +end
                                            +
                                            +function atm_rhs!(dY, Y, params, t)
                                            +    ρw = Y.ρw
                                            +    Yc = Y.Yc
                                            +    dYc = dY.Yc
                                            +    dρw = dY.ρw
                                            +
                                            +    center_coords = Fields.coordinate_field(axes(Yc))
                                            +
                                            +    # spectral horizontal operators
                                            +    hdiv = Operators.Divergence()
                                            +    hgrad = Operators.Gradient()
                                            +    hwdiv = Operators.WeakDivergence()
                                            +    hwgrad = Operators.WeakGradient()
                                            +
                                            +    # vertical FD operators with BC's
                                            +    vdivf2c = Operators.DivergenceF2C(
                                            +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                            +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                            +    )
                                            +    vvdivc2f = Operators.DivergenceC2F(
                                            +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                                            +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                                            +    )
                                            +    uvdivf2c = Operators.DivergenceF2C(
                                            +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                            +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                            +    )
                                            +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                            +    Ic = Operators.InterpolateF2C()
                                            +    ∂ = Operators.DivergenceF2C(
                                            +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                            +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                            +    )
                                            +    ∂f = Operators.GradientC2F()
                                            +    ∂c = Operators.GradientF2C()
                                            +    B = Operators.SetBoundaryOperator(
                                            +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                            +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                            +    )
                                            +
                                            +    ∇_z_ρθ = Operators.DivergenceF2C(
                                            +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                                            +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                                            +    )
                                            +
                                            +    uₕ = @. Yc.ρuₕ / Yc.ρ
                                            +    w = @. ρw / If(Yc.ρ)
                                            +    wc = @. Ic(ρw) / Yc.ρ
                                            +    p = @. pressure(Yc.ρθ)
                                            +    θ = @. Yc.ρθ / Yc.ρ
                                            +    Yfρ = @. If(Yc.ρ)
                                            +
                                            +    ### HYPERVISCOSITY
                                            +    # 1) compute hyperviscosity coefficients
                                            +    @. dYc.ρθ = hwdiv(hgrad(θ))
                                            +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                                            +    @. dρw = hwdiv(hgrad(w))
                                            +    Spaces.weighted_dss!(dYc)
                                            +    Spaces.weighted_dss!(dρw)
                                            +
                                            +    κ₄ = 0.0 # m^4/s
                                            +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                                            +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                                            +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                                            +
                                            +    # density
                                            +    @. dYc.ρ = -∂(ρw)
                                            +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                                            +
                                            +    # potential temperature
                                            +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                                            +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                                            +
                                            +    # horizontal momentum
                                            +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                                            +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                                            +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                                            +
                                            +    # vertical momentum
                                            +    @. dρw +=
                                            +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                                            +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                                            +    @. dρw -= hdiv(uₕf ⊗ ρw)
                                            +
                                            +    # DIFFUSION
                                            +    κ₂ = 5.0 # m^2/s
                                            +    #  1a) horizontal div of horizontal grad of horiz momentun
                                            +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                                            +    #  1b) vertical div of vertical grad of horiz momentun
                                            +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                                            +
                                            +    #  1c) horizontal div of horizontal grad of vert momentum
                                            +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                                            +    #  1d) vertical div of vertical grad of vert momentun
                                            +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                                            +
                                            +    #  2a) horizontal div of horizontal grad of potential temperature
                                            +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                                            +    #  2b) vertical div of vertial grad of potential temperature
                                            +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                                            +
                                            +    Spaces.weighted_dss!(dYc)
                                            +    Spaces.weighted_dss!(dρw)
                                            +    return dY
                                            +end
                                            +
                                            +# init simulation
                                            +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                                            +
                                            +    # construct domain spaces
                                            +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                                            +    center_coords = Fields.coordinate_field(hv_center_space)
                                            +    face_coords = Fields.coordinate_field(hv_face_space)
                                            +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                                            +
                                            +    # initialize prognostic variables
                                            +    Yc = map(center_coords) do coord
                                            +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                                            +        sea_breeze
                                            +    end
                                            +
                                            +    ρw = map(face_coords) do coord
                                            +        Geometry.WVector(0.0)
                                            +    end
                                            +
                                            +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                                            +
                                            +    # select boundary conditions
                                            +    if bc === nothing
                                            +        bc = (
                                            +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                                            +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                                            +        )
                                            +    end
                                            +
                                            +    return Y, bc, domain
                                            +end
                                            +
                                            +using OrdinaryDiffEq
                                            +function atm_run!(Y, bc, domain)
                                            +    dYdt = similar(Y)
                                            +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                                            +    atm_rhs!(dYdt, Y, params, 0.0)
                                            +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                                            +    Δt = 0.025
                                            +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                                            +end

                                            Coupled Atmos Wrappers

                                            # Atmos Simulation - later to live in ClimaAtmos
                                            +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                                            +    integrator::Any
                                            +end
                                            +
                                            +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                            +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                                            +
                                            +    atm_integ = init(
                                            +        atm_prob,
                                            +        timestepper,
                                            +        dt = dt,
                                            +        saveat = saveat,
                                            +        progress = true,
                                            +        progress_message = (dt, u, params, t) -> t,
                                            +        callback = callbacks,
                                            +    )
                                            +
                                            +    return AtmosSimulation(atm_integ)
                                            +end
                                            +
                                            +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                                            +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                                            +end
                                            +
                                            +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                                            +    # reset flux accumulator
                                            +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                                            +
                                            +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                                            +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                                            +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                                            +end

                                            Coupled Boundary Conditions

                                            The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                                            To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                                            struct CoupledFlux <: BCtag end
                                            +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                                            +    # flux calculation
                                            +    Yc = Y.Yc
                                            +    uₕ = Yc.ρuₕ ./ Yc.ρ
                                            +    ρw = Y.ρw
                                            +    If2c = Operators.InterpolateF2C()
                                            +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                            +    w = If2c.(ρw) ./ Yc.ρ
                                            +    cuv = @. Geometry.UWVector(uₕ)
                                            +    windspeed = @. norm(cuv)
                                            +    windspeed_boundary = Fields.level(windspeed, 1)
                                            +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                                            +    ρ_boundary = Fields.level(Yc.ρ, 1)
                                            +
                                            +    # build atmos face fields on surface boundary space to enable broadcasting
                                            +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                                            +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                                            +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                                            +
                                            +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                                            +    dθ = @. θ_boundary - p.T_sfc
                                            +    heat_flux = @. -λ * dθ
                                            +    @. dY.F_sfc += heat_flux # accumulation
                                            +
                                            +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                                            +end

                                            This page was generated using Literate.jl.

                                            diff --git a/previews/PR82/generated/sea_breeze/land_rhs/index.html b/previews/PR82/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..d802def23 --- /dev/null +++ b/previews/PR82/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                                            Land Model

                                            Slab Land ODE

                                            For our land component, we solve a simple slab land ODE:

                                            \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                                            • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                                            • and $F_{integ}$ is the integrated surface fluxes in time.

                                            Model Code

                                            function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                                            +    """
                                            +    Slab layer equation
                                            +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                                            +        where
                                            +            F_accumulated = F_integrated / Δt_coupler
                                            +    """
                                            +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                                            +    @unpack T_sfc = du
                                            +
                                            +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                                            +end
                                            +
                                            +# set up domain
                                            +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                            +    FT = Float64
                                            +
                                            +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                            +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                            +    topology = Topologies.IntervalTopology(mesh)
                                            +
                                            +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                            +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                            +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                            +
                                            +    return space
                                            +end
                                            +
                                            +# init simulation
                                            +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                            +
                                            +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                            +    space = hspace_1D((xmin, xmax), npoly, helem)
                                            +    coords = Fields.coordinate_field(space)
                                            +    domain = space
                                            +
                                            +    # initial condition
                                            +    T_sfc = map(coords) do coord
                                            +        T_sfc = 273.0
                                            +    end
                                            +
                                            +    # prognostic variable
                                            +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                            +
                                            +    return Y, domain
                                            +end

                                            Coupled Land Wrappers

                                            # Land Simulation - later to live in ClimaLSM
                                            +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                                            +    integrator::Any
                                            +end
                                            +
                                            +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                            +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                                            +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                            +    return LandSimulation(lnd_integ)
                                            +end
                                            +
                                            +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                                            +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                                            +end
                                            +
                                            +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                                            +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                                            +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                                            +end

                                            This page was generated using Literate.jl.

                                            diff --git a/previews/PR82/generated/sea_breeze/ocean_rhs/index.html b/previews/PR82/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..770854968 --- /dev/null +++ b/previews/PR82/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                                            Ocean Model

                                            Slab Ocean ODE

                                            For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                                            \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                                            • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                                            • and $F_{integ}$ is the integrated surface fluxes in time.

                                            Model Code

                                            function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                                            +    """
                                            +    Slab layer equation
                                            +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                                            +        where
                                            +            F_accumulated = F_integrated / Δt_coupler
                                            +    """
                                            +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                                            +    @unpack T_sfc = du
                                            +
                                            +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                                            +end
                                            +
                                            +# set up domain
                                            +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                            +    FT = Float64
                                            +
                                            +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                            +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                            +    topology = Topologies.IntervalTopology(mesh)
                                            +
                                            +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                            +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                            +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                            +
                                            +    return space
                                            +end
                                            +
                                            +# init simulation
                                            +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                            +
                                            +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                            +    space = hspace_1D((xmin, xmax), npoly, helem)
                                            +    coords = Fields.coordinate_field(space)
                                            +    domain = space
                                            +
                                            +    # initial condition
                                            +    T_sfc = map(coords) do coord
                                            +        T_sfc = 267.0
                                            +    end
                                            +
                                            +    # prognostic variable
                                            +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                            +
                                            +    return Y, domain
                                            +end

                                            Coupled Ocean Wrappers

                                            # Ocean Simulation - Later to live in Oceananigans
                                            +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                                            +    integrator::Any
                                            +end
                                            +
                                            +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                            +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                                            +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                            +    return OceanSimulation(ocn_integ)
                                            +end
                                            +
                                            +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                                            +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                                            +end
                                            +
                                            +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                                            +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                                            +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                                            +end

                                            This page was generated using Literate.jl.

                                            diff --git a/previews/PR82/generated/sea_breeze/run/index.html b/previews/PR82/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..a94dd2c4a --- /dev/null +++ b/previews/PR82/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                                            Coupled Sea Breeze

                                            Overview

                                            This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                                            In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                                            Model Initialization

                                            Component Models

                                            Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                                            In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                                            include("atmos_rhs.jl")
                                            +include("ocean_rhs.jl")
                                            +include("land_rhs.jl")
                                            +
                                            +# model parameters
                                            +const atm_T_ini = FT(270.0)
                                            +const MSLP = FT(1e5)
                                            +const grav = FT(9.8)
                                            +const R_d = FT(287.058)
                                            +const γ = FT(1.4)
                                            +const C_p = FT(R_d * γ / (γ - 1))
                                            +const C_v = FT(R_d / (γ - 1))
                                            +const R_m = R_d
                                            +cpl_parameters = (
                                            +    # atmos parameters
                                            +    atm_μ = FT(0.0001), # diffusion coefficient
                                            +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                                            +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                                            +    MSLP = MSLP, # mean sea level pressure
                                            +    grav = grav, # gravitational constant
                                            +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                                            +    γ = γ, # heat capacity ratio
                                            +    C_p = C_p, # heat capacity at constant pressure
                                            +    C_v = C_v, # heat capacity at constant volume
                                            +    R_m = R_m, # moist R, assumed to be dry
                                            +    # land slab parameters
                                            +    lnd_h = FT(0.5), # depth of slab layer [m]
                                            +    lnd_ρ = FT(1500), # density [kg m^-3]
                                            +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                                            +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                            +    # ocean slab parameters
                                            +    ocn_h = FT(0.5), # depth of slab layer [m]
                                            +    ocn_ρ = FT(1025), # density [kg m^-3]
                                            +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                                            +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                            +    # coupling parameters
                                            +    C_H = FT(0.0015),
                                            +)
                                            +
                                            +# DSS callback
                                            +function make_dss_func()
                                            +    function _dss!(x::Fields.Field)
                                            +        Spaces.weighted_dss!(x)
                                            +    end
                                            +    function _dss!(::Any)
                                            +        nothing
                                            +    end
                                            +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                                            +    return dss_func
                                            +end
                                            +dss_func = make_dss_func()
                                            +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                                            Initialization

                                            The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                                            Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                                            @info "Init Models and Maps"
                                            +
                                            +t_start, t_end = (0.0, 1.0)
                                            +Δt_coupled = 0.1
                                            +saveat = 1e2
                                            +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                                            +
                                            +# Initialize Models
                                            +atm_Y_default, atm_bc, atm_domain = atm_init(
                                            +    xmin = -500,
                                            +    xmax = 500,
                                            +    zmin = 0,
                                            +    zmax = 1000,
                                            +    npoly = 4,
                                            +    helem = 20,
                                            +    velem = 20,
                                            +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                                            +)
                                            +
                                            +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                                            +
                                            +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                                            Remapping

                                            Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                                            atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                                            +
                                            +maps = (
                                            +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                                            +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                                            +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                                            +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                                            +)
                                            +
                                            +# initialize coupling fields
                                            +atm_T_sfc =
                                            +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                                            +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                                            +atm_F_sfc = Fields.zeros(atm_boundary)
                                            +ocn_F_sfc = Fields.zeros(ocn_domain)
                                            +lnd_F_sfc = Fields.zeros(lnd_domain)

                                            Simulations

                                            Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                                            atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                                            +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                                            +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                                            +
                                            +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                                            +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                                            +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                                            +
                                            +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                                            +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                                            +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                                            Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                                            struct AOLCoupledSimulation{
                                            +    A <: AtmosSimulation,
                                            +    O <: OceanSimulation,
                                            +    L <: LandSimulation,
                                            +    C <: ClimaCoupler.CouplerState,
                                            +} <: ClimaCoupler.AbstractCoupledSimulation
                                            +    # Atmosphere Simulation
                                            +    atmos::A
                                            +    # Ocean Simulation
                                            +    ocean::O
                                            +    # Land Simulation
                                            +    land::L
                                            +    # Coupler storage
                                            +    coupler::C
                                            +end

                                            step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                                            function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                                            +    Δt = t_stop - sim.integrator.t
                                            +    step!(sim.integrator, Δt, true)
                                            +end

                                            The Coupler

                                            The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                                            After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                                            Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                                            Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                                            \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                                            where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                                            coupler = CouplerState(Δt_coupled)
                                            +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                                            +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                                            +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                                            +for (name, map) in pairs(maps)
                                            +    coupler_add_map!(coupler, name, map)
                                            +end
                                            +
                                            +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                                            Coupled Time Integration

                                            Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                                            Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                                            Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                                            \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                                            where $F_{integ}$ has units of $J m^{-2}$.

                                            function cpl_run(simulation::AOLCoupledSimulation)
                                            +    @info "Run model"
                                            +    @unpack atmos, ocean, land, coupler = simulation
                                            +    Δt_coupled = coupler.Δt_coupled
                                            +    # coupler stepping
                                            +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                                            +        # Atmos
                                            +        coupler_pull!(atmos, coupler)
                                            +        step!(atmos, t)
                                            +        coupler_push!(coupler, atmos)
                                            +
                                            +        # Ocean
                                            +        coupler_pull!(ocean, coupler)
                                            +        step!(ocean, t)
                                            +        coupler_push!(coupler, ocean)
                                            +
                                            +        # Land
                                            +        coupler_pull!(land, coupler)
                                            +        step!(land, t)
                                            +        coupler_push!(coupler, land)
                                            +    end
                                            +    @info "Simulation Complete"
                                            +end
                                            +
                                            +# Run simulation
                                            +cpl_run(sim)

                                            References


                                            This page was generated using Literate.jl.

                                            diff --git a/previews/PR82/images/cplsetup.png b/previews/PR82/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR82/index.html b/previews/PR82/index.html new file mode 100644 index 000000000..a5ad04a56 --- /dev/null +++ b/previews/PR82/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                            ClimaCoupler.jl

                                            Coupling CliMA Models

                                            ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                            • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                            • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                            The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                            Coupler Scheme
                                            ClimaCoupler.jl allows for independent development of interchangeable component models.
                                            diff --git a/previews/PR82/search/index.html b/previews/PR82/search/index.html new file mode 100644 index 000000000..16f1f8e00 --- /dev/null +++ b/previews/PR82/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                            Loading search...

                                              diff --git a/previews/PR82/search_index.js b/previews/PR82/search_index.js new file mode 100644 index 000000000..d4b08844d --- /dev/null +++ b/previews/PR82/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"}] +} diff --git a/previews/PR82/siteinfo.js b/previews/PR82/siteinfo.js new file mode 100644 index 000000000..a267a8cd5 --- /dev/null +++ b/previews/PR82/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR82"; diff --git a/previews/PR82/timestepping/index.html b/previews/PR82/timestepping/index.html new file mode 100644 index 000000000..6bee2132f --- /dev/null +++ b/previews/PR82/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                              Coupled Simulations & Timestepping

                                              ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                              Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                              • step!: advances the component model in time
                                              • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                              • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                              Missing docstring.

                                              Missing docstring for ClimaCoupler.CoupledSimulation. Check Documenter's build log for details.

                                              ClimaCoupler.run!Function
                                              run!(::CoupledSimulation)

                                              A simple outer timestepping loop for coupled system runs.

                                              This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                              source
                                              ClimaCoupler.step!Function
                                              step!(sim, dt)

                                              Advances a simulation by dt.

                                              Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                              source
                                              ClimaCoupler.coupler_push!Function
                                              coupler_push!(coupler::CouplerState, model)

                                              Update coupler with fields retrieved from the coupler.

                                              coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                              source
                                              ClimaCoupler.coupler_pull!Function
                                              coupler_pull!(model, coupler::CouplerState)

                                              Update model with fields retrieved from the coupler.

                                              coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                              source
                                              diff --git a/previews/PR91/assets/documenter.js b/previews/PR91/assets/documenter.js new file mode 100644 index 000000000..15dc682b9 --- /dev/null +++ b/previews/PR91/assets/documenter.js @@ -0,0 +1,264 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) { +$(document).ready(function() { + hljs.initHighlighting(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR91/assets/logo.svg b/previews/PR91/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR91/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR91/assets/search.js b/previews/PR91/assets/search.js new file mode 100644 index 000000000..71ebd87ed --- /dev/null +++ b/previews/PR91/assets/search.js @@ -0,0 +1,251 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.6/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                            • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR91/assets/themes/documenter-dark.css b/previews/PR91/assets/themes/documenter-dark.css new file mode 100644 index 000000000..f866234ff --- /dev/null +++ b/previews/PR91/assets/themes/documenter-dark.css @@ -0,0 +1,7642 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close, .is-unselectable, html.theme--documenter-dark .button, html.theme--documenter-dark .file, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after, html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .box:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:focus, html.theme--documenter-dark .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .delete:active, html.theme--documenter-dark .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete, html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.delete, html.theme--documenter-dark .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.delete, html.theme--documenter-dark .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .button.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, html.theme--documenter-dark .modal, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .button, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .button:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .is-active.button, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis { + outline: none; } + html.theme--documenter-dark .button[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], + fieldset[disabled] html.theme--documenter-dark .button, + html.theme--documenter-dark fieldset[disabled] .button, + fieldset[disabled] html.theme--documenter-dark .input, + html.theme--documenter-dark fieldset[disabled] .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + html.theme--documenter-dark fieldset[disabled] .textarea, + fieldset[disabled] html.theme--documenter-dark .select select, + html.theme--documenter-dark .select fieldset[disabled] select, + fieldset[disabled] html.theme--documenter-dark .file-cta, + html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, + fieldset[disabled] html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                                              that is identified by id #documenter. + */ + /* a11y-dark theme */ + /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ + /* @author: ericwbailey */ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #e74c3c; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark, + fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], + fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag:not(body).is-white, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-white, html.theme--documenter-dark .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag:not(body).is-black, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-black, html.theme--documenter-dark .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag:not(body).is-light, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-light, html.theme--documenter-dark .content kbd:not(body).is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag:not(body).is-dark, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-dark, html.theme--documenter-dark .content kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag:not(body).is-primary, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body).is-primary { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-link, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-link, html.theme--documenter-dark .content kbd:not(body).is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-info, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-info, html.theme--documenter-dark .content kbd:not(body).is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-success, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-success, html.theme--documenter-dark .content kbd:not(body).is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-warning, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-warning, html.theme--documenter-dark .content kbd:not(body).is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-danger, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-danger, html.theme--documenter-dark .content kbd:not(body).is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-normal, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-normal, html.theme--documenter-dark .content kbd:not(body).is-normal { + font-size: 0.85em; } + html.theme--documenter-dark .tag:not(body).is-medium, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-medium, html.theme--documenter-dark .content kbd:not(body).is-medium { + font-size: 15px; } + html.theme--documenter-dark .tag:not(body).is-large, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-large, html.theme--documenter-dark .content kbd:not(body).is-large { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body).is-delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete, html.theme--documenter-dark .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before, html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag:not(body).is-delete:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, html.theme--documenter-dark .content kbd:not(body).is-delete:hover, html.theme--documenter-dark .tag:not(body).is-delete:focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, html.theme--documenter-dark .content kbd:not(body).is-delete:focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag:not(body).is-delete:active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:active, html.theme--documenter-dark .content kbd:not(body).is-delete:active { + background-color: #111414; } + html.theme--documenter-dark .tag:not(body).is-rounded, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-rounded, html.theme--documenter-dark .content kbd:not(body).is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .select select.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], + fieldset[disabled] html.theme--documenter-dark .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + fieldset[disabled] html.theme--documenter-dark .select select { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .select select[disabled]::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .select select[disabled]:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly], html.theme--documenter-dark .textarea[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white, html.theme--documenter-dark .is-white.textarea { + border-color: white; } + html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-active, html.theme--documenter-dark .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black, html.theme--documenter-dark .is-black.textarea { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-active, html.theme--documenter-dark .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light, html.theme--documenter-dark .is-light.textarea { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-active, html.theme--documenter-dark .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark .content kbd.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link, html.theme--documenter-dark .is-link.textarea { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-active, html.theme--documenter-dark .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info, html.theme--documenter-dark .is-info.textarea { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-active, html.theme--documenter-dark .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success, html.theme--documenter-dark .is-success.textarea { + border-color: #008438; } + html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-active, html.theme--documenter-dark .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning, html.theme--documenter-dark .is-warning.textarea { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, html.theme--documenter-dark .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger, html.theme--documenter-dark .is-danger.textarea { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, html.theme--documenter-dark .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .is-small.textarea { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium, html.theme--documenter-dark .is-medium.textarea { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large, html.theme--documenter-dark .is-large.textarea { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth, html.theme--documenter-dark .is-fullwidth.textarea { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline, html.theme--documenter-dark .is-inline.textarea { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .checkbox, html.theme--documenter-dark .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .checkbox input, html.theme--documenter-dark .radio input { + cursor: pointer; } + html.theme--documenter-dark .checkbox:hover, html.theme--documenter-dark .radio:hover { + color: #8c9b9d; } + html.theme--documenter-dark .checkbox[disabled], html.theme--documenter-dark .radio[disabled], + fieldset[disabled] html.theme--documenter-dark .checkbox, + fieldset[disabled] html.theme--documenter-dark .radio { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, + fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .content kbd { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; + padding: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs { + display: block; + overflow-x: auto; + background: #2b2b2b; + color: #f8f8f2; + padding: 0.5em; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR91/assets/themes/documenter-light.css b/previews/PR91/assets/themes/documenter-light.css new file mode 100644 index 000000000..57fdf947d --- /dev/null +++ b/previews/PR91/assets/themes/documenter-light.css @@ -0,0 +1,7630 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child), .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .delete::before, .modal-close::before { + height: 2px; + width: 50%; } + .delete::after, .modal-close::after { + height: 50%; + width: 2px; } + .delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + .delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete, .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.button, .input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .button:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .file-cta:focus, + .file-name:focus, .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .is-focused.button, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, + .is-focused.file-name, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .button:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .file-cta:active, + .file-name:active, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .is-active.button, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active, .is-active.file-cta, + .is-active.file-name, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis { + outline: none; } + .button[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], + .file-name[disabled], .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], + fieldset[disabled] .button, + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select, + fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, + fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #7a7a7a !important; } + +.has-background-grey { + background-color: #7a7a7a !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #2e63b8; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], + fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], + fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], + fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], + fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], + fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], + fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], + fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], + fieldset[disabled] .button.is-dark, + fieldset[disabled] .content kbd.button, + .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], + fieldset[disabled] .button.is-dark.is-inverted, + fieldset[disabled] .content kbd.button.is-inverted, + .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-outlined, + fieldset[disabled] .content kbd.button.is-outlined, + .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] .content kbd.button.is-inverted.is-outlined, + .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary, + fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted, + fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], + fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], + fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], + fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], + fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], + fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], + fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], + fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], + fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], + fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], + fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], + fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } + +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .docstring > section > a.docs-sourcelink, .tags .content kbd, .content .tags kbd { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .docstring > section > a.docs-sourcelink, .tags.is-centered .content kbd, .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .docstring > section > a.docs-sourcelink, .tags.has-addons .content kbd, .content .tags.has-addons kbd { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete, .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag:not(body).is-white, .docstring > section > a.docs-sourcelink:not(body).is-white, .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + .tag:not(body).is-black, .docstring > section > a.docs-sourcelink:not(body).is-black, .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + .tag:not(body).is-light, .docstring > section > a.docs-sourcelink:not(body).is-light, .content kbd:not(body).is-light { + background-color: whitesmoke; + color: #363636; } + .tag:not(body).is-dark, .docstring > section > a.docs-sourcelink:not(body).is-dark, .content kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag:not(body).is-primary, .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body).is-primary { + background-color: #4eb5de; + color: #fff; } + .tag:not(body).is-link, .docstring > section > a.docs-sourcelink:not(body).is-link, .content kbd:not(body).is-link { + background-color: #2e63b8; + color: #fff; } + .tag:not(body).is-info, .docstring > section > a.docs-sourcelink:not(body).is-info, .content kbd:not(body).is-info { + background-color: #209cee; + color: #fff; } + .tag:not(body).is-success, .docstring > section > a.docs-sourcelink:not(body).is-success, .content kbd:not(body).is-success { + background-color: #22c35b; + color: #fff; } + .tag:not(body).is-warning, .docstring > section > a.docs-sourcelink:not(body).is-warning, .content kbd:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag:not(body).is-danger, .docstring > section > a.docs-sourcelink:not(body).is-danger, .content kbd:not(body).is-danger { + background-color: #da0b00; + color: #fff; } + .tag:not(body).is-normal, .docstring > section > a.docs-sourcelink:not(body).is-normal, .content kbd:not(body).is-normal { + font-size: 0.75rem; } + .tag:not(body).is-medium, .docstring > section > a.docs-sourcelink:not(body).is-medium, .content kbd:not(body).is-medium { + font-size: 1rem; } + .tag:not(body).is-large, .docstring > section > a.docs-sourcelink:not(body).is-large, .content kbd:not(body).is-large { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag:not(body).is-delete, .docstring > section > a.docs-sourcelink:not(body).is-delete, .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before, .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + .tag:not(body).is-delete:hover, .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, .content kbd:not(body).is-delete:hover, .tag:not(body).is-delete:focus, .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, .content kbd:not(body).is-delete:focus { + background-color: #e8e8e8; } + .tag:not(body).is-delete:active, .docstring > section > a.docs-sourcelink:not(body).is-delete:active, .content kbd:not(body).is-delete:active { + background-color: #dbdbdb; } + .tag:not(body).is-rounded, .docstring > section > a.docs-sourcelink:not(body).is-rounded, .content kbd:not(body).is-rounded, #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .docstring > section > a.docs-sourcelink, .title .content kbd, .content .title kbd, + .subtitle .tag, + .subtitle .docstring > section > a.docs-sourcelink, + .subtitle .content kbd, + .content .subtitle kbd { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .textarea:hover, .select select:hover, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; } + .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; } + .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, + fieldset[disabled] .input::-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder, + fieldset[disabled] .textarea::-moz-placeholder, + fieldset[disabled] .select select::-moz-placeholder, + .select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] .input::-webkit-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] .textarea::-webkit-input-placeholder, + fieldset[disabled] .select select::-webkit-input-placeholder, + .select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, + fieldset[disabled] .input:-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder, + fieldset[disabled] .textarea:-moz-placeholder, + fieldset[disabled] .select select:-moz-placeholder, + .select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] .input:-ms-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] .textarea:-ms-input-placeholder, + fieldset[disabled] .select select:-ms-input-placeholder, + .select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly], .textarea[readonly] { + box-shadow: none; } + .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white, .is-white.textarea { + border-color: white; } + .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.textarea:focus, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, .is-white.is-focused.textarea, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.textarea:active, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-active, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black, .is-black.textarea { + border-color: #0a0a0a; } + .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.textarea:focus, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, .is-black.is-focused.textarea, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.textarea:active, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-active, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light, .is-light.textarea { + border-color: whitesmoke; } + .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.textarea:focus, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, .is-light.is-focused.textarea, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.textarea:active, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-active, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.input, .content kbd.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .is-dark.textarea, .content kbd.textarea { + border-color: #363636; } + .is-dark.input:focus, .content kbd.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.is-focused.input, .content kbd.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.input:active, .content kbd.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.is-active.input, .content kbd.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, .is-dark.is-active.textarea, .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.input, .docstring > section > a.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary, .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.input:focus, .docstring > section > a.input.docs-sourcelink:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.is-focused.input, .docstring > section > a.is-focused.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.input:active, .docstring > section > a.input.docs-sourcelink:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.is-active.input, .docstring > section > a.is-active.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link, .is-link.textarea { + border-color: #2e63b8; } + .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.textarea:focus, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, .is-link.is-focused.textarea, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.textarea:active, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-active, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info, .is-info.textarea { + border-color: #209cee; } + .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.textarea:focus, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, .is-info.is-focused.textarea, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.textarea:active, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-active, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success, .is-success.textarea { + border-color: #22c35b; } + .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.textarea:focus, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, .is-success.is-focused.textarea, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.textarea:active, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-active, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning, .is-warning.textarea { + border-color: #ffdd57; } + .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, .is-warning.is-focused.textarea, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.textarea:active, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger, .is-danger.textarea { + border-color: #da0b00; } + .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, .is-danger.is-focused.textarea, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.textarea:active, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.input, #documenter .docs-sidebar form.docs-search > input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium, .is-medium.textarea { + font-size: 1.25rem; } + .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large, .is-large.textarea { + font-size: 1.5rem; } + .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth, .is-fullwidth.textarea { + display: block; + width: 100%; } + .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline, .is-inline.textarea { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .checkbox input, .radio input { + cursor: pointer; } + .checkbox:hover, .radio:hover { + color: #363636; } + .checkbox[disabled], .radio[disabled], + fieldset[disabled] .checkbox, + fieldset[disabled] .radio { + color: #7a7a7a; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, + fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #7a7a7a; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]).is-hovered, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input:not([disabled]).is-focused, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input:not([disabled]).is-active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select:not([disabled]).is-focused, + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input:not([disabled]).is-focused:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input:not([disabled]).is-active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select:not([disabled]).is-focused:hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, + .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon, + .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } + +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537e; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1em 1.25em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #2e63b8; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.33333%; } + .column.is-offset-1-mobile { + margin-left: 8.33333%; } + .column.is-2-mobile { + flex: none; + width: 16.66667%; } + .column.is-offset-2-mobile { + margin-left: 16.66667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.33333%; } + .column.is-offset-4-mobile { + margin-left: 33.33333%; } + .column.is-5-mobile { + flex: none; + width: 41.66667%; } + .column.is-offset-5-mobile { + margin-left: 41.66667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.33333%; } + .column.is-offset-7-mobile { + margin-left: 58.33333%; } + .column.is-8-mobile { + flex: none; + width: 66.66667%; } + .column.is-offset-8-mobile { + margin-left: 66.66667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.33333%; } + .column.is-offset-10-mobile { + margin-left: 83.33333%; } + .column.is-11-mobile { + flex: none; + width: 91.66667%; } + .column.is-offset-11-mobile { + margin-left: 91.66667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.33333%; } + .column.is-offset-1-touch { + margin-left: 8.33333%; } + .column.is-2-touch { + flex: none; + width: 16.66667%; } + .column.is-offset-2-touch { + margin-left: 16.66667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.33333%; } + .column.is-offset-4-touch { + margin-left: 33.33333%; } + .column.is-5-touch { + flex: none; + width: 41.66667%; } + .column.is-offset-5-touch { + margin-left: 41.66667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.33333%; } + .column.is-offset-7-touch { + margin-left: 58.33333%; } + .column.is-8-touch { + flex: none; + width: 66.66667%; } + .column.is-offset-8-touch { + margin-left: 66.66667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.33333%; } + .column.is-offset-10-touch { + margin-left: 83.33333%; } + .column.is-11-touch { + flex: none; + width: 91.66667%; } + .column.is-offset-11-touch { + margin-left: 91.66667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.33333%; } + .column.is-offset-1-desktop { + margin-left: 8.33333%; } + .column.is-2-desktop { + flex: none; + width: 16.66667%; } + .column.is-offset-2-desktop { + margin-left: 16.66667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.33333%; } + .column.is-offset-4-desktop { + margin-left: 33.33333%; } + .column.is-5-desktop { + flex: none; + width: 41.66667%; } + .column.is-offset-5-desktop { + margin-left: 41.66667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.33333%; } + .column.is-offset-7-desktop { + margin-left: 58.33333%; } + .column.is-8-desktop { + flex: none; + width: 66.66667%; } + .column.is-offset-8-desktop { + margin-left: 66.66667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.33333%; } + .column.is-offset-10-desktop { + margin-left: 83.33333%; } + .column.is-11-desktop { + flex: none; + width: 91.66667%; } + .column.is-offset-11-desktop { + margin-left: 91.66667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.33333%; } + .tile.is-2 { + flex: none; + width: 16.66667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.33333%; } + .tile.is-5 { + flex: none; + width: 41.66667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.33333%; } + .tile.is-8 { + flex: none; + width: 66.66667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.33333%; } + .tile.is-11 { + flex: none; + width: 91.66667%; } + .tile.is-12 { + flex: none; + width: 100%; } } + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .content kbd.hero .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover, .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } + +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #b8dffa; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #9beeb8; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ff857e; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: #fff; } + .admonition.is-compat { + background-color: #99e6f0; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 1em 1.25em; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; + padding: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +/* This file contain the overall layout. + * + * The main container is
                                              that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; } + +/* Base color: saturation 0; */ +.hljs, +.hljs-subst { + color: #444; } + +.hljs-comment { + color: #888888; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR91/assets/themeswap.js b/previews/PR91/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR91/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR91/couplerstate/index.html b/previews/PR91/couplerstate/index.html new file mode 100644 index 000000000..b7c8654ad --- /dev/null +++ b/previews/PR91/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                              Coupler State

                                              The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                              The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                              Coupler Object API

                                              ClimaCoupler.CouplerStateType
                                              CouplerState()

                                              Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                              A field is exported by one component and imported by one or more other components.

                                              source
                                              ClimaCoupler.coupler_add_field!Function
                                              coupler_add_field!(
                                              +        coupler::CouplerState,
                                              +        fieldname::Symbol,
                                              +        fieldvalue,
                                              +    )

                                              Add a field to the coupler that is accessible with key fieldname.

                                              Arguments

                                              • coupler: coupler object the field is added to.
                                              • fieldname: key to access the field in the coupler.
                                              • fieldvalue: data array of field values.
                                              source
                                              ClimaCoupler.coupler_getFunction
                                              coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                              Retrieve data array corresponding to fieldname.

                                              If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                              source
                                              diff --git a/previews/PR91/images/cplsetup.png b/previews/PR91/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 zcmdqJgLfs)vM3yD!ikd!Cbo@9GV#Q=ZQHhO+qP}n6Wi9?`JHpmz29B${R7|5+AEE! z?ylZ{fPlRHfq-5BMczk1Kn`?3KquNjKpe?HKjr@e{cfA?f*_iwTQ1k!%h(9+Y;(f;4i44h5=A821S|3dqR zu77pM_0<@Ml&y&YV8CC)`bE$6PY3^>vi}|)*Hf5lY!e`5ZRntx+*(SC9De{lI|kl#Xfg*YHQf2 zusSc36Qn>PS6#>X?M>9bvGLw^XlNwzTR%3uJ*DOG(Jh7bQiJ``OY5NB?jlC#yqp)s z$D5ZIA0H7B3JRa+9mQQB&9Tta`=q2`j!#TH7nPKhq_2D@Or+QQ>L7fC zm6df&3q+q5bfe1QQ}SMa>4?}@lPvg`nAq4a1l_ybuNfHqS`qtt6s{;x)?mSyO7il< zQ8zcX@`{SS$#|lb9`wI-mt_;pk2A6`*gA}dH93yzUd5nA&l(#WHQ=$au|G8E9IvAY z5HYwwd|eQ5IcH??yOHq8Q!wmQR4{pt(&2U0A08g6>*{tPGmr@h3oB>?s&mlMR%8?u zh(R_zo2n6<T+wWj{lCd9#oJn;}a{YrNwd zNIg$RR#ud+FNkNf4;nq3E?TXW?0smiCRk}%nT)bBnO98iIrOY`b8Bnw#6$$%Zw{r) z)ZiJWC_v|_TA+MBfr$9zw5+V?06F~@N5lmX-R%6?9i}q*K|mIA(eje88JhJ+agAhL zTwG5tGgzS=cE=TI*&;0f+AGw#1g%uPd3ALOXf)f0EAo#ax5mc8@D>*rRe3w`Ye>O{ zdFg0rqs$~l+hZmvt_3<>?s<>d|gLJUI_i!S{ECZgbZGEYvW-Ym_I6RJrR z0aUUgiZwMl`d3&@4g2lwZTs?as!1de4x7Z}1>6S2Cli3%Mk?RWoFU}xIqvne1G#QH zM*TaZbdGZ4c28s=GbYC8?#>=}h6W!Wh>wqNovh{%?QbbBuPcC9>JDZkloDW{^R*^I zA|kN6KI+g90^ZI8a&q#w?4;J4$;Zs_C-2+uW?_sKJW-($Y1rm_@$CQkWig6l2 zE!AM408<=hQW*{4Z5u76ovj@PgdIRQhwfc{*Py#-FzEwhZX+lO} zL4nO6b#JBV{>?G*jIYb-er=d2G6+h#;F(*Pkq;t%9&;@lx*&cw_17FyQxYG^bAX_@ zgvl3BQ&a!BRI@MUh8n)9oEu9g0|B<+18h4B6>`3!StL3ZmIF~?|A3m=oP|<&Q3FXn zHCWjGsT@V>^h{*ROhs-lpgWJ3UIX#1ET9|)bSZB~0swW6m1)_kqEJwI%*4PY1slY=|RvPnaI_~L4y;Tca7rAaBd4*33gp@>@U5grIYOmK~623u8nnN^)L zvdlg}L%kFP0nwjt6xmrnx#ONJx71~@_rCwg7e4wVBj6{7S^kcTOQV7Xu2ahAo%}do zBBwCda-@Kt{Ts}Guj04$eZ^^OAljP^8%|XvhfnVf2~`&3_azCKz6ZUO*udXsZep%3 z@h_Owj(F=K=*lB7tm*VgbwS8M-F^m>wVseq*2?5BG z{YC`rMIb$zj*6}jO?yPS%+d$wZe$>Z5kwTCfSB{Ckq>-BZiNc7G&0p#V`*_pJobar1Eap58k zfL(2b1f6EcAir-G3m0OcD$dWlOZtDC8&cRps(qtsC;1-fnAjnUesbuGj9wcpBMr{O znx=VbauX=-AnBtfFyjG6#)dG^=wxp{|2`6mc|!En(uje=Mt*GV==CL@l+I&{`uGpL zP!~DE7yWgC5T72paI6dB;|{BonbebLWNtBN;B)Ap(ard^wS2IQY(avry%7@-&4CGC z(D0=H?o$47%OC{*I2fx!xV=-}jDmx^9a`RtwTHGOVp~c>LsMK)vHz+_)TGbT$>4%7|IF)$gF#X}i`Pty<=4irEYBM?&i2TTLTPXc@ld-Y!^Zg?N5`uCA{3uBfQUH?cCa5V+o7sCK;K z*IW-8=6_LT}n ztrpoLeSs#v*1q9&(%uny3#z-;tG+HY+C=c+{4#HH3hYMX%P!EKh{+iG65&k&tOwJ!6!ABQG6D6>-4ws>hn+h1IgqRH3o&3TQUO* z!1=qVc^Zb@8Uzq(txbiXsWQN8UY?(ab!^U^K&+Bcz5N(o(XMI<#3b{ehp}NYGIPbF zIuHv@%a6Dy=BhKr1qI+LDk@ixk4a1&g3w#NBSs*wuo5r%0OtKPy7DAc%x=6QV}P#` z@GvmVvgnuC_!4d#Dr3MC`3ac$=h}%|msOnKc%+P|GTC#ryv~8)riBd{<@8`5odzo7 zRy^is$Eg9jN_mV{r+y2>i5Zj8F5XRSXxJi_Pf@943 zpd=BB_rpqoJlP2vy)}b6vS1Tpbn9sP{ANJNR^NaX)~nZ#C#kv!J2nuZjgZAw^L!k4 ztcC(~do$nx^HzMiE7E*1yKBKTL}R_QH6jbIJF_3Xpxks`s$k{R9N&YB-Eb2RNT76d zXZsl-Zpj!ej z;eWmflQmy~ud1FX2-F-Y#(ixg(YpmUM;k%zO*J>P>tj@|(TT zE$UQ~g0Uw8c~f*Y`@i2>f@BbJk>ffaW0;v&77tY83*QFwE%*1(nrabvyNBDRH`PPy z`KNL#?{Wd^=%4};;1n!_QZBIdgy&*Z zd2~yClZgoQD0<(UV(qUJF?m)V*NqXb10t8DjHkKlZc%4q5*?cm6xot> zlZB9y;^zm2`Sxw+^px{SQhvF%q!K8h6hj?7#;!#$#i-?N2ySr=a z6HO$`3x@D?&)6}Ahf~W3R^`NCa`7MbjM$;nN_7st_qupPCPa{NC^CQX2up|gacgxo z@E%h3dUuj&JQFbxn(!?UB}yG@yk6F;s7d~4Xc4B?& zkhgt2%Uqv32z6?tEv)vfnO)_U%<5fUVa-BMPmhh0)9#x=0~`f}EC)#ZLBiXEXdFRH zZ#xf+3NIS^)=2j9{s{$&?gFbV`#80Qi+$tjtg{0g^`Hy^fD}q3aS2C<16w4$bt7eE zIdpX%Vs-KmfqC|bA0h?Q2%S&~6bTC$KX8Z~;@pybeC|9?C~o0(F;sPS zx!kSeu>X|l^lhIpLT8RwP|;oxqL6;VCYG9$afddV3h}y1)u#eaKkTSt)aALaVZ#^d z_0)@qVil14)`afvP;ma>&NZLPfyw56>$)`5= zP%f-plh(2gEScHjHIr))I!5xNj0DK9P(9+7R09RLb*HxK_LyhOA#aRqmZTZ+mqLHy zcrkUDfteYkiHV8g($ZKEcHcl?0^U<0Q@dKNXw~E4h4Y>p2eV8TLOn4wO$YLEs`3^r zjeg;z)wx+lZeN$j@UXoq5(cxIrV*#LHB38Fgu|6qA}MNbq2e~D-%*~dEdBHhNN1&xo6gk@NL_%KwQgL@%x3~vz z>^^Es&uL@FiaKQu_dc%0S#R{y_4~V;Mq}+GaHpzdS{eORCzmKe3AM(I>!pB=geWN; zcd4{&Ix4euK(I_4wGi~tb__s+EaVTimxW2vlQ+UXfDSKIsLMlaro}x9 zG$Q;;5HxVZQ2-x;*z_^Z`MQHp#H=4Zep(&?ac_A3ZWw{Epvqd^gHInSy0sQ*0AE-# zyB6$WRlr|53s25~`|J?cL#1!++sp$0SSFR46yJ| z2Gnw9$Oa!vsgt6URmhL?31B1)qZ35fLU1-~9=V5U;upi!BZjRd1k~iP@+nS>Gg`<+ zBn&Fg)Hf(VtFj^^#Hm!27YvN8DD(o&t8yAz3bWAuHd1_FEbXTmI*ps($Opc&`Irsmok%AgWTai&mQAf!pSM@MK9azoWOQd6-9v>##9 zrvB!x5$+yo&8U-R1P7<~3drrk98{3+xnVT5w<29uaE|r*tL~~MB8e}-&AEDKj}e2C zTu188J~r;EXjGd04I4L(AmWtC4+DC36caV5JOMPV0*y8uaK6Dwr*$8$=cT7IGt0yu zm>ETp+$4bO-CN5s+06f@PH&Rm)woh$3_Gv`OfyVfsgp9xgl)GnI~yxzKQJ(R#iN9| zt-4PC{I{s6=oX;;r3lIVeWaLLs3>V!Z5!&QwkD~S>hM{OWs``>X#$Ly+NXeY@NP?M zQpY@>Rw(dTvA;g2S8NrsSO1m%SY(SoBhI)A3v8Ig$Ni?FJRfPdi%`iab=B6P3}T_v zt-%q>cj*ed1xd|dGpCa>tnH5=KoctHWxtx7UG}^vI^Csrut&Vzb;NXrbe$$3n8xv! z^E9atGNM!;WPUU^Awy4UR=p=LDFyFE3e@?I!tXAJZ$F=ouYOE)TEo+d)N+Lub59 zpn@8$&PD#tl}+6eBI+umxqLL|cV&`>zoD)XNEXJ%P`cXy1sf}m4|bgqq`x^MBSXj1 za?=i+Su^2Jr6sdu3W9;TX&=v_&LN+0dbQh}zV&Z(lr>T>OnWLD<c6ScU3v0h>x1{SLqe}>r^z&yGka+c`kEkF+tuTmv%0QWf{A%y z4QaZMmSHooc-351&>y+sG?$cwnDM{8zq?iBRbu0`v^HILSUNi!L^L{By%bBg*N$TMZZLu}msUpp6B7Fpnq#OmV6XX3*NWhg(xB88PBKg~R z`M-+d<8nnneZs?Got>S#`vq=O9zx?3`yy=}7*T6~p^yGKz^TEQXjmBz`%I>{j*(Sb znex-#92Kfh`UtkET8j(E#@KaiY&t7QY+lC$q1Vx5OHd9jT`l}5Ej{a$&M1Rj<#V7y zO<xxoPa6cE|=>#u1t1RQLE;oqy~a35PY!fm9& z{NuFO`F}6=j$`DE7g$c2Oo(p%cKDS~EN{9S7zlxahSs~Zq*U?_Us%`cZ?&_>2u$P< zI_m=zAa`%*xlP^BGTe3LevJMmw8kQ zrWSsN4A?QDiL;WiZn0#kg5I&wPft(X!^0wZ{?e5fiqvBZ6*S$!K63a;g(qK@P$(Q_ z_;S2Y2Y?T}HA%m|GmibEZe?Lj%J1t&wV@|NxUY=%qWEk^E<2GJbz3CNbT2O_w-N8} z?~~_o&I}voqw;)V)#+nTk1aS?0D(@J@H5I7(aiUVZK()<%Wmg{AWjFVg)T4veW zIMyoQ7}HpGz^I|tVegU3X0q^W4P02U0URzpvxcaOyJZvT^hUZE>lt@zC-UG|H#8O% zF~WB& zTA`5u5_8`~7H0#`lE?uP46M5SvG1jjO6m-^xfJ$XN2bbgz7UZEy^D~Qz>LuzClXJQUO0mX zlC5;q4dZ-tmp^;g0mcNaimDVOCuMlVtb2CwPf20QG=M2_t4u&5(Aqc6>k*s$pIa(A zvU_U!p3fpvIItk#p6F?hu)F@$~F` zBlfLCz9oS@s%~lu^78`)+_B4JmB#;`n;i=*D=Rb1RLU%SRqFs~Oz_?o>Az=Y<@+$6 zu+x38vBIF@L$_&?n+VA6WrKdhMdPu?wb4%~pMi!hU_hzract8_(v>#SdLVkoFxUTjS z4yeOYgeanCWC^jhzL}b zq$4m<%-k5P%25`_KyOH`1t{QMp>v-%E8pX&YWf>+$JO*$6ba1Kg2nDnjHW-`co0+3 zr!g)&M)5?SFh$#G@(iJs_7p^yeC0#|-0zlZAZSyeff)_Y_^yZ&@; zgT?n59z&5h!{g%u+S>Rc5t5MS5@EBfAa}F;ZbvAFiN8jiBdha(*fKLS@zZ=S_K#-r z+V@!!JqT!Xp?Vaa(v_m9)Q1aZdgX6!i>-k~6e z`NIu(zQM%Ae9L~fS!E>6Yo2@nKS}+$e=_;&83IJ_5{aB=0nAmx1?xu6vB&Cf8Xe2r zI7>)sAxE*!JobXFG|`_t88bD`C?(wOeIkq|ro?<<3S*BGY_*tVmBn2T8yQZ-Y;T76 zlQ{PltG08N@E`24moY(sfu{N(@nvf&dnbyN4~h@K)^`{o>2sgJm@uKUs9!hLe`ijc zvL1;TAHn&9(qxDf3j|kA512jujyEtDv>0(Y&j^ksM;~uP;4L#vySm3qO76!28O5UxeZWUNxD0)(Rn@Ou zKLNaTK=|>R*}?shTdJcg7C%7~%!87~l9`%z84i1enz$FlDiEab`*yG~_Qx8ufro~G zU>K+K;vF*Tr~unWg&#^f{8omlZ_Tmhu_6a``a`E`?*uJzQdU{w8#XPQYlOj1`7J&- zwK^1$Su!{PRUn^%ekJR?7UKR+w9NemC4`8$+kxLqh=(al5;#hHe}(*1eZQ6XkF1{Ra2R6@;DG!NMGtpKdE^5HNc-9&YK1ZN4 zs%sFIs{yr_B)_Aq4w0%nIt(87hJ>?Mz9?O?8jzUXNDAg$c|nm_#(9*PX&GjQCDh$L z?N1!2;ywO^r)`J~C1>_N9~lZ|mVqlUI`Mw7S_gG!!)G5XT*UcT{sc;1ercCXZ*{<6 zA(?dsPp?m7Ayq^CXjo-Qx2Jq}ddo z)xYl@N@Atc>K5|-2|r(UP@=MhTyg|sSU`?j4A|UR;4UK3l)0!8X&%sKNtC6Fn4zM- zeHXmR^~R6P%-iXX)aetjCLyQQ=C?qqrTtip>F!te`Yr^0Fp)Vr#j3g8;zv68B=(HC z;I?Y4^*WuxG(XS0U3km~b?Y$gCJqJ!ct`{BK~aChns9Kj*4tqp8B#_$CXh~a!cs6u zxx)D@-E22M=Dz*qNRQVhxvzWNKu@Jq6|6xu;3Z{y&*4FijUIbTpLTAh#W*Tfo`8b> z2hyaJhRdf{Y^(aJxRYvjRUQK?L?ldBS}tZy z^*BqRBsLpm1NOU5W1=gHmZo2+Zypujh`nI|&0ika?|%|l%uGu8URv)x`9*i)U6$P|UK*D1? zqfyyQhQEoGS>Ki;!lF~y691%Z#iRncM;+l}E(j@MmMfS78(2dVRE3gHAj)NX1p^`J zh|n3wQ%?%pWU%^k>vH4{oH!nOq2L?IX$LZPCaa(ptg`G!JDB6vQ@5@PZ)+$3r{#I|PPf@|`P^OhBEfN!D%4)Fc)T{q=J-^9 zE{;tS@M@rd$xI3-Tl=GK?|$Bhds&CqMs`#ku^ zs}fcB$Hv-I!`3HPNN{n?+uI>tS8w5#A|W9+_)ZLcGQ+#-c*hP28++T$>%@e_)7?93 zjoT0j3hJI+Nyf#N>yqEi2PNg`)kPXD;l;R3d?L!Nr%*(SH>wj4tQof256*T3Ew2}v za0zj1?6!y9QmGj0pYX^eQbWCImVM13t4Y0d#ARTRl0~|*@tg;dj{!M3nw?6cS->^~ z9$?KVnQz}HY#*$dTO0JM??M)lVamp2rQ>a&KH|1!R*uYEhuWvAd8xd9O!VKd6Q*3N zTtXOadEFyvdOeeW6k9#rqV(qJwsJl6^Ij@5glV}Q#$DR<#j0Hcd^Wbl8^i=3i1nR` zJl8zK1+5tSGFUaj@*p4Wt9;#XU9l)XuhF_Z`^IHN+MOL{U0ji#TqhLYK5ieKcdp%> zHBRbkYWOzsN^V#$I3l9y&ZQ5TnVT32GkSYd7q=%{bgmrgVx|Ps0gvmzJ})<8R8x0B z)z$ZV5Ec-DgR8ualXJ;#E|lR^A|9SWl9LKm{b?_QXm5=?;B!M@k0Z?{1##bLuE0sd zZn~qZ%g}hp^qb#Qg;W`88RxFf(LeW>2E(&_6;2!VW@;mY4j4|uV7DACpEV|%LsY6> zcM&Tynu432A8rw(qqF?RLeTfaUjw>6A=@H}eTcj$gb~gSC|WCB%!Q+}!W+`yw+}c! zdQYP%K9_UKwBVm4Lf*;ADh5~2jkK*y{1cjnU1X_-VlRrWS?Kt@CcZ=U}|F6Y@dOkM*ySEEbhj!inh~8+n+OLtR7MNK05isdN9nqU@mBkS zEeTq(TA)c*f4t(azRti2Hsd2HOR6+Yig<(!3`%I{T>Z4F@GKlX@z#seG3a9}6_(2m z1{*PvLZXia^Y;_MGwvhLu1D=I(8UN{vF^vlfU=E8`EMyXUg;oOBQrC~8@syg{W<0r zRY}FbcD&NHXU=CIIeJFMAx7E`nkwPfdHLWG9>*<)XNMJ07Zq}I^Ya>)cdYW)>#?$Y zbCr(CtY4nMZ)HesEBL6c8e$TMYq6YG=B7HU{$s`_CWE(>LOq+RU>(ux1kk<^5#AB6 z0vCGeZWkW&3j5uJ#_+J=mF-6et$H)o(ooB6L3y=oNCwAV-SpZ!*)P$ign;`HsxiF9 z3&}x$W1avzdq@Z^nXszY>r)!>WVE<^brsA>*g4bEDk6sB(sJ**Fzlp4gv+ggGH|e< z-o;A7bW-{i*3DO6NcWg~zO0`*F;5BiugHwNd9`~7ZFEjM65qrLW>k-hzw$yo2gnQp7&vR=BD2w;>B z^A6vVdlq*{r^6CzTIx6g<;O5wYYsi)19&YAVBMX0g9e%ihGPdB$B$0aKHU(?y53>$ z?;VP($_7fOHiuR(c@8&Vqki;IPk{PXorPI#JTZ0&Q(U@PwPfP8tfbs@*vWdtEj+ym zvi8y9W5{R0pM3T{GqzK2kV5b{y!<#@c@9e7b965Yxm@P%{xYtu)>LuFty0=~Q0 zD~Liw84lDE-x9F(?QnW6+TmJ>vLyN%3#T@lI=@u2>z%EaAh(6W{bHUBP>L#L z#j|H#O4xie#SSf- zjz?*7x}?8Zj`f=o1A`l=Q84%;mCNp`uLc2w9uX{-IA}0y-ma)xVhKqmun@ggRR*SYOla>Hw4C-nP zme@uwjt`MfZ$lF5vZT9=wZDr#ileF)&3$TWpo4Yd#FBr?1zm2|V6uzrdTrOBKVjS% z4dI>cAKK5#xjQh_#{JGoU(=_~l2Z;mw8SLFXhJ~~oX&Ox6R+q{X&v>-tI2^^Nm{H! ze-~<)%f1AaRaKJBl8eRs^IG~%u!#6_Jr)bC>y1lsJS-q(WV-QD6hu<0V|*(WG^PLS z>|}HI1=(+E6*T43|(%MO98s+M+$+lvpc8#WAbC%?tDiE|JwNQs@G3@r$INSgKm9f+h) z*aBxYjL@9P!8_nZpl59ZTBe7aQ5AKYyj34cS~iB~K}!H=46MS@&pgC-ME+F(sr{$|*lIitzU!1n6o2p%*x^ody zw-xFUFBVpLTf$x-G?$6t@;-0n8-d5)*-Uq39f+*)V>aZ(#ibTP`q69Btw!4uL@=GpYXC4RL+$TTL(BGZr<3(w`hf}qjhL^T=e`EcnEgbHe z6IF1aMx$~I#S4lWaA+aDryVqGtab_$n%Q5FC2i1pv5$3WYHZwj1f`OE81}|}^nVo; zl*d2;QD}fup2B$ahhjBU*j%9Xl*S1a0s+Pm>>f>7@vd&4doF2{R{Ts*n0eRk>NR_o$?4*H5bL&k%S(LG$5`(hhnJ5d1Gjy3ayVzTKty zMTg_EE?S5{66=RdZvsQF>)tJ%y}Tb= zuQ-E)LfTUwamg*)IW&Z{$(*QKo_7pJ?e>1K<_4PVcN;T3iCu{C2}(0cn(7)qqFt^L z4h~FviQiYg;ThV{U>P*+XCbWDVPtt+eNRnIr9VjJWQ!|G+cO|^8&R&;=2-l^Yiy4o zAUz*ezCoB>q@sP?y^pk`1jMgF@ z{1e`02YvVWcj;gzv>K#KU+kcj8+WO}sI%CvNpwUym-M_ZB>X&38q zTwPJ5PID3_kG{;(%W2rA0RKh=JI<-+Q*GA?f2WqL<{0tCKBF%Z_6ft@hX5o9u!msx z@O);;^ydgc4RH?B;iy#@$MunUaijhYEEwdAclks~x!NabQlW%+_|D<(Ptq_VV-Aia zQoK&^#|;<4P1kei=Y1tjcW*7Xb1S8MN7;s?c*X7h<4Eq$v?R?i037PlL~8J7=RK8` zSeMD#2N$ec8|6rTrt=OC*K=ch;$4MyKdX4f=SYuUX^Pa3tkDLOF}|{ zPX|E~&JR_1!vVAHZ@NFYaxo+x9$3Go6_YjGRSQa@SViKJGV|XX3~(8SI+% z6;0Av!3@VHt3<}=WSaK8pN&wCw=oi4nprC_&UX$f9&|7?4t2O}fm5Z?U^Fqyk29^QW$yH_fCmcoqVX&7RAKMO7AdB*{pLw79M3ibRK4O<4>OPDs#`Sl3=A9 z?si?z8xD)~y{YsX?fn!FB>s8SZG4Pulx_H}yX{4}3?_oPOa1y>vvW^%-R0E%`DY!+ zr^POA;%HNuKZRbkUrw0(;xA3h8+_U>%VqG`{*oz#PpgXdG5WmT>qW?|KISXc^~WPK z=Ucoe{Odcbr~9BLXPjJ`=7f|k;4l9_{JPRGUAT&n%Y_gJKPa#iK+fXx`iDt@_ z4tXY&a*K0k)2aG+0hGPN?um_WhZuyc^z;K)P>J^WbXvcd3=rCmUqVC-M}+l>8M(pj zzpTf!$8?{B1~`CugA=vYrEZxc`hKz1A+ad%;ez)X#Nlck_4ayA_{t}&Xo#iwk+;j2 zxFz2s>Yzc$DB0%ig8WX$A$|>OL4hx5PmVZk0?;Mew{hCOuM}+W*L*o7eOhWOd-}Mm^cbSIkfj>y(*_Hz7kZt#PLjQP@?&+f%$;Ue z36C>);ZfX-63+7YhJr|-PwNEcC?p9HzW3=o?&!h~ugS)I@Flg(DDHnfZ8>rrbLF8*7E%LiKSZ!Atu&W{sG z?7J*Y)%|`_?ZIAer~J#+N&b@o813OUTes75%0sca>YP?cRX68{cvt8lllKW8l0T(J zO5F|1(Mg2<(B|jW9#Xy_Lm6WMGpZ$G|2!byBe4+Tw}=@XW_KmPWpBZG->NrWRM+yb|=ljCyVlAv;l1vV;1@rlScR?%ree>OSH7p=XWyw|@UF?~B<%F^!28l>{m zOG~$zYB!{6e18D=f-)9H^pIY50=c#nSC;fGW&~m0PX3jB{p|Q8FfWHpq?cuBJd1nl z6q94k?r7jwplzesm#Ro=m$RjmmYwltk6R#x9_)|ovoh=2|IUgTFB5{v4ZMO`qOq7N zza#(SN5=IFXO@kF+gY>d^6Md5X0rZPC3W-pMUZlD9FgXwxor*Bc5? z5f5n;&fZ~shq?ZlGvF#iXZ(p=-IO$IRAY@rcVGiy?3D7>KQ??C_feU|LJDucV7yXL z3lO)&iwC95Ce%&+mv*@2jv3%|WjG>k{#wl4thSf9py^P$G`P35@%{n%=>k#J`G&vt zQRdUo0Dfj(QB}ITe{8$J%)oWJiBA7ugx7@=^vFQaj)5Z=Dgui!CyZJDY&ir+WkC6W{?9WxCH-gI(XpGrJlTrDhv@fTsIDr` zXPpLb?YCJswX>62367E`+)X&G{=8Dyl{8AKL%D=s5nDgO$~Ojc3Tk|dknh7fQws1{ zl!`M-DP!t6VY4A)zOdhKI4k<7gV{q zRTyp(IV34C|K;$yf5CtZ2<)33#Y*}+~zyp+|teY(9D-o8#nqC)D_GAS2U zOZfmVN#)#w>JUW*$)+Irn#Dw8W^A@}jb>_U8u(?imc{Bn9x)P8)!r%0btRTu$pb z+%c|4Ta_8bIS=bUtoJPDrL6a=XUMY3=o%Xb7bnk*Yv+Yrn#9edmc1^}n9dLmS@+7t zAvc$%cmCk4M@OH^+F2qL?(b#A561MeKTELE> zr}vtfxcUY)xER56o7dS{Y3ERoju$b;>%mVrHB@04p1=S+6T-_IglG+|0ZjM}VUL({ z%Rnqh8*5fRy?rQ$$%3$s>v9<$N7jhKvbEkqKB zwIUV>Joid36trLVX1XA1XfW2usk&ryH}!lULGJZJDz)wLd#HjD>8+FtZD__GisH7i zI|;7l4>&PYfik&p7#Xpz(630K78SRl&hEZqMO0GzF6vH7U|`b3AAwX;DNhytoAOHm ziiW6T)RjG?r@J;oaCr*{xGeF+_&k3Y*v2NsgMyL}+}}W|R_h8sMugL0mwS8jcrEp~ zQBT4i2JP%>m3e@zAEhflNu|zPPPr~p@FKOVDlbgAX9z2y0UFZ@-}co`-_t>w)t5uS zdb=~kl)wS1C*fKVYGvA}rcd~-**0P`3X3Jq;K=BO7UsJHDrv$@9@fjU3j;QN4z4P| zy&pa{u)_nC&gMkCQ))vaG>K0LX;mcmGQwu;<>p4Ggq2iMj$@Z3sk#D^)~3w1r`e#4 z;1@VZs$h0a4HBNm9TKkdHt=NoZp-eK(k$FoPBp#oY z)*ce_^Be~fDSZI997H6dO_qfB?lX==e`!2U@yG{WKs+J?BcqH`kvl(|!5lTI8wzny`IOkct6u>|Dv>` zz$uuJ{n>(C^2V$k`}4_V`^F`;B#I*^z#<4kub2WCNpN4FV1)65OHU@X6A6V(ICOth z4qx!3bw++^+7}rby!rlR+0vi{)W4~J!L*CofGt zkx5*?$Hh9kfRKAy3--?A_p%uFlKMo*Tokz+4EVLDxd5!Uj_&DQb_ZGsjdI@!ZT4L5qu;jY^c z{c#~6IZ4t@aH3tJ_3-Ti8?KbI{myYzu${r08Ly$ZLJHnn;}pi{GKglVb%mY~!MGgR zU^vwl5pcZjMT1WGyWkOmN%@L-BXVAqGm1n;2qn+`B-N z?jjTD`x1aQ0&75QWoOg-G(UpPpvMr7ll8=sUKIBt>29KfmFa}8Pf!J~C&as;%T(`>>Y_+G@RGm3`YTNHpietzn_Lg~} zcASq$#iKl-iwC9(_B{E&8UkIi#Apm-bJ)|*-5hhUzQee#KB24~vM}NXvg>iaO}qK} zU_1h5Z*7kH>Gid*2f+O;i=*q#W-`Eq$6XYV=$d}~!+w$$0T^AconX!{Q~_rxr0OiW)*+|bZ5fGs8B8G-Q` zNd3C!px~mbZw^d3gpbDH5JeG$DZizf$Fk+df-ckZ`viBM;&Ga+D<9^X{8_n$AQ3a+ zPC933Twbw$+t&IYteLh;>wR|B7ON$G3hsQ)!XG zGU>4d_-<5^WHA{0;h}cxI!CkNS^MZDDz*x1>iI)ySO54G5dssKf>uJdXA~`d_%$zl1URywABKb{hKO%kIuV? zL(Z+ghr|V_N*Zzt;E<0o;(0ZgkssfZx2o*-G%B<=*#()&$}D-km4t2K6{ur7@7BgY zemdf`g{v6`s5eY)AVb_mi42;)8fWv0l?)Cvq_ldIs$oK`T zeeQcoz=?K;>QmMAk;-@xM=C|Y#3XMiYH7mGG?5ED#&&>o3uY_%j(xy_OUF=y#n6w` z2dZOX;8S-P=iDlJ5>0f8w`6fX%Zk}#u#ZAVSYJ-FG(r{;8kdJ7m*C_dR(RPzZ6HYU zf2exPu(+CFTR0&k5C|4Xa0u@1Zb1h3;O_1)Xz<|f?(XjHgS*Y3L-61Z-@NCZ`#sP7 zH$P@~*WT4qy=v9!sEKaA7575HB3Wa7pXZi}04;IW^aV9)UFvNOU6=H>1J}I@#pM;B zD6*{OKZ2zj#3>O{(B;hs+v=F39d#i@0>O-EbbG#^2)CUnn<~!njrzV1rVk9T68Q~x zh)*W4=N?8Y|2>3t-gQTG*8ODXeK|%|TBYW@h4`?w^Yce;5#r#`&~}_8(KaX@=Z>Le zqd$$?vNmMA)igGhZLzKET&IYFnT4Ib7bkf>qq2vIve2=BLjetY)!}lQrH*hr8#8|H zV&pdP`7!&2%JET$RESt0T-??K*bak$9_|)}><>VKd?n}=8h;O_Og&14-lQcQnmN^5 zO%Dl@JJ#`!eb>ig+C6XV7I|7F3;3P2&A)Q^G6JExkd*-LW(Xn1RL{ z>vaE~Ho?0MXD38{0lsEtQBl!sDEyT)Eru#MGmtw1yyoU+8ze~q zGNdER$L|jViIJka*_fUC#5TC2^xnPRKKs-%a}AK)K?XCjxP350$n1U!U!!n)(^otH zYQ2jNc5pteP1o<-;rXf1io073369df-L=vADj`upS>ldO%Ij0-_C?&-l``F`ru2nx zb7{0}FYRtDNc6saeL#nN6zB4T=+R{tm2$0-8zM;dQ@63`(!OLg!8R>Dc1pE9cv;t- zFs1)6)beDd?jE+baDUKmbE5c)$p`KX<$pixFD#6V(dw`bH)@rMb600PBFxm*h;nn% zFx|hlrp3W#RzkcZk6V5VCj91)m{P}FJ z|Hg7RUyNMCM#d3eSjNufev;So{M_~2aS~Gy$nbi<|DhXO-W7(Z|4aFe0TQrXe?;4# z>yX7?&)JNwg!K8MvM~o$$&j<@taGd|CW7TJ!vNs>S8~c>_}&RM@-dvFBVz6ZB$YtU z4bGAZ$5G*@qJNPv&!S1h5N#T(Ano3twm>cm3Jc+}bOLVs0Y%`H9;=wFun3qMhs5tM z0%P_WdY*ta${gFv&EnCZBWhESWE-!&kat0Hg)z6_CtOIJjHZ?+qqoln`rqk#A-9Qf zsc&PKnYUd9WPxq#8Vc~r`X+nHW2i?X>k~~SR#t5iOd@IYhJcyt>D0}&-e6)=Od3mQ zmXczyn)X+R_2=xgp!&X<{nzkutJ?iu@lNjp9E~qZ5lWhxV`62>-uvC-#D33xMHe^6 zeDR+)Jddj~!&Fw(U}f~}k-bGSDSPjKjV3uA&K1Fsf^-g&Hxd(}uS=_K}3uV6Nrz za@sa5`D&KNU-DnM0XzQwA0Y0_P*?QEV+1&%*L$**W;8-xcp)JnU?O{XSZ>&yMnWLS z_zhMB$(Ly4Qys=5Why(Kr>7K;np5XD&kYEvsm*t!_56_=b~^p_DqE0KgPi2>eU86Q zd#rM=PA6XNefp2<-8q3+yKm((>VJ2Kqjt-kc}rR+{azoa{>0784E@0%3&Qpnl?s8znr~%iSIu%6C2KRYq#RS;uTtx%T$7hFOj(uhF9$l+ z{FXl!y4 z#biN3uxgJ^{)_i~u^j*E=hL^iAkuJQVQmbJE>DivhiN~f)3v5t^OuK%90V4-@Tecb zMux=UJ9`jAE4vY+oOKz0@~T2Z95#3xyK)I8YN%G09gROul`6Cx%V&btG8bl1l>(F;aproR+ z%IfM*;<)4mjcv{cx67)hch=$4u$s_cvOd04^KQ81KHj>xwcV7&z!di%4r`${(nm|C zdLl~k@$TYsWX%L)y^(byAZaD%EggRV-}I=|>0U7X2A2@ru*BR2Qek2qCYAgiqv@Wn z+xFLwjuR)4ppI$}yd=TJA1(VpuMHo9a62BmGb?50xyOrNGE&iraxe09dUbe!xM z8d!qNPJvbCUc7xAPE!j1yGRy1M(&naW6R3`n$W*U&uRXvFXlUSb?HwS#E7yX!|E26mBPB3 zq?H74pXO8-PJ@2em7yT1wDkA+2|oEOMyjhgfjVj{Q4yy04Xtc)_tNA`ni3Z*=_Y)- zZ?-5lSlQsCo7XPjetwJ5Nf0@y}0|jXhPiOes*eK5E(L&r6X&>op@SZQ>tdWGV}ZMSY_ixQ&E)VWd1z zpDi6mS=q_0V-k8&geT!lh4Da)h(bjI?&6@nS)%sfRxx#xyXLC{v)ge zDL1yVKJ}=)SnQe!J(fgRBt*~9YZc;iM`*sFAoRj+zF|BpMKzEZsV*+q)}C3mOM9h& zxXdE{?zl+aOPkGVLd6gk#HHYschU1ebQH?W5~Cs+6Fj| z@HkaH#)iy>BXM;&0A7)UgEWICy1InaxZ(Az%qU6nvwH3rxeNr-M52*=f`Zu{ymJp? zXaevsot&!d*0w02aHh8}$l3}Run>dJ(q>rofMz}Q$U9r2@{VGt6FGG}Gjg#w@~an1 zpm(;zr4gsjsVpNcskg3xvTK3W5*hFuyoRVIxtj;h0&3hi?qjx)N0*t0+GaNChfsr+pN| z^h(t#gLp!uPT9_kd!6ZTN@|(UKjiw_EpoB%ib@NrgNq4=*_oi2wsy&0P$(_r`^-&!A*P{$GeJS0jqh3&%oyDOyfS0d^}AX8 z#s5V3-{C`o<+DqjVs5gbtY_t@K!4#mvu~ z>pQ*p@tkD6Po>rtqDGz=ub!cgkau1r0E(2CmzOr)1aimtewxpNDhdKaMGoOJZUZP> zr6xKwZfoGRfb>j)h5duPXh7JFxVQy9gNTah$MkaR8D;&@rD2Ii7QR2X&FX?5l~eF= z@cUwi(zsY#eup)EleIZDIQk3kY=&;JeT0PUj-~+w))BjnJ@c1hy*@vC13xkI=I}UE zwvhH57H6pPR%7u}9r6j-p+ug}Z9z$z=@8l}C5Drkn_MJp55+ZjD!8~~O!^DrlOBpH zX+Z?otcuS+eL{Nk*eq*Vh(jpoAO3VFCMSQN>it!vH59c!p5Do?(avl(@w_{k>hq4Ucxj2bxiNr6CdhD*9V29Tm>wL5F(I_E9kB*p z8je?O%x!8*6JN6uW{Y5h=x7H@Kvf{Ul~0GI#@p7`5lDtZ0e@HS5&DyH5!XV3`Z*Qv zvKcN-U|~6vN2br*U&U%$r?ajpp)8h5 zguHh`1<{|A_OnHek++B*e)EPT#E{@ZUoPwqH0hmx)g3VC;|(cT)I5zalxS3+)!9sl zyya8snt>t<9eAaj@B};?GsCPK)I4=X-b+tqi66GHQFpjtn9=)3M1@j0%Q^1C_D9w| z74f`C`@!A{Tof18{r&vBd^pr?42MYEk0q&bwFWL0)_E^BMr$zah0r0!LhC4x53?w7!>xh12!*7W;!QnMU#| zBu!L+?PYzxt|i${PA-Jtk?8teM7;6wtx;0Y>eGGS)O5_pz}khs{OKBq>qwM!N#>@^ zVkN4nEOMd8_hBcg?_?C1qUI>^GgE*09dfnUt`FmKX(p;T{D^M^>`-F=)TIW>l3gwL zye7RdQM2a2B*56Q&wt9u;cWz((arr_I1CY9TRqa;|e| z|C7IXn)dh38q@3I!S@Q#SxfpIl~Wg`nYy#IS={f)z5hium)JhO7m(z8xd&*i7tk@< za*0*Sz>?8c!F0Mi7k};UvN>;mH zFCOUq$+kv(Iq`b4tS=&>>PbsMLE$9hR4(I&IoN97b+eRRZvD~(iw+DPF86I>Px z!Z{rm{0aH&wX7)Wk>*x>NA>wp1uT@2C&CDir?lvxbzl}&L6kAtahZv^y}#H6jw>1M zP~sUeZXPHlB!!)1@x^wya}lI19PsiJL`Pa$8`GG|b~0~&m0tZGa&VpYuiFi^(tF|Q zvd(A-iP1Ho$>UD+4Xu#0#KLl~g<*X?`3PCp{So0Qt67M;6a;fRNX+DS^+7!Kj~2V^$meUP+* zr=>9q$el>eXiPGoElYq!|#dwC|-E9QtsC{wFl&K41uN|-sy*_rMU zXD1JTc}g`*p+t!v$4!uVytOWTy=1c?AVlZ1f4@;6=`g@%>*F$J5zYR|E>5X*a!Pb= zjiXdnK7dB0Dx<+%VKI1aJbu}~t4rXl^Gg1~!PMs1|Ms^&aQ_>DfM?>!G}T=V%m^ZR z`Sz@)e=zuOgDvp(c0D!E=xu^2Ei& z#M<^|i~Ldj@_axrXZCMy5}FkLl=Ys@7RdDx)Gtn^M0Ryex*UWj_kQ4UawdgBsA<|_ z@-%^z`ECxHsLj9cf{jP|*xX!*Rgb_`uq7?lXNUVFt;ln$KErT~9-5@NRH->{3Q2DU zNXf~5rRwTbj{T;b;GR61#M7Plm~XE0og})@c1=3BZT{8wz&x`#$rFi5N85=ArV;d? zpc0Lo44p+8HFr$=8m-45f8KXbj;T%|h{t=qGkL@dwMp$ZEyac29}g62D_+m6ufBKO z!JU|Y3};0Q#mD|c;VkLeyrt}f9BV(ohQk9g3V=fOuVhwjD>U8u-W`_T)Vso*<9bEy z8B^Kfv#e+BSZeQPMI#m+&I|mf--_7RQmKgaLT)?X&4HUchSZfi_dTqxu5Ke<2m9sK z^eV|mnZV6x!=zLKk1Fk(faZcq9E<&B_m8*RY#BZ_9j~uv{%i(@WGH9>*@ubXMd&cC z$>2-SR+>KRj_NsUu~HKdU&Z~Uzy6OL5$-!_(W!d4+jAun-6c0`F>v|uUZ1$5u zbNtI}K2bn0A7SBl>eV`9X&wr16XbCT>H+;dw`#51 zTKx*O&QU@Bd5-#OLtS==?29S6RX#YNQ`NVf0wt&qZ5_HTb3je#V`NCXVO5g;Zo(Dp zJR7j0m?AQ(@V2)n3OzlIQvQyVkovuC4htK5ATW54JWN#|NpovDgA1)smbKbcL<%uN zE`!sb97objsm5uufYF%s4r%IZ#F<3d`x}L77q~lpGxpYWGCYhJ{@Q12O zck-@}AysKx7>NQkZ;)N!8xq3f#R#!8nYbt5n8`s#!AI%=Ph8RKdvwyDbV2@3v~cP&Gxasm;QU+OXVte~s$;X9}aPwY9Z`oF-C4Q0XHB zYZUAG=?E+Cu3JE$tvxM)u9o`#q$$_>akrtyiIXbMXh4`6nzt|JlN2+a8LX zGkJ=b%Wg6&Ba0+}gG)1Q`1Td&165V9Sdfu_`c$?+1Ol;lE#z}1uPf5tog65Ge(uRw z=f#cMA8Bt#e2(*DAxTUaww{MS+eP-58QugLrqb{!$mk&IkYxr8o;na51VRvT@G=Uh zeXt2$u;b%IAW5Mf?py8UB&gKZ@=u$G4{E9WT6}@ZqtLvw>CPS6YT7&ZUp6%zLXT2i zw>5q*5hZKn-w1-g7ZLNu!rbz^aTugF-4PIOZ>%TwUK9wJXqYxLbNK%3E0 z37mD`{E+a5i*Sf+HlA97d4<+uxUH7pW;3$dsQOdzmRzQK&ONaPoL{QM|Dj$xH?Ud4 z;#~Vy7q`)>J|-v#zKwzh_lQBaJyAOzwwq`lnxw6VGJ}nS9?Nx7kq@;Ey=i!}Ncixq z>Q|Oxt#pUk&1|!ERipj`*CuZ2kUo&n!g4~2Y3^FiqP%r@-0RfRVdIr5!dxht($-q9wHk0tGDjmLR!rLi zc>RWvho#QY|pdH=Lm$B_4W)sC_BEd-i}4{!!&|D_KCrC6LzZ_jo>XX&Gan zIY?#vtR1G{v3>=1rNy_Ka&xFZ))rU_))IL8kMe)J^j#KrJ5QP1Bu{*-sNC5?DO^t+ z_H#=vM`o&8$T3V@Izpopp3zX(c>I`+aXg(*0XY7JiplqlP`1+60295mvbw397)kJI zoUZ0KyKrOC)rRx*#rYmXezcK+NildqU2|j_=s}CF18u}xtt-k=UR01Es?451S=I1qh6v>kX3hi-CfS) z7Z#H*v-!~BW^j=h?|S}(G)4}wsJ|`+cW#m&W}ko ziExQjcc3d7YWDO1JjS%ncCf9LoniN;Wvi(hV&s=^cciC^4(RzCVd}~oF`qT@+)|Lt7+4g(<8oL3#S@qo`9|;|F!pkUGP%C~^Q~v@{*OSV zdh!whJJxQm+f{QO%w<*bpP0_rSQOPES@>5&*yYZ_Z)nHmmj)(Kcon+Ewl&KjAeC8i zL1jB`A1QfxKbn}6`sYZLbr!*XxoytzN~t+6z&3eQLJ=LyzbJgJ0B>0U92Gz(1v!{| za=ih0HqtR;b@lL4m4buI7`n5Mg%z|=<@cBULy3($xh>`{Wrb7tfG|Mytmn-)3U3?5 zn070qT(wyjwhJeH*%B&f%OjYSb3LKZchx4qGX#$?ey#CRL7g;tH>=T-Q zJPTe5IEw$-+~gLOFZW4Dfee%p&;b9~+Pfqz08~JT3?IZ}Z)tQ&dbms@`G6E!UT*1v z#^CvPhJ-O}LNua$B3DA~>UhH*-1j17I3_N&!}-hjab}ABk2CYPLfjJ{@3{L3-c)9} z7!Db}@>2>jvJY4pSvXuk55<0TUMenTX(I9@BbzhOrFTt8mtq!OCwa)Q8NJ2?5%1Bo($spJI*AGPX9dGDjPsUMwS56Ho~km&fg; zre^`VcRpWEWLkOw0Zh|@{&_Sq%@}?CzQz4Z6rzhWe}BG(fE1&mi`(H+HBjkKYVzNe z>RvL^*9^2JD#u0soc(5WGerRkZ^b zD@jS%e#ulCsXU(Ue4y>G&KXf_MtV;|TSoAn4O(t7mg>=eM7+&w2N&5ypHCPJ_IWyO zX$z7g2^)(JDzuf(7qv@OW;nI2DrMwF!KZow=&>&}m6}UfhZNs3H>vXr^$QQH@?FV; z=*57x$N`A=2%Q&DQNOc!mTRPMa!6+`^~!+-b?Sp;CbLhvEOw6 zb_@Q{U4A@%r!V^T2RdP-WxnzJmrus+QFJTO_y&BAl=755lxZgMX=8;TlXyQpsHxs# z;dJL1q)gss1O=b#%P^LT9LMA}xI_5IXYi|?<6u&3_0*!kOZCkI!DfZm^s4ze1bkQ7 z<=N2hod6o{@#tH4GJPUaGm0-0@oRZ6x zwHA6oI`3(D+WmamRq7uZ9mc$t=5(9mHP+QH3?wx3j{Ao2n~4+UZPUlMz_0tvx49X= z*!}16c=|q*t#<+&lKQb3b*T3gh?xz3C-GOeQo|9)3Y>2Be;jUj&O^MG=!ix2kA8Wa zXy!5l=!qDbG}KO}vJ6Nst8$VxG0$<57&u-dl=1sXkIUPzfI8gUEoaXeNrV}$2lx)s z))4L<0svc&Xqk(=7SgKA32jfkj<_pq*=e9s?AMyN#~MxrUf`@!Uc$~r0r5-eRxKt6 zudS6w!mUehmewBu&PoCGkXp|4S8h^QvfLLG51NUXrf6ZqzLohaejlN;uZakG(o9<{({FL^G6m z%59|dVkVzM8Fky&8L^8cD7*FI0Dli%VJC>#3@hp3s-AdKOON6}{`9(j?5G(|EyJGc zro)|(Hp#z>@0YtUWFe*(EJn4rcgW^+G(PosibgrpGU`7vpTK#(6))E%?aM;<96o~w9z5T$)ZwQzv&Ki>MLLObtN9J*Zk|F zHSm=`d0pSlI;vC)>g0ZUyhr)uaXO~W)=GaUDxsCz1vdQ$D#6UTP>-z;C9Y1FX*G;v5l)_4&M`M{Z3c&`tJ7 zn_`D(Qufbg+kA%)u1qe->ur{8yi-@+ct1Fz{%w@zkZ^X8o-s7;mVKv(rt=-<8>}6h z-M*f;mvimV=A5_ZgC)Jx=J#mb8}|GY)9FF<6vo4zGg^<7(OLX7#BVM3QlS@^`@Aa1 z-kDXxnh7d@xVBQ>TNYh1dOds3|P{e3>@wJuJObx`3ZA^m3?xlBIlpmjTn=J>>B9 z?t*yT3^5L4@b|{3 zavHxp)9F8iH-#-DY%X`-Hc0@h&OIzc8h=POhhg7lyuR|ijr>FRc{$^`gy!SB;L!8E4Sz z%Bi%QTTIE1HUyh#8}R4O6mmR7 zv%QR?E7$9X3X4DqBri{6*L-KO3W6?e5QXl?bbcT}?84sfiHmh%FCi4H(Wv2jaUisQ zr|)qh#tQa$D#?D5E7 zBPU|vZgi5{t2ajw^>wZ{O1~*O%*sw>26S~SFJ8z(w}!~$kO@nOsU!$OIaApz)eX0} zJ4LXBc)V^a={4(r#;yq6wN1lxcy4i-q@KV&aAAjfHb{!x*UM;vij%Eb(}J9?B3?((g@t;2)HyWOcbEnE@LW=it2i>io7LYQ1?Z!nuMI!S8C6j5G!7GvDo5 z)vNbo(I8vd0i#Zva&$Jg=H~0A>+xRF1F}iqxgXsmBg^&?6H^zDQR+%-kEg7~dfo@g z=#^KHZnsYM!z@~qWo1*RIg$gn&zed2;#Mv~7N7o^4s@Na4gz9u-gxpa(}bAco~$N2 zzOC8>jmF=uPWvvgp0(~DPviZOL1DLDRby051c*Q2)>#?W;K^I?1y5?@Lr=SkNtv4- zws%eE%8OX-xsEY0#a7#p4j0q~u3(2Dy$b2K*%)8)fhd=|P@(5O-bSC7WBrz|=+UC6 z+uV&4a>Wb-I4#p2dhPg&-ssoahI*(`xNccj&5z#zch1D#3q;KBf5Xz4ezBby4a^8# z`QJ^9l*m;j+vKoLDND7i&eSE8?DehNB`M$w1*$VtEUjrJjNelEdFO-8dS2&qV9#Yp zZvJ?CIu~LpkfYW4dzw_SC*=1QN>?51XpGld{ENvFQ}G)!G?}Lw{7rYZB1DMWbZ2-~ zcn5&GOT=at=_>U!rr`UvLzE9ChBJZfvJiL-R(2cr3V~Jf?l{@aLv4#XU3v~SQDiR# zz5AuWLt3$elV6B!?7}KPv}$dLLBmt$K%--y-*bM~b1}Zec!B<-`O~Xu0r+(!#=CXO?9Ce>;HMUPd$}|1Yn65>dDf%v zsgP|n0QP;`kqI~wOseLR*I|=;k3oK!`=`w`I_)^V<817{*}nUsIH@^@*$i2hCDnaTJmg3qF^>}E2R_$--tPc5 z=n7ZyQ$qj(Ep=m3v5bVGsDJe^>b6pCaLF8u#%(X~y97_o#b@wC*Be92;$720jyr3Z zB>}I~PS6$SDczB6X{jcgaRrf{&zbFT_Ie=z^Ejy+yrS2ThhW!H^mxfP5|souP)JKl zXDTDG7V#o6;kZ`#6og95$M~Y0nvYo%{mZ9}#kg<|0phNZ8@b-*zHGQW;f2e3J~uaa zgk(UDnvX=(d>Z3(Vl3bAXoYS8E{-99)XCR5`2SAooYq@HZ*Lu3r13ACjLD==SSsgq z=b(|4Pn5osAMZT=fIR%=3hJ+w5{Tz^o_|Qk<={UwRF?OlygIOsI+-j z9+goJ;j{nq_WJDpIzaSx{OipW_bRQP^~u$7BAMf4x^yN(?^0e!+l^-rWJz~(qXYDO zaw>5qqLFVcDI&jG=K^=6CTZ;g`M7#_3gG-odM z>3i(n(zk8mR}oIzHIv1C?oyiF?yp_YDzCIXGH^veO{dDU5RJu}GVO$n+@QuI#JHFY zB?!11;aq>6*=RLOKmWSF_aGUag4fiRj&qdZ-8rFT_&WXe9HWW{sN+-;N>j{kx0uGS znOGdgWt76>@o=~~^?fZ7LI&|B`9AEaTvo`8O!+)jnVd2|i%}M*ayx{6uhCP^ELnxheqGEeGbyrq%+^lEkKJFV+6ML!oE9E&)cvIB zqiH(Dq~sfp@La&?WrhVbxmgb*YP)ux}#?kz2o`k8_58m$F%hy{SEjBao$*)9wDr_=q7&QzA zrW8{!t(MF{+!5^vUQsQ~20u2jxIZ>~G)3K4Ui< z7hdgCdXI%6Ls|^7U5Hp!FBt(bDcW~;gt8AK`VZzn2*g)iQNUQ`^>2^wOL)fXyuRO0 z%19hTp|^t=A5~xT`Z|pCj|n-~%fwZVf{r_bc4EsYf9(lJ#!)1Kyf$xH+#}61W))>$ z7fP%fBM$gpN@IMl_nF2BbM6ykanI^%ycg}bl^beaCQ5`fAw_xKQ#x!1AfNLm;>rfJ zkHcR?tma`{cI{$?9J>+KgRnR?Z&dXcZ>JRZ)N_%A`Lqp(qO8{@lFjj zCi{CGFNu3|IwvGV;^Dend~2&Up#V!`JV=D6aF!ngQ-U8QRD7y9 zXNR95f{YB4l%E3P-k^{k-2s}&+DgBN1yhOe1Z`VVev}%=P*1m0+M3tpn#iS+@w!HU zbn6Fv^glnD6kfKx0+0xuaJXJx2K>Aw&$78^eX~7n6DYSsBn%(UjDP|E0gpPy))_!TVy5&@^x{2C#T`1oo>YslF~sYMy#p>~zs{PqVqZ*cLX(-2 zqEqHVLgxGvGvZ54G6CGX$+1C%mfV{h%wS*2W**FdKEB&~+3EpDl*4Q?)WMC0Pl-S; zE^Rq&x40|wF4z9cYWG>I&oNgGR9!b{t;#9Tfm8(?sIKb5LTGZr@*cqW>dc@#j0PCd zOM=O`(5;ZvkkrCpZS5%hyUiSh8W<{Us3cj&?YEXHPupe9p2x7Cab)!EAli$!T{!iw zjBTHCHAot4XNC&htdn!*Dmmg|#Gn@Pk(RevF9)q}sTnOC7Fz5}p|CiAHnmX*1U7uq zK$Zsoh)qdh3Z9fbnyydJivc%gSE}1o-U00$ktA$=p`F*3)u8oBCvu|htnUtvACiup zqtg}h+-P03I|aSpeEQ=e2Js9STsRGFVNLzM*7ZFLVrOX26ragRPFR%oHHrGyY{pe_@ef5LY4%QXxjLzNv%}maDm#-OUgJaMM~ZXwADS`` zJoXgQ=bqSE$(P7qt~k|JWW7Vovyg&-ISduC&`CIqOMwrRksV%qo zvlq_-@@mg;Gwyi%oEN~3q9^x(VzG^@;5rMKBcNZV+%nO|>s7r$KA{Lb{mS^OBx|i(E?n*tD~0$w zcn##r&lL9P)D}y_>Y&TwCX<%A!rU~a4CA}o5SR(32XwM!B1!F=vcJ*{!9(IlD+izG zS`IST>cq5kr0))I@dTLK5Np3{VE*THg+7#|PF??1a$+bUS;iggjA;t4E>@Sd-E*>B z)$#eD)4zYzIJepHK$e^6rNjM zT}fOn@q*9P$+f~sQOcYVk|P=z6H_K0R7wid$~=k+5r4n4_UGtZQ@n)p=NBQ=IV4fJ z%>SiiQvmQ4>4fDkhCZs;j@}7~Vja-#3T82JUHqd2M8MpYm}aFjx!!zJ%wkIcvx8Ct zANKk)gXBNjeqUE5et$nVro|w>*0AAs$oH#?InU?;25n4AwXv|Us~iaa(rDv3+_*5F zYiv!*P`Sw@5dHl>CVYB-{70=UJu+m*W^PaljNLgvg9Ei4N1)}16b2UY-f=|6Ke3G~ zWGD82XV}osHHX5(ReoLyftjfr0PD zxjHM8_vLExm!-2YjF^VQfS9i(^@Sb5E+S1>XTP0*OTpnt#`PCIen<6Oo?5Et2LGqy z-ts_>sSZQtSz-OonSVgWX~eCu;=U)wgM6#2az4Uk2M(8=A!KN1K4nIT!Fbns+;5nd z!i9e$?%}d5$=Kn%yFx`L>`Eey4G<<$Zjpwk`SVvh;-1CkG^5|yDNo9J6|km!+8WYP9;5bBRB!^x>Rvv(+rQ9h z4_$Rv%P~G#PpRoz7%pn=m8J25ue4R6s66qP)j-Aur7P+qGEsd)Ng4M?A+gGS&9-xb zGXRrTaGfUHxe>6+wuS>VLo8lJf*s<}P-^~v{jR-(X` zl^-I=pQRGO>-cTIeYu?3^>dTLl@$@rM%fO08b({=fe&t>m`u zyz4TS24B;9R%wg~qH$o2cNTDstdYf_TPSN#%W0=w#%PI*ll|O7TU@Kh${f}RiYPDC+v0|`Q=K}+)oCSJrzSSz6>ohkoizsh%fL+vK_garpzf<}~RXC?=m%fbyiXLHWiT-NL%L7GFO zhES+5FB8`Y@KuQBU;^}{63XbKH}sE(iK(WS`9`%EE%1O@7Gej#@=j+Bof{Uxna?FJ zw)&~Qm9c}?WiSJ!!Ae<{rzup3jc4<}){^xN^o9*KDF>7T8=mseNv$f5Ny`uyvX)KKS z9LV~d(1ygA=v#qHq#sK5Hrf&-#vydyQpn$sCHiZa%Y90FS-l6Y4PVu(&<1K0n)F?x zmC#zxwX4`*@}{y+T2mF zb#6|#WaFy9uc6_RcIai22uO^$yj!zXK}50r8|W)bNqx{1B-rf_VR1{PQQ;PxcEpnx&i8cbdDM)@1o_RH**_ zJL+@A?!-J+L}2N*uy@YWu<-7`wSY9%yngx{yET;u)C&M}#ZQ&>aC*2biOo_FUwy-_ z--rRY@;!z44;n=3EBSHRBknoU8OuFto@cO^<@795Ld1VfDJsLq2mEF|F9a1vlQF;z z33y7)bK35$+@4xa&od>2zH^@XFKWi}FZ_`U;-g_J+qFRVub|o>59PG8_{T3mqKODQ zmvqIG#*)J)0;w!HUFj_`{<8Y!6KHe{@9A~N-txb&@*pxVgLs^43K7Xazc&Q~(&Y$c zwBXa-PpAoHOJ`m=D(16G^eGYE|Ib-A3Co|H1lAXzq0HD4-QTWdljLc++V;P`aQ|zk z4b~U?e|_0Xxbj1!fEbvW~w9eKj0`- z&XT(-)Y(0>YSXVP9*4fbMGPW1K2{BQpSz%?n10=5gBlLm=qg`gjv?5q|ndOf3}E z30BZBF`h(cy7TiU_Qupx)^}U)4$Rb%!jNEn4$NU{nUNR}{|y7xx`@SfaxL>m6ndq3tAeh zAzruN2?CvmubiwPdX|et75(u);8W)d)|GtQLi=i^~%vi z0$L1!fx;LhCc(s=y86h;aBJD=eW*<9OC zbUHOY3H>vGqWt|9C;l6jhe$JqjjA%lzeje1pll&OFsl_#qjN5jy|FSgZ~3|J%cEvk zJM7j`40rUyg|Y+!ehcO(9xB4e8+Z4(>~EIvsS|7?F=L2q zEwBJ19zzkj*?W?ll%&RHfy2>kl{vB2Vy|zTL&R$Gr_p*@{_^Sy-(vD*8RoF$CcKyv zqFRaU)$=$>)8hm`W$32VbH3Z^?MLJw9yQp&j)o2FL|j3iM;DF)H-d3mTH5l{`7Y0! zco<+Lz20maMJ%f~o&@gcIx4TI+>6@WIQIfVp6(kxZdxzu&#Smh5As`zOh7C5E;?SG zAK^fTagMhp@~{C~NEVv_!VmG-84SaVHeo)dluK7#FG2W%^8;39nDAeHcKxT?2xF#^ z=xBuYct6B1_cNiUuh@cAgimO(-@}{ygr8O}aj%{>dCi+;@3;LPJ+N)HF#e#zg_(nc z42pQ;`wDsf?YN!H!wP7#e26)w&lq*vN4tHV5`j<8UY4s>9bfLZLQN(zoK5~V9tuL_ zGVVUSheq?5Fv5(}5&oeB!vEG%aOS4>dC_XK-L>hcLm@}-R$yC8sRTwz8&77?hRyyXB052 zQKI7qyI69`c%pMUi|?1%X%rhSr!~PyZ0W^P_wAZ>m9eIX2!CkUo`B!0w^D~Yv(TVF z@mnJO^9Ykv29W^!Eg#NkLpL(ZrncF1vLoclaLLy40}5HK*PY#yj(9&|1Rt;h8&FWGmUD%fr8TKR6G4T#JA-@g=`fx9}Q@`mHSbhs)bX1Grz zGuU==2_eC(rskCOnxPV;$k6i^k?_4Idj-pC-@*IK)pVI1M7F71V!wx{6g6UDyUZkH zF$&5(<#*WneX`l{E16N(N-hymUJ7=pL`(d&>@D^-NNbu+d2h$c+}Wq#1Eh#No=!h@DRpIWqfoWKL0I{?%Bz@SNSO zDwpf7vHwve=y(AEx-wArx+OBi1wmKHbrm+@*mnJ4AOy6E#lG6re9KVG4 z^MMG4t7qA6`cr1H^H}T`80C)?LjlGmb}*86)6Y|8o5E?GA_1@4QPzZ#hu0^$Y_p_8g3;(R)_L>M1r+i zJvRnj(t@5B;+tlWbMRk`dMu~Tm*%ituCfqVfttO(T9P)C%Z;ypm)ABkAf-o)ZagFuYi2bzP~cw7q#`J-z_1Vp6LvlNerNe=fp6mn zmEAs!xXGtxgdnQ54RoqZi$B6jI(j5ZQ z(jnapNDG2=H`3CQ(mfzu(%m2fgEUAfh~CY6@BjUD`2deTv(KD;V(+!qFP1pdSQOQE z!7FS&b)74MjhWM~yDvEWoqul+Wxti_oBb>NDbm}Q!Ta~_ed6@bEXOZ(7?wldamwHA zP2|=u>BLw{V@Qf$nvrJl8Epmu4yx082`+C9Ol~>S*9!Qmj42! z?H)66I&w^56t>QQIQA9v{}@$ad_R}MXLTUJ&NmX2`bTlA3c6r?H)dA6dh9L05kgt9 zp@WFq0RV}>p>N(xyjv%mQQs3ei;%w37}Nys!koH+zA;RTY*Fto&jWP{JNW@eVC=hLAG8#zpzTnz)N;-ZB76lRui#RjOf5_uz@K4dl*>s`~n#8ao|c z2H*cY@t9N@5x-Hc@jrDWMpIhgp<&H^gsI?@KoRW}yVL=4GNg+xz#y3UMBLjlR!LOd z58HkjrUBtMYp{ufoexrZ#cOB!Cg+;8&19~G^{bWyvWrjF|-=_Yc{bF{>(m_HWTsm}SY^1r*C3mw5ar zd*&~x|8Qibz4K^@u8m-#^L?}8w@TPYAI=MPAL9it1l+2Cte_sT`0sUAmhq!%N{GSZ zn$PF3i!NPG>%LgBo%YE9>2_5Z`=NAqmGbwIz5w78u@FA$PkSJ?rdi@RtiR4vL_g5C ziudZG{q)EB=P_PfHy+2Ft#H8f`NtZw7mh)$#;M=j^)iqpDWD%jKy>by` zLC)B9%e~D)J%%I2^F(YE#A0U0Oozhd1tYyK(dhUjRa$CjN@dU8ca)4Q3lKu*cX;UI z{KVziwm-IdLXKO9FGpCyqV1UoLb&OZijHIX`0?bOCmP|ZK_)UI;wVaxrL(g}tMBY# zF;dxG_g0tQU7U{Ze=-_eeEhtdHKJX`MC($s?R#@ESmX<@tWoN+Xf!wcVWDDG?`2U@ zSzYI@Q(2~yG&uLE7_lPF8QjcWZip%9q~4Fr`1$N{vhYxjh{sbR@A|LwR`ub9as|7B z7-g(^KD{=EmWstYxX3yI{h~mQJiq?PPmd1bB&hDxVH#k7z6SmL7KT`nI>}7Urrv0k z7VP|+b(!(*ztg5P)Ku4Tw|o(*9y4u<{194P#PmYri<++aJY$M2EX zv4iE7Au{9Nyo{(H5D*y2=D|545KdX8A3|r2m`3q+d0(t(s ze<|XUA-%cklF&HHMV;!fK~nDWjjCZM5~@yhyFB@F=TOy$SCT^%$UeLqNkva~i?j+u-%Y9d+GHuKEi2AI7jvaiz^qa2(%2IvL`Lf;T z-Yr=Jeox|Zm|ycLM29kNCfw{_3$;my!tI8b@(c3tFK?Mq6gO6xj1XPy#}U|Rj*_>S zBSP7}B|ktP4+Gda>#IEKTy^;>)(k^xn+Z-YcXAPti=?UhQjJU@_8T|i);pK#?3@v~ zzSd8`bjbH|TCw`G6U*X3TMwO^+sK>cU#mkUO}`0l@^~~G>PG#2F-IabM-kMtS&Jd% zs?U;^8FP>0v1XvtNK*p`5LO_3gl2~ILB<+TZFskg{{&l!w(Z<9|B+{3fn5IU#<2c_ z7x>hAFdPD3X?SPQD0(D&O3rVIfm(}{!bbF6dI_GpL#zJbBiqgLx2|*J@4pFmdDyv! z4t0(CW3=m@vDI8oZNq4~HC_>1#NFg2`=dp^-cbxUU7G;v{0d^=TruvCJbCPeVfDf<2(8jLd4X!|F zRFde&b?0YCPPtJ3bCo;<;5sg&5sBHQZU;+s1c!veFDGc~51U?FkG#LvdO?miKY?gy z_4^DL4>Z4jA@T;6+Oh7Q9eaytDQ+#c6=NyRGyUo0PS|$l6zxHKvaZskbVE zDerB0_Pfo{h;`3J6XmQfslg9s{YOCS@IB%Q?oQwu6X95PhK!DO%VwazIqIv?xG8wv>+a^$s|bBIYsCZ=j1;Cq6J>7u)yj_oS3K5smKrZysomqL zIyUNZS9c?ox2D&MWBSuKeaH0a7dy1x5p+u@oN0#!<-|q8tu#5J>MmO?ycA#MLgDF=n5C^BqDYy!I2$EF_$Uf? zUPlWEB~b{sX%55|?ds+RTtE;OrhaEZIeYxekl@ofOwV67M(KO4Y(gAQ7UIIr~kC$CVtP-tta$8~y6Vl|C9cZufyQG*E9&($vC5&m zGY0LVRCb5V=H~O5sHfjr=a2!;@uLag^0Yu>0~NzU*i-y4(Z!V~=%{L)I}zScNUV3WVUeHk%f!#`D0N$h?4%=h=9tKC5B;xXH03 z5@ZkO`G$|;+X7a}28jkq4yO1AgSZO*_+-5;Xs_PVuFO$%V+DYW0=oZ~&!`h^2j!9tNpQWhR&6G@3z6 z8umYB(1{qLq~KT_{#YtR1QV^|8&sJ{eeyBZc%S(b{`o~V6&aJWe0ILE>|jet1|8{g zDCA6vNfYT238Y!z{I_no|0sX#ZiYBX+dD=XsbEeR?M%#; zx7x6&0*doPH(IJ2LRUAa=1`5JIh8lqboy!kpOtn|ev-nCRrK2Kg=S{TkXY4@eo`_l z_z@!RMa0x2aB4wJ-3dfBrp)qE1Q3ki3zlPNV$4tEIY(2ZY|m+tL&tcqTIJ$>wf*qm z@2PVoDZgUFItg7j9BVokNV(3Nt)0~fAn3?~r%Oa|L_Z=wWFHS*xh}elz)<9!8X@ympw6|`CSWQvL>JiS1t4n$LllMNCm_xYL3 zZ>mfXNrWO?O-e>)|1m#Um}ZwQ8LIFbU;fdrV7Vc*)3`x91*~H01{pH$?G!jNj<}h0t zcPwe4?|*$%caLX;70&)MNV$k=&&f?Q1ac&J?$~_DjSba=YOv6c& z!w^A#H{Z^x73k6RO~kQtsh<95t?so)i0%wt z%PQ0@Kyz$OHD4lxg-{3%$}e?^0`G3Z7N9~5B-tL6H7(FVVasm^_D2L?$w3Hkhd8iyjE<%^0h zs*t0bTCa%IK{a-_RA;#?RLaGMLeGFS%OWHcv57sEVDY9mOUN}(*Y<8V6r&+i@_koR zOGHWi4Qfa2O1~yZB`r#1tHn=-`CVZXBUT=OGP@G6_>W&MXvx4S;z2ffiff&B>VpA4*uIL<{ZtEnW5v`s;9}B<9KZo^duL36i2&01hX{1l6ZE z2mx%KE#cWhc`PdLtN_QA4-ELYC_d1X&`2EieF=-LK;_!NSbR)e-R27;CZg<*a><-I zm1mxsqqNAiRsjTUL?qE-7wBcuA?VAgfffTw3fA?o1B?R?YHs~RaF2}%y00OqtmU(y zgbkkQS^f`k0@&2HV#TgCe>BgYDVhX+<7x>-e5YM}u50!cxHXx4i#WKGh@G_Tfh}8K zpw7oSZagLMx&wY5jRzNHdJ;cvidR%-2)Zv8Ew+}D;OS%^bV~Yzi2_59H?WR-*4jLr z?F@}&4-1=Z474*`inhxTTSV$x1s*rprUpBXi(i@qbFiPyY9C4m9qAT3GrcVj$^tETgGDwsSsn0P<1OU zxo`JliuhgHrJlujn$LQP4%v zCvkr-JKY2rRa|p1B+~N_!=D4-ve;a)(`xY{%5Az(zTUhC#VF~i$-i@*&kl4V)DOp6 z{9>|@I$dofbV_+uTcXeFIyn9ef}k0yQlXv5-cvj88|rFsTIQQvT|g%Z&L`*|Q-F}x zWQ4&U_dRx?zND!ppApK&&v|*sz~D9rg z$K*aa?(&Te^P_xj+akI$s;F9wUm4cI(Vo?GUK<_}nhLlN`x*2SxRDDte{1!91K(906O6YLyGg8F zj)Z~Y*mXl0Gp=&4mP}D_ddMGS%~COVxexCsO;wGnFws*}m_DE+nr^b+`jSFwFRVP? zf>*>odf=(s+{>a6q=C5T=;*@P0&G8-bZ*7x>gdmzPDM{z84s7vu-g;)KX?5`WPk7# zJh0ZWWcO`|RvHabVN`dh6|VjZ7R}XSvi|tNx9`bVTbpW->F{3<;t1fv6+G1oE5Mql zOVNVo7+$O^>U|PxrIo(Y7sqvBLw6LbKc@1RF6fpT@2v_J2LQ$7=+p!Gh4(xr2XN<Q9D%eX^ZW#`{B5Bk!DIm&8c% z3%&i-ua9z9_(TJpoSDLa&z;%9>swQTNM;mbgtUhu8wH0p)7j02KR2Ica6#gR=R?Iw zT8NM4rMY6p9ldOLzrumd<2REq3N&Tx+JH(O2<2bR&+55OlnT)qiNQ)>-xo!B^ypD~ za7rSojj|wrZ*4D2BQkgAWwIKNtT+bqKYU@Yqm22rUKm_1%6tPU5Ezdw!PY1jc20jD zt~6Dyy}K9}>_}PAyCHLQ7AHr0jD^LOVr8P;#^aRD%Dc|vLjAcgkBupV;^)n?IS;8j zLJYhM9VWs)7zhK{%X&amdT@Dr(N$b52ciyEe%lFRuj+@rnII@Qr8*Wn#DXyPZh*`z z6>PzS70|w;m(SLyY^53_g)0W)z)_F`=gKtoZsWC&Y}QC)XU$YeEC*wgDEMt4`)B|= zYGn-ir<$>&v_{O>lcYZK9?h+H;1u~nd5sM~N~fCcd5Y7H0xnp6YVVcl_4V{@Iz88O zYWCPrpt3>wXKxV&!0OJ2k4bU+WU!Ur|gb$82u+}`CCiwU!AbCSGPp}w$Ts149QrAqsf z+ydFk4=JOnX{2Q--*@mMFZ9&B|wk%4;l#;-NGjj=dQ&g&5%&!1qfK$NHz8Z=Nu;cQEe_ z;~UH3V#v;8l!1YPdF-5<(6j!S@Hio-Qki+v64}vDr=(nlR?lhdbhg#cv0T0(K~YYBC)M%m-8rFmm*gB2 z+gmXbFD6E(e*a-4pRWnok__piT!F2`I|>Z%nY6!EUKO+vbN~Dmh#FJ8j#o;=Uw^%% zMRwpbzs(+Dc4M2u8L^=o~2?OZ}iV2TqOgrx6V4r-H# zCy|>@UzZ7xfozs6tPNu261EFZ4)S_?Y1w>iV^j$m*G^`eeA*kMOsNrI>3g&8eVlL# zvXtsm;`=qaZkY&ZgDmr2O)^71WKIt0s->z@IM$z*cpRG)~Z zx!u{W0Dn$jZv9%iD|pU(JUEL76J6pQ3+gA6=U`n?{<|h24bmMwM-^2;?6y zlQoTh=2~|(VX+22mySuqB8QG4Nc@ZW&w0Z8s)lfPs}~hCBL-;0wc(98YM&%bD7^di zP`WULv02u6MLtt6Xf2XYU{6ZiRaF;cJBA68-&NLhIg}WQy;)}}P#Tz+yxA#aoycj` zml0dCOKMXoag)?sY+k49Znp{`r1hFr6EYaj%|3()?*RkD&O~9%uc@`$X(N0QQ86Hs%3T#Qdpxo)yJ{`EvWxTpzgMBs&4bzlj z*^i}yc}yU3+lR~cRFp6XX-x|?lclup_UHXcZ>kI$oJNO?T-unm-~&)x(fR%;qT|62 zyeV19M?L{}*G(+AFkj7c$8@n8z0l@ae3ZEpKqToBkF!PlORq957u3tG^S+NM3oCVY zEE|(n&?&?7g+ZrZQ^2P=Br@mnK8b`?66TEiHHXma|Yr9EEfk@F?oh z6Jm4-Y9CdJ4tfIFN<`v(St??YtS|R&rztc{4#q2)ODqC#6dpiFYEpDy-XoVrDBbv&9Yu|Vr9nq zZw2bT3jrV~RfvaPNcCVsJgoxy#c(M2`c=LIKh-43f4?WM3r1zxaq;GF2TMLFVj%}| z+WDBT^<$)Daz6V@n%coMt>rN2$cjpxO%N!_vu)DhWiVA|(NG@2^D>D&zQR@v_4g;+ zaM|L}U2jTx27ac1fkVk>9=ng?rwPBp$Tb;Px+Om3rpaNIxu(edN#w<RR7?AuNTBormrDpsaecI{GqBDI_hk}X|*`k2Vw0jBft$Q8`Ylobh(Xu+uavs_-)JpfbC9R z!n8`@Nn?S~#l2}3dH1W<)5|@>fW=wvyK$oi4-d5)W}DpcIA=dgn_wJ`=)#NeLO$<%lL1P><1{AOeB$CUAel3;HN-w#xui0GOX5;9u zM44O|lz)wP(C-O-7{r<-$_{`aj`0OOA_{G^n4V(eAZPy)p3Dw$Ev*@aY2%0VX!hcL zX4{T|9~r3p^&$n=Z<9uOFphF_+TH5VC)@#Vk18h`cmX(84rx;0d=`Yg0+E&uTA~be zrI#Xx8V{Hbx-mGFWZavt@zfvIeBE%dTJFA}E{i$vFjTu2FXeL|!u;~3`NLoA3zj5) zh;bWbK;c-&LWL!LB5^3qQ`!laquQn{$i11)v~W##tM>cI0`I3Ks7}u`UKQ3~L@&L= zc_OjK;`9A`>^-3o`KKghb@mp5Ap3?kc(+c7hu+%4qZJfY`6f&c0t;t+OH26U*)Ivu z#V(1f_e}1JghTNY3K{>PJ28*z&RNOOXn(e;0Ig$&uNNFpHd>%V!h!u!wd)1ZEMWf? zq7{2r%dIusgZE~wY~uV&Sd``C@4@Iqlk+C+PlSg`)c8_*YI!5-aDmOw-=!?w#6W_l z4n$GPXH?5|mJxAl-G@1vPz^cL4m(_CY;aM>~l=e z#aKq8k&h)bPa+ttFIM}diOfifowR&8n6Z#y2;cBTdad%ufYtfzHA*x8+?OT8LK!Cx zVe>UE;E1Qva&Uyv)E7lGkn}VfjgiioDHh2Y%RxlUfcInBC22K9h-Q&J!>RE196Pnd z`l9B#cv6S+W1QcM)5!!h`Pm2GF3QI4_(<(HzoUIv3CC8@)L5;}hn9vw{Vi5iM1MW~ zDpz0f_0O;EZV2X3&-j3LrX;h#b=0!UIx*TfB1O_*~EH- zVuCO)2c&0>ZM}U;WRdNOi9E1Tcr8)De#ytGgG}guI-NyOV0V7r!GDTZso^C#ncVyKQAm-0g+(ed_6T7fbz z5xRGbKDF+^n4w?gBU7n#a!}Gm^u6RhcJ3wy^m0Nv&v|e>JUmhCpkDiv3Bb&&*dw$y zML*47jh^y8qr?{cQ!F8Wknr-;VXs)^WU8-iFds+ZqN)G5-q5!64u-`)Moh``X(;p; z!zW=$7+bOSrKLKh1Cc#nS|(9B5}e_aXfo@J2p(IpH)2jiqXol0+}@6Q`Q0P}=O1>? z*p$rKXeskPRk{<8hlevqpL&4VouSTw-N6*ZV%x%`&Yt1e;~*R}j@ClosSzKW=WdQ= zZX2|fX$gclsV*lrbP<@tm;%W%(4$nQJ!g380hBaYw!v?%(X#H9jYDraq(tk?9re_F z36^-|do~bku41JL$0!rstDxx1#EHrdVPe4NP_F$@Zh12x8FW*&kJ1LN`|x67W&Q}mrFfW_o(b|o&qDEtw8x&t_p90PMEIN$nhy2!rN5?i zn)pZTC9Rfl*)JP^^?I=+7@_uK{X)JhYfnf2v{?QhGE85{}t(I>eDH}mKarGG3)O+cE#ul&S(9y zAs8e1(jnV3yTey0*ji=WhZoLU1#z;}s?_Yc7|sD0dm@`675*!%EwIg0L$j4r|6P?k zF)Xc2A$WK}L)}Z}-Xl6hR%{}VZJsiZ@d8@5w5s8Rr!bb*Q6D{%c|>A84TEulXTP{T zR__y5stW*K3^_$q0`4LsG0_ifrPRjP8XRM8~Pv%Su4gy4%6t(;OU|(g&Nq>uP6@PXt zWO){Mk0)j^xRgax8bxfJ?b`sA;neO3Y`Kuk>Ybzho?%N}c&xK+98v2kiXhwLpSzBu z7f@t!D@6CLST5sr-aUB!vBkPAI%o(UzF$8agvmBG*#+Ctbc+{ZY1>8B;&=d-yy@F*KQgi-wOpALNn6DPMX~dfxVjz%sH*ab z_S6{FNcMQH7M#GX*z$9jPB;!@O-y11V27S?!n!S%+p}=YF3hYz8=m| z6M>3aL9##obmGd84we6L*LSffg=DqdaQp=Y){B47TYM22)^7)Zz~bmxMyz!CH6x|P z&`WIQu>>YkDC5s6OYRu0xQkW`a;x{tY=i?+Ij$O)zu*bq?m#HVxe%yvGr4<5M{sf1 zzmI)vR#72FLN<4pGi1X#Pnze4duort%AeywHN&#dl^!RtA}@%_)TmfAKWkepoPFkj{<|JBGWg2T_wh zM%ZQAO|W#Y-TBU-m&ud9ezQk4S8rpp7woY<28(D(+q`)7vuX+g7_~ zk;1Zkf*-Y!u&6${(5Ip4S;8x_5qrjzp)Ty#fCwd~J6SVG3|25DZOI_2oqwp@+!QK(5x9Xdaw$49>y z>@pDDEmc=?p+kZzY%9QJ2U_1=pRGytuWE8!T$4^VR$HvvNE1;}ETUZOD6o9fPV|~> z%s=?}g#Z%b%joNvrL(A=nn9#ZA=Jj53iX$40?MHw0p}QKGXW7ox)lOF>d)X9zzXKc z5HcMRmMw6W@vKOFhvud(yKU2@yM682HIF!c(j4WOIhWOMo1U7=)}HVDx@3dn z+H|G)VuW}&oyuTJtKe(#s=kMJf14nPIpH&X53uM(PJeDdy8H z-h=^~7MFDg$3MxK>g*H`r#63*8~ePU4VY)M6EnB(<@u*VBZR9*VX|nF6)mMlPdXgt zc7Ol=t$AE}%_)o4Yqb%-lWXzu>Jma9G>M{|wX`G&>Y{?$R-x@5JxqWB`h=QqAL`&l z!1(jUr9ZnkpQ>&99|hOS40J0ppSD&dx8Ftm!!np1uJQq}RXLvOI?toqa+QtXUYh%C zO+-qCEvWCu2HG}7P%z@BUz+IXSTzZUlCTe8Au~LBsGIJuwKc3khiFDy8TkS@d=;%2 z3a8>`X0+%Z9e|{`It;ClhhE~c$6^D9t`>hFHtRPfeWQKqO%V);^Q)05V8ffp!iLbf>J=I;Do9fDDtwo6WBBjJTAJ9@}-3c4Tg3p!7H6vK7k${foCm^wf z8Smmr{K_}~sS!;J#9&22tid;t$#D;*8<1b2!kPs7_&B8(VMmY}1T%5d7tJTH={TqfE-7eI-i5a^V6%Ub^{$@Aez8w$JdH zK|m^~hDdM|lkS5CA=fw#SY1GywffqpX!94aGT}^1OLGStJNd5-D}7Z25Psv>3DKDr zo83`A4spjI$~7x(F`u)19Mqz}?OK-vQyO(YCX-ynnHB}q*_kY*8MH@n(A*Rr$510^ z7VfXQo)ZWM{%OTQWkklhcD7!7ejfGnJ-8vhUhj^m@Z9Eh85Lp^0qOmh53BPF6$qVg z#0U&(xZ3IOok};d+$HSb?zGBetrblMt_u9QS>BZwK%f^W!lrmi)}-lFvxV6DV4y2a znrM)sTk$WNu}_j_N?jjPDsJ25+>(voD$gUHNvW)`&ux{oc8?2fRvr8-R&zmxV`lpn zr8Bo9i&ko#LChBefexkEezsIlvW@R#Yp=Ufv|{I&B$?M9V|5|hwToQ`%W=L!SJkh2 z{qk{eZKjZeKe@2hrtWK#-TB(aTy*?yoqEuW!vKgU9>8<~O?A|ufh|Yt4c-hU?vBWQ zwTuanw|6?}twv*_Sn#`=yU!GZ&et~68kIpf{?gLHs<|(84S}8YSlrdK|8B;-FeW+B zN3kS`{ZwjvQQC=#4G8`#A9<9;CqiVOC}(eq#h1&5V`H8S`mt^jXk@pX;w$c<6Nl3M z?tLiZTD~ZnH9+qNys`TYosh&CKC^ z131Rldmifff+kGG@BjU6zGOWRC|Q%DJ7VI>Ujwys#|s5isrL^^((3i?)nRp`+BP%p zz>?^@qPb*=rXm3<qNMl82BLp5s$PjS*4O z*&SC_*fYfhEJ@9lS*%dN<`44KMCm7SwK$^p_dX0#|}h*qnnjq0A+^PzT%`AeamLqoW#g= z!%Xjf7N&~z{q>HPt;~2d2}{rkCa;!wJcW9mqO!wG^Ua3R#$2jiMHCXrVy%6RNyoy% zGD~jVZSGvZ(mx_iM0I8NbCjdo2NTuKneq|U$kC=nQ_j8!yv2wZN8&zlUWYNGzJX^o z7LXv;0d10C zMaU)=ZecN(o)+2~&@8XwsQ9THq5%lYQoDMaB<3=x6PG1EB#!UAaq7`u>$!{;ZHuRi z8A6%UQ-*0DKdx%1dahvo`HX)@#c>gTPpn{z)c*<0HCOPE2#@7xn+JNdU7?;ZC??OY zgDsZ`v#@HD>F_#ECgIf6*X|ikVsw^xB&Y*w+occB1TnApS824wQWj8r&lH{zD()#3 zpg(wPy^YhmcZjK(3QNgjA;}gjNRK7@+z2YarkTw(m107auMxn5oqCkbVq0muZ1&-| za2wR_s$QeC-)1BvQ!Z?nN-F(1XdTvEXQ>+6n>3MHtf;gSY6J)#rVn$*B5sOngygG# z1>EQ`zrLkDsMF!**RNZ-U)X79W%ho5)J%bC!uz_Hw@f_eb@LL0V$qeq)PpXJ1qxE& z8t#H7S?ORkdlCEPhd5EJRNiu!qAgXPdA_IJM}n>I3iV{PE@E@$+XvSE6i*~KI{|Bj z)RALYKI}n5NJSZDz&!C5G@|JEa!&WT4DXQAR-IYC8xKwA=QXOXGd~xKl{M9Kht#Hf zP04pavervW==lOqe4HhXw5zHsHfv|xJjboB3Y~Ojplq~O{*0YAJBA}Eo z@|3(jq80bE+ZA{HSlOJ84hoj`-P1K6WRaRgFgQGEcR=hGPE1O=vNo|aG~Y9x-4JD$6458%bf61wN z>;>cT#4i)|roX)#*(Z?zlKE9u^Cp8+{O;coPo1d&-a~v83luudLP1IJ9fj5;tv-lc zuCFBnW=xJ612)xj3CF{9BNt^=h>?ElLBPGVRA!50t3#y(y_E4U&>Hm!3JmKH_wQz2 zavNj|qOtg1RLRcpQ{3KcPVlS z6dO4w-S6ta8t+TLP4odtwupn5PP@`!nVAKj5&}lpPRi=( zl$t5j?83v6{=^37Iu!Ni5WhQWNVo9bpBZpTq^`!;*G?lwmfzw7aVNKB!6|WY zEP<4koXlP~ef;ZskE9}+Qe6H$k~C4?Jq!LT;E1rg%?$`lBR*Bq#t+@ysoF_^F9d$; z4{_q)6-e0%OpxLBD?=hO%F;v<8M#rJlS**U|2PBI~0u+af_-QNq z*CasS*bN&gPWN-;N){q)AC&5l*P7HuD~tlskKIJfwF-d-8n}E?1Z8B%|HLd0I!giz zAZ#dLF8SckGT0hKsV*-K!3X~5b989nWsN{;-_ZJR-0;J~xSaoak>kHX^bdp3rmoWe z-$A0K1Rr)bbn#BT{{}&j!65peFD*L%_sccV>cL{-E%;-<>3;`7z#v@Yx1A;bb0*-w z6LG-BZIFIdqx;_=87VLbl7GlW@-PE%g27Js8i-sRKfmh#1_6Q?$bFGaT+9EPl~o9s zy3^FGc5fPe9jk(C8>(ScPk#yWc1q8w}pSOw+&oUsb<**UvmSq0@;1q7^I zTzC*DD*Zqer!msm8R-CqAiyf900??YInck8mE-9v+JG3`{C^svPALcx zu;LR!h>CH;MIZ=n0WkpqZiI+1f?E_~EeNp{<+I@v1XRO!Dq@I5z=bsg6t(&IZP7R- zw2Gi7j8y=tu4!WLq3`W#rSFZ=7vWb`gbHY46j8Fy5Kj*ejGBU;=8MU=9(mV=cLS_7%>jW9ORhFPl%BXK&;O7;#$pkG-Rh_bzasx?MbSIka8*T9J1 zQ^?p3Wvqxa)^n9t0VEVsupNF4b={P$<&3acM?*tJLs1=LR}r+ch=3|a(M}dT6}8br zqxsyNyb)eHs`lW9BEk^ks_6Q82O7*Kx4(#KJ`!)u8GyH7rUE z%+OoJ!&OgEMBh+Z!yW5|({lx!0@cRafyUl0S{`EH7bybccQeoz!(nt0FnxP@6BQ2w zTN@)06MZ>tB`sAvP4xuDpw0+B4~UhQHn_%VdSK=3wfP(sptk%<0uU{AJFF)HrmHUI zB&vaiD?zPQ40P@7Au6t7`nqn8+6s=|vg$Vc#%Lq(IYB!)J9#5G9~$sAl+OmOZ-_!@ zAP^cT0}(lEEdytL0V9YJzoM(7D$3AG%UeuEQ%_ga-Ah=iE%L`Vm%;0C_sfl^mO$jf;N!L0OEbwr(!Ci-xc zfjZJo)m~8#>m~;C09>GGW3B3@tB=%2fO9=9SBwC^AvjZo8LJ9ogw#wl1r>!25gxXB zvT9l|XBCvIrVY+P%L`^LEDV)X!`R{URTTM92sc?>eOaustc?Q{XDDl+1GBPqbXW9% z0clnQf&fL!;zR^>Tr`!ywUwfxGX$-Mc0{>|sJVOVXgVPHg*;rn3{Y}ns)kNN3VfdW zB90h!4L4(mqluM*5TAy=rn0Ar1F;ZxO7wsSDDk#*Ix)0T(p!TA(b zM4cf<3Qqdq69S%4L%4~tqY4INCy%kRHc>Qi@Zfh<6ZCd6QH3fx8OmD;IIFqH85!FN zqP*aI-bRATFg;Hzth}MUFdW4vAnT=KtAs(rTm+l4|Opl4QxgAR1CF&wo&v%>*+eEX`(S2 zLj2D5C_ZmDE3^zWnm$2YnYH0AD@G|iW&r}ET(NErlbgzyQjP|P-0N57QU^#Gg1tq zr|K#u3YY)~(KE5qLaDnLWAHL(W2`Q(Vzg>V0bGu z!Vu{KI0)*1a}YK5&{sr2J+%>zVBMj5P^_+}wv&>xj=rprx|$f)Ths`HHqaAN#Y+a( zQ_WMs%?irrDyr(ur)ldTCI(f~^aSk$Og#1MT=)zy!Wa{4I8;{=;_R&iK?w3`sf#M> zdm^AH0e)qSs+*h!pQani1uKXY#eohnF2=T6Fe@uvgq$nr#nIjx;w`F-k>^M0ARMr8 zoIF&}Ti9L`rwAU3D2V85fL|{!K|v)K1#bkOtc{3{kUqrKOl-AR8|y{MC)pP}Bs1)3%1IVv!!U-qs!n zc}Hty0XvMYhAIRB)l@+0JL%)(b=+)m5G>lo6UT=U^Z>@p-9Zdxgb>zqaI#0}@GB^~ zfR4Se9#+Ege4_kL7!ffIc|(31Srub>tfPUVn+IG#*I7->0VjY}wRI9U(Gk-W@Unus z$lJ?e6|o}1UhbehA5_E8+g?mVK-on_0OMtArR^+&bV4ZrC8%iRq3qx-43+id({shz zSbNwBBcLj_n#OK6jtB*7ZDYJ<7jY0aR@U}J8KT_ZWjg$mA67}&XGZf?}**%L!m$5-l4;(7~A)#A8dnI`Y-G2I#>DnUdf-NdNgcB>CRsv+6ZRD5j}Y+$ev<$!52f)YOgFPcPDmGPT5U zUnwAaemW_p8j{yV=2G=P`tBdNYm!HfOG(qw6J6q6?XwI}0bj8>*j~c4a94z$Whf(Q zTpTF1`FNkC>%A)+R%-invL&7uR={Ik#d30d;2gD+ySJNk$Ec8Nq#B14P8V@ba~LYu z5Xa6kiD4#PdKWO2m?`xSjj%)_^6qSnX!dkp-QFTg=V$CB7lX`i{vo7{0GYOB^?h}} zr6&q}JeLU0eJlOM&m0(diw`rYeC2R*G#>O6DEw*d8MdQZ2fhyXS!S?S(ss`GWhRO5vvC74_<@Kqm8)kyFTXO z`{-#X%0^7ZN5rm~5?L|o-4edFHtg2^Rr|WA%Znd*Mq1drcb7)0jh3qxcq*rp&@9Nd zl&*Z3AgtE=-O*c#s$t*Y7V`Lc%7B8`8 zu-uUo&~w8x?VxS0J10vkT}t;Ql;lcyho8e>SyS!f!@ZgGu41?nhj~?*kn^aS)X}D1 zM8lE$%)v^1ykUV!)3>KLG~)aYwqp;LtF>&~QaC7X2n#jzl_IsoJQfo+7y8=iv~qQ` z71a%v5p)Us%PYIYuZvihQ?xDBQcR=Lv%1Hl02c+_ zyJ}pC$yu4aVx|1{UrQhFexB5+ za2mOdCNPLNwD8}vDP_#ddjxZKXXM`zM7Gh{kZ@%<)o%5^7D9E&U*k3rn*W|CXq!Cb zTrb%??*WhFHG5BG^Hjq+4G!@MuL6wsDt}x}ztF5QBY#=UHu>maCwU35*9{vIy9_KN zAcjD@*Xl>oR^f9;xRu(Sq#4toYY{mnvbRe8_tvLu{lL4ee(2%I+uQ*^KRs+c8m@Fx znp-P#7!YVaADH0oTz^#V^^DiXdpZ%BA*3aFkvn)gXQyZXGo>_EJ>N-9$1>pPT~puw z!^TCW_Asf2^Zz6sOf*D@L{KtF^bc2j6L?&5UsuPx3JZRj*v1sXs1qG`LryvI<1HZc z%WkrM+)n9}{`vt+x0rz#$a1VUv8N~Sem10`On6f=@j%ku;xX1!4P|t9B|MTn>39*3V8hBTo zpAWm`yB|z(J>Fko4MeB9kvN24>)reIGvMGCb)ZxAfu)jy;yP2H%nRat-dZ;Ff?BCo zb%(5uAfk~;WX!j;)GtdlR=ygSZ}P4gHq&z7qt+$jRcC>z$VS;%z=`Cy?)sx`(^5@R z#7K!v*j}kgL}-t-JT;G*9YeAp@|ke~_jjhkDk##mbD7;cnNG!gu~2&6BvbiPQ<`M8 zae>_TW%mo0mIM&EGwWIEUK`VpLcsX1jSB?jSI{ENc~cts3SEx*A42dPn1AoFYu6E~ z?|R=95%-jdXLS@-Fr{fCLKV8frjG000|3OzW-sv5%w*E7CkyJL?Wm|yn_mbies(59u-L9^O*w;|;*MPx%ppJSVidQjF!D-kyQELph718UHjXY& z;YoDqS-22iX7}{BIA4zFt*{7VbN$JuBBOi(Cc=3(;o&z#H1m0Q_)CCE%7ck`EE;## z&#L6Kmqw=v;<`49v2(gtWY!=|)BaK|r<0=khj1Q!?3PtGEv@D(c8Oq(?Xx#Am9i`0 z(dB$@mb(3UPOr7EG+${$K2Ic+T?;A~?m%JQK^~S@z5O=0+ON1WE0j1YxVbvN!JNqCd0e@131p5DcclIho zuXY|=v7Bl7Bjm#MoAEs6n5s81+@`%{W&OqQkkVX_rjCQbeQ0#KZimbRDXnOKm}R*` zBFy8Y`?~%`MybX8lCx_r?V}RXjs2UabZcQI=7WMG2zma`!s?^CODlI28>cR2ajMiZjF|LvY6~ zvPm1v&z^@&xX+dqiu>h1Q+YXJP!^`Nndyc8GD`dXhx*Z* zy?JbD@9SAxT8oj<(SVt@)Yf<}dN{n}g=}Z(`J{uj*j(+GKwvPpdSwc&TQlG$LFy@@ zoy1SY-RBX_R=AVmv;MKI$s);Xib7O26yNN#ZyB0Gy2sZt)|X3Ic-@ z8T#zqe?A{c;D>+zQMm147$5T*D4OnpZ}vx4w)Dk}eRF7^?M2jj8IrS;!@i)GLdUS> zEHYhO?=i%(I=Y=6H~dpQIFA#UuZi1vKH;UcJPXC|yH|gHZVeaOt}D0~n&{t~=JmC< zfVai)MZ;pdz0S|#%4P^y;AZTw1t(;}Y&WwkpJaq!OA>sp5 zokO$`dwJN1fjUFA$I_EK+AjjVhV2XBy|5rELGtheF>j}n{RQ5Q_mYBb+!e#WjOT>j z8@_E6&-nYcyjw3;0-eGpkPwU=4_4R@5YRSOP_{3sT!Wq zM?=uPp%>#|!1ZvuQR^~DA=fZ-+xYFh%@FnYi>V}vNbb%f)DCs^fnxYmbIvlG$IC{h z5q4@J{bxlbv9pnhOY+HFCLam=N`u|_!4#gBmv=7xSg%?r+?dVIpdOr3Zn#(6pwu~I z7e=*oIkU9W&WQFdOz&LFTdU7s&W9!#LaI`qL98RPteqRU{~CxKU?3)?d4Kfzim(&> zs=j7=Gf?IMnVrkmi-GdW&x5lQmI*>N^VCiko{-oYtUPtH>Uuu;)IKddkfj~{p!Q#1 z`ma|mbN)OZh12<8rD#A3%^`AQ z)b_A;VNoXu8)_yEd8$ADx{knRk&$(fun}us4hjA5=INQr6()ixA?dWI|IZUj z|83NC%LN1mow;Qye@%!lQIq=-D?ya+OpGMn4FLCLBFPco6Lf%(u*f~Sz)W>{a^}fr zIXv@|F$PUm9cLHwtjc`~c^dWa)K#uDMzcp?mj(?+eK#~ZEi>;JykRln|Ls@cI~*sD zn%HmQ;tRSPFd2S2O6EJ-IhypaI^RmSP2k6-Y%Y(OVkR4Z=EMK$mqSjf*#%xgs*^Nc z%9S?u49W8b9chnIO7Le{M3}C*GvFoyt1B zGZqk^p%A91-NbR{54&)%MUWz4ske*cFw%BUb2i-7KI?9YDbQ&wc6av<7Y(A(s2xgywa@-{YX zLiYFgnG#5d{Eo6nl=;&Ao>82te_i<(nyKO?zIzztnD{rPmC;&-V5YxuD_OYAi=z56 zf^*-!ZW;X@fezu(mP#;V*)CbBEx0 zU;ayK;72G1{b+j6>+$gakrlGcPy)ipt5(RIKcD-Txq(4TAtIKE(o6O`6_Eeh$~+;X zB2c;H;qm0Zd#7hj95MtfV($iM{?hi3aDk`)e}AaHq#J~yO&jgfyc$VD&(#wJRNm<4 zN*q7Ba2;atTLcA^cC|7Kq+l&Wxd`iMrJ z&#=IHAj+Wbyzf}~yQ1WhRGOe^L0ccM2R+AES7&yJ>PUAtzDF9}KDUd(DDiP-sE2d#e|-4M0JC^AJ7?H_L`bulWHr2!Y&p2Ofx zjC4tOzXa`tfBq@9(X#(Y^NjZS4=&F-N}`}$3mM5zq@Kd(I0-F_>ajs8FT15ch|j*O z^WMcOQOd6>1vpR{85t7CvqaHQ_Rx_(2?8n^!rD5e`f0SJ%)%KH-i}P^C_BHP2Lwbv zxj*dOUzMtl;dxI?7MS^APt<)r=6i}*_af}z#Q$)uA)8Zu`g@|@xLrT%DT#=K1AEVu zq4Rsm%lu!cERdTxGcgCsc%EOaWs+#;%sOvDNW{e9;xyfwJfm-G-&e@(KL0}{=+(XW zQ?{fECjukb4`MsQWNw|k43a)M1Y_i%HfnU=j9&wWfM~`RBum;Xk|F46uF`**?sZ_b z|9GLu3y_ZZ$vW;IP(8Nu(?C@qk}&R`0N8$ufEVo^55v^Ry-XatD~tbJJ59m-#^Uet~q^`-}weaV?0JcPbA2 z7%j3gg~*5_fOsLKXvBXVfLu{(?R0zk80=qPl1iHpcOn7JPM+I;a3a zzR!Tf2DXi1NhY-PKFQy4j!P5bBtM!55RefPf0FxfROeAY_W2byhA3$K>hDIZ25yr%DURTae2&QSZa|`D5i8C1$ZO)vI?{V1ky{3Kg={-@HcxK_VXN;lRXktST0>fE!)^%!w4@z}6UlnelNt|_PFq=R{H z_hE4p&kMLbpQe0CX{j7A{DNQ|tURC`7ys2}GQWu1OuH#|{9IGc34IShmi%~s>>aI> zoUJiAuso8fn_SLDwcb4s(Or1-2zzf`N59b z%#f4Yea7vzEVX3AZ&G^?VD)}03_kCC>#>PHs*A!V>xv6w?A^mQX(bgkQ^cnvMv;r; zT{h!PGj%+6=qNTy_vqRHdZ7iMXLPK$Mt#*rcd=DJmVE24+IOjoOOCXc39or(EVRv) zBB$o!zp2EQFJ*q`u1NHA7%lD|_!W{KAben4VjnB9IZRcWy1_(_Uy29kJBV1IS`uIX zcmsHAxO&yN!X^*aS?;CRPI_F8bF1~v2=LhV{YW&|Uy&YjN7tC4{2S>&9j>TG%*YzHp2wPdb@H{5bUPkNC z##b+uMwI)dMb&GiMDF+GRhHhn4n`ZQ3|8)v*C2<`e=CO#a;)a9SiBv>Yq=R>JzS5S zi@K1&r-PYkWDd(#f1WZ>n&|kb?)Z_!$@bm#Ioz09gCRFug17LRGv$pt1vf+ll7W+b z<8ykwAs)}Nj zSRcnT5Y=O%w4am8S6_Vpk1xrLiLQ6$2wqGSK!o&F*VdnDF>PZUsnPP8}GVClcr ze;9Pv^vdBX)lcwQ`4R$<$MYfMwiLi0$E$@vbpOjctt&S zed^1_D0#*U?{?qyCAIF*OCY4VzZGbrZ%D@8)^CIx)Jb?vz6rk$rze#^!<$4a-QP1I z=FN^QZ{gNiBzzyKF2~Hfm zQd^l@yHnS#FVcxG237bErBC}G=M`-muhhMQKa|%(=F4h~s30@N+?G=i?MYv22f2`y zcS^5YB07EaSp2H63=ugR(cdPdaKEj2AqWe*;5UZiGnsuaoh}- zNh9cDMWhm)h%Snlo{5d)((fl`rY=1E3a?H#EE3+~jN`F!Dz$0i3ZNIeDQ+8@9oAb= z`xLe|Rej_Ec%!rL;v(w|MU8_G1xCh8qwQ45IZ;h45=eKfO8k_7Pj#gk`yqj6f6V`jx&8FFsx7B2n zSwStv!||GT*qA>=uPdjW>1py9tv6}=rCZ~#2v#f^U-n-hB>r_3q%)-dkyPD(ntbnF zcEY?va!bNnyY1nN)q3(LLUaExbvM-7QM^tX9S+F!^Vyqj_*&9v z&yf*e&=Mc7G*}@RL|*za-~@YtiXJ{$o)(b|xuzB$r&G%y!mYc=FQ=QOYQxZd-8?&- zjyd8f9jjLOb#$*ydz6Br$e7@;V4RGmu8d5tReXL>cg*umkG{=bt^L; zGQV{@F!XvM$0_E!8u+88I0yuRDx-ezni~F}Ue|ZNg>=20n>zncdOLR5%lBjp8O4e& zCnl9qyx zD!1{6vi-Ng=RKsvx0V*;*&7Rw4s2T5%x$TuDFQP!{a9xsMQ}WOd(kM{8}#X)8O+>$ z>vNVIz85^ZzFuE37S(#!qdDufnr^u<|I8W|)!jT`kY?^U2ytek&4(e~d&F?Z_syK$ zD?6!gdCYf|Je*}b7o<%!F3zyQ%)rb`b?q9fWL4SofC9n>spM*? zYRnyEGj_9)dCq&MpsU)4eb2SWqbco{QDZ!WnMCw$K!jPW*z`F1TvM>)C9*Ptm9hSZ zUMJs{Kbe4eD#JEkH%sk+diwp=KkvSK zJmGE^VGEC%3ZrSfzfvFdvwd4Q*=eNaW6VpBheTb=(>JE7i;x2_<&dHI#|&~IrVFZ1 zF@4G_PV`eNuR>BAU@}bFc&71ZTRo=uk@wX1x8rlj9T~Z>`-^e9nVW*MiQ;Q%viGW% z8cot?F?df;2*oTbMP7W2t$TA5`R8+Ixw+pR_9rT(9XVt*m`8FY)>;zEMN5 zV3@qW9v(6JJkGr+KKafyYDX_CN)rd+{gw1%KJm-|tz6T}&>wkb`e}?^eFF`(IN`WG z!_)yyZ+ZsEuF657XI_X;iy(8~+O-zyMDb(vgrYH=AolsA9@R$EB8z3(89D;;X9R>) zA@?6DQybTBi|8HpS5?l6GWAVz-X1D<5Mq20VZyDjZSwI!-)Jfa&VBJF?^EAi-%xvz z=;K<(nEj`wO=?8}Of>nuEKAM>>@)4@(eMC9e!`$n3Tll*-F0z;B9JKNBkw0?^@JQv z>J7hLSYYRNu2xH<6;&06F*ZkAFgP-}opdiLQu>)N`2B)i7n!>yw%2~{x?oxQ0AeN0 zyu_`+5V;YcNf$4jk3k8VXsA)QMMD*yw9KAcNpRwhFeap3LeFux$5p(G?V7ry{I$6! zYh;A7d2J#_{7IZn?bb~a7i$wQ=?4H$fU)QVl(k|Ti#`@lON}K-DTJ^d5gteD7cTqLN2Qrji zJ#XsKM_!ZTQq#rVIhslPCCC5tuT=7Pt@l<>9#vRAPcL`@-P~*@|BTow;zazK)S4=; z3swkbbE`iZb|_zqfMk5UaCd2_+SFsEMuN4xaKn&tCk_cMoM?E)@H{K*m|cy!HQEYp z8GmudJ(@=8LSzv#z?$)51rK4>hxdHO;bwS?koZCdM9^@Bj=CD8W_r}tg1^X_%sOee zv>#QuFMs6r^~?K1m;|N@&SCU|v%41NnAsvSSXC2e-zvUyer=-n=$V&>$w;T>W^no8 zR_xSpWod~`w|7%=QQ*LF(6UzJh&cnKWufnoEm^n_(y|;-T|mt`m@!dw#%C(7mwqy~ zBBv$j$Y&(k)0{{9?b|)=9~6ao#xUBR+cr{M@50m^yr{V?R53G6=&BEPRLZ;;ax{-` z!PzvQ(}}sYJl#re&LA0UGD`Pzpc5Kfj@XG#Ua>0*%id~W;v~o*WTFp@eE_z}JWswI zs*fMtcx`lJ?w6n>&uUr%7pAdC^~ zWjTARp_a8^$X!^Ww`%VJe|ut;bK?57sUDoI@>11Pb^59VNM%s3D8Rf`1-%iQf~a+-}whQfw? z)TElT>RObIMy=TyQTvQB8s#*iGJ>_uaf=7%uX35mm(2~&8%Q@$^%pyqE)G?v(?%d&V-MLsBTe>5XvJ~m;e&uh3>m_)NOdHQ}5+XqqBEg zqPVM5q;Wj^Y+adO9lPd^Lu?k`9%m;%E>{HG-*(|k*sl-CXC!+ULh4dCo90B$h}tKn#6&kg9P}L^?^CoL^u>+iy>J<(eq!I+XA6{(gHuDAgCnMKw0?!8ub&i8cvyQb1WVc1%aypohu9foi3= zv(y0(P#r`}JQt{M8ObDfysN5Bt=Z{qnbt~fMYTL_mrA`ep-3SVF`}LI=<2(q?{gt5 zEa0b4sZjg7ifw4|xigxFasVV-%q#MguC;@;9>`Gjuj(a*4R&Jf-Pq)K< zIB_SXU!0y_zP0zWx+w8DLcB0^&>+w2N@=5K3du4tG;qgxG5uUkz?n7sTUx(ktpM^} zZ~DG9G3Xvv$L9%qxdKI0-`?2uHJ6}HITF|@{A|d+~5Nb>Q zJhV46`bMe~ZqUa$^gv0@vPID9`#rDY%DRkhD-lQckjYY$V7pq2=-$uuNA}q$h}2H< z!1}_IEQSH^ypV=iB(!Kk-2VkbdkSxMOI1(3$;9RIP0_OlZFzBFlGpE-WBZt*{8u_N z8w%ZzTr`PgKJ6{)mJ^=~_p^C|ttqO0e0gEE$-R*Gc5p%OwbUvJ>$8w|f2BByGr zKUeR>c*roCVaGDfyKkT6U8zXLV3Cfr*{htPp<%~&`;BnOShdBQm}b`QZ1t!d(un8S zxvu15k+O&1MsPwg!mVhPz4NgWX%^q+(=vkN>?=2eT{{}jO|QLQ&+mI(i5gjd?Ve)r zrmuV(GHB+29UEDxHBTz9F&`Wo>KTY&C~XUTRXUMb@lCI@E`fzON)D{k_jcmZ`lhvJ zIOD1IS)CFul$Q5c>g@ZjXPus#v|#>=MeJnwrR}btWFNY z{_4b$O)SK?zKzb!C)&R2{nw@Jv;x`7cPkf0sut^G?d-Ecmi-ElavBdLaz)Jcn_?+9V4%JKQRT zjWBh5mm%0-H)uujz=Bb_YoBmq{rgk#=vJlPoiG>8+95wnG#PNt5nH6yg` zh4M`T)2^)(zrF^vCU`O=esNRUDRyeT!=e2)Qt)}u(N#x3*WK};e;RD0mkSsejMD1N z8s1&|t|uwpGMLJ)fNbtmxv;6!sjOCK0i5&FFd>fSFc~4jqmqDBh?<(2N-zWM!)M%c zA+DR02%l{&TY{V~#L_}%D87G*+YFW}{1ALrp+>TA$eVuXOKOQtyOl}N`@YI} z_ecL6-C~Zs47`5H9NlQSz;2&!r;ygkjl*fzxrOFumSMg4+YeOO8YY{*ERpS@~E z>&gbw>$B%TU{UM#?b4r()fYrYrUfMnCL_Hnb>}*WzKF1wLkWUBiLsN8`22A;u*)41 z&UBDJDKl}+u?0O_!k@1|{>b-%wcvm0qti1obD-Q``YelL{+~yyI)MbC5!w!q{>ulS zp1tIhAz;C_(Omn$ymv_A=*0fb0RH{r?ro5jQMxUBy1R;Bfj^0=pboH=aJg#c*)662GFPW( zj9?7AWM6InOXZxNQB@J4j{Ih&k2a&Z%&YX%eAiV1kQ)B~z4!R4CxGrueR@dFpOz}_ zZa>#oWEsAdFT<2e;(Yb$<I{CHomcNNPy_-*q{=bCLtedm)`JcPh83E>p@F&- zs`X)oTW0v~AwaMJkk}mot53w00GK(szfcrUDYYxJzrDoy@cgx?^{JMYcuRj&T8Ya~ zD5^I<@dBfinQ9yt2iUQW<%fS09pE;8`(ZK`_-`Blq*b#s>eB`X;Lp5pM(I(BljZ6a z;a1W1G)Z*1G}vD&rN<|sPgjedcXsyN^pk6xlR=~md^7`ifN7Qc!sJ3xeVoVAU=yG)FTkfo0ytK(pWTNCV3+Nb z226OQl1jQ%EvW(^btY(t2f#K0Or*p8t0n;eoVtRTYL2xXvT2EH0^r0udfDoi3QQ%} z8*g<16yM%rX}kK1$&QzD>&=`+2~3T0l#+;fx2mNyNuSBBKFj##Sk9J-2x*?GB7n4O z3Z|5@o5wMbeoB1{HuhzW(=E=2$TX4>3lUgzUZ53fJk)(re_?i)4!^z0rjexlE&RI1 z>IA^MZf6U4ts}Zc^cnjMnY(ke;=!g`LRdjLb!Si&t+2ywOTVqybFb|PDvHB<(I(?#nw810pXbjDZXlyC``&AgbEw3$RwhI46lK@s7B{_THAF7#um;2*(Gl{*flG?YEd{upIeiAi+#sBIqzd>D#f zVfl3b^AR#n$XV0~SeUcuAoek{1lfbB3cQ7bU$X#S)7Fq?N$ySkZM(jImZ)C^r+&_uj^ItL=G{)U+Q*IR&on-eybI67X*qy7ylJ=ru#>eC_^x zUIyIHj$WPgRbOv~cv{F=am8nJD3j^=1Sdwn&F6E!=x)3{D<|Yqf?Ki3xvTClRD6-} z+PDv4(HXG)R1r8<{oxDsR7KxFg$MKE!FEAmUywFHSaA+YDjvMB572iUd3gqj()&JI z>yteGXw>kHeiLHKzpk)jSpZB4@xBU(b`!;Gn^!@~K*&%CW z^ZcV<1C(Da#n}1M0k%IeET@gA)TV{H`%stn%`$d%Ty_A!AY<+rG-JbDrK$a38=W5w z+~1VnQ!}~rcHrGf{z34lWy5~|?!)8eC%&iFi;0k^NTQR8(6pg0xA)58hahnHCjWBK+0=Oh#A0&!R_)+@jjSk_x$X4<%cg5L7vD!)6Z%cAs*E*qlk5OIJW*>N;g z3nn~s6l?xvs?_BN8A=N7Q4*iLLZWhO#z&^>(9>h~Jise#`H)iuxS#@Wm1p|tZnei} zo+%s*F5EBi!#KUVcKt3vhK8nlq)`C7rDk3Ij>=z?IL=78)Qo1oOJzN#)nrQHGHbb+ z>0Ssxx{8)dTmBASo+AmQH%)+OoRdECrBr@@y*-pJ=*9Ij^2z#x-8m#@>YvG3M_4Sk zPjuS8TDEk(pQ}63j*0pUIAO7n37{)pATz;r@OS76jQDP}N}Z5RwNG5o_xqmSploqW zGwu^~qS17TkeG*@Sc4!Fz*^cMs+5a`!LNE>>wNYLZ7QLAy>DDXCvjJ$3~a(*)@ZnLNrs6b=*79fFK#Iu z>n;GWg_!Mlshe-iUrz$XBUob|PN!ca`D^E>G(L=M226Z=+R5-Vr8?+!gu*ih)~$FM zCW{bXP#!YC%t-7@16-4kSk3ypU_X@6KNJrp0aU*!C{ogAThxck`0b0*?|%{COykrY z1Nw_))?d&2@c(i;qr(^`Dt|r&5hPP{anB-hvKxAqjKw&RKv@EThoCi3t2kaNabGZG zufNQyD%!&JukCdTQhZ7)h68GAflKMv{rUy?b35h4XrA$vKISpo(Ow4ZwN8IjcOLpFMNddmyT3?Hm^!1ZwjAP@=BYQ-YdsXF!{lFgd0KZD( zS2%7kkJA9}*59fo<*}l-yGte>jz4NPRED~;B7E8f0nu|#m-R`N>yqBsNg|e#$#c08 ztQZ;ziXcyt%j@EkKC(3_4uOGV#J?y4?P&g4V!hH7Fy^;oo-)2oI=sC!)GAczJ+_o} zEdi9ssDYAJh zK~Z-M?vyqG{=MZvRoWkJ{I^6Sji~-`J**VEa1*#o?#oKQpt^XLQ%pSKjr@UUxx)a> z#!EpD@IVoz1$>FX5vDfQQhx<{OFbEBF3 zWBOJxXJyF)nNP%rdwA-6S{$Gy3;?;m$4UbG7evLsg;eLMNoYl^xs=+rrnr++bGiHv zFld+v_%3eCpg^n(_UsEuKwrbn&PV}v^ABT1a&Xfo6nYVAv+_%5FDP6k0_I3y*qwuTBp);?g=V@3ZpdE-P=CjLp2e(!T? zo<4b^it$GP$@<7a6}m#=OG(z|)~Z8d@gaV}S^2C?*-dTW@q2Bwie&j8?FYqgZZHgA zOO){l;J|fv`%7U;HVp24jw-%iUu1GTb}`^2nTknQgluoH91$_A>A=QRyUGw`QGK_EZqkk$8g*N)n93PEU5#~1yH*?9Rob`#%J_*Cuheit9=`8kk> zQFBLuiZk;PWINBbJNl7;Gm~2{>sp2tT_|3PcmK#t)mJ&;BkPiK>lqOtaUmHXMv2#k z?R9DYnyVbT^4VJHPWLb3gUQ4m1c)KmL2%kqV$(9Y*1#BFe{yU(-;>8K9vE-o;#@gJ zjT)<~JzNPmsm5Hjhyxp0H#rUS@i@&;9#G~qG@T*t(9gFKPRi)3ZU5snGf)CipyUz{ z;+%XHAtfLi1tQJP@U%j`Mo>VZHQkoVi4XWf82$T&=I~KV?P6@t-`G`Vmh6iGFVGmt zpukP{{MFk`ZqwiSx3WkXJU?(1!Acd=yyrRaRgZSH%BFssOGACcD&n|hF7b;^?_DR< z$G;>$YSVWE7FropR!&y0)I|epoOqCTn42xE#*K{OHpgZn47ZW$`NnC{V+a!UlGNMY!dGbwbX2(ehPpwB2oW+ibY4 zQP|CP-40n^5?pzz7>*I2|g~Wn=ZJpEMa_6 zGw6LA{TTWEjTBdXGWj<$8E2T5$tMfVt0%`l27?uXRw?oI8Zy!{bsoQ>CF`s=$TJix z0KQnC?-mU?J-K{!yM6S_m!J0=0&_Wy3bD^1 zinjk^?}?%6A53f217!9=P${YUssLJM6LRr((L^o^H^u0``|&U#%lzTH(MfdIkv-b1 zpww~ry$*x-EVJNp(sBPa$*)G18-|Z&_gtiRPuZ_-7OKo zQjgY1y=&TVygQxjtln~Y$qm#rYnN*7Aag*CapH{s{#?#_3vYcw!&1Y0h11*|F%*WM z59!Ok0W++xZ~+ZUl^qAp{eDI|~tZu_j zN1{>LLq&i%)^LFyBn;-_V+c^@cb)HE;9hswJV;h>gWA7Rku~oFkbg-kmd4)GtEECS z>N;klNaZ(;&QsJ}xGo?s?9hLY=R=jVPqTrR9$i7&TcQGp#(O4V_zahS=zk)W zi5DrX#6|iT3*_v=NOi?I`&mbjmCFPvvGtFnj0tN}*l>trao$8VYDBfVb=I#y4Q0*? z%Grze?dY{hHGAUTn^bf&W@EMW50vo8%AW#s#e;(b4#e*gUboB5nG=bY!6^E~%;U-xz0$HeCk z_4Fj)^a%cPLe4E|0486Qr$6#~#CpXC8(@I2>9ngFnU;W2J)y@|zOJ^(@A9y)Bh;b3 z6P1V6{(O^7$_9)`vTMIbEt6t`gr#^8Pp-2*m}^QIBjJ1 zhWpJMi`uFdL3xf25I+?M2E9EdT?iU^^hvXYkm6H3mLJleaEgg+Oo`2?XYS>KVOh#% zB&jW0&Fxz{@)J6aTFe=kdO&b~Kw3V9Z|`irRJqQp5q~nKUa-ZM- zS1r7oJ5iy!)+5g0Kjq-%`&S8d`~MzlkEDysmQy@1+Nr$5+!m;kj9Flj&W z;?F~TRL%FRX7s;f`TYqJ1CFRHy>spP<4_a?U~AUTxAqp;Ke1~EJdz4US z@a}qPb+i*McBS)@Z1{mxbjP&oVh+)$$PY|7OqyYha`5@`2P5hrLk^G0LxfD04lsfX zymU#Rb9qMpuugD;JcR61bldhCm8yKHuMz3l7-+loksxJ5`N9CT5lWD0d@#uho)46n z&Tp%)Q6g7gjfn&CZX6AUwt)T+DKzrxbvoE*W&Upq5$2n>zl~ews1-X{4?SC)9BQ0d;9DseEXo}D+|SBY|4dv&=mNVC4NuywF>Do1;yT0OO8h7g9y zZS#~FY9o~m0Tn}MbRE5Af(qVLYkk%U-yx?YFT%!&k{-5gM{2YiS6&|7oQ6*otLt2C zBk*i!u7;9wR6co0ZRSJMTCi-R=)MJc#f%dZj#X~`_uiV4dDqFfr#2%G*tXka=|6VJ zoJ!I9wsf|GDCw+YY#iq+idM)`io!e7e>*79E@2jhM(D z3E0BV-qOo9t@X2RTf%*^qEHD+74_imZD?5cwxMsCTN)5zvw%4@W2XC2wJ%43H8`wy zaOr*V9m5;5?+SBNQ*C;SEM$bQ!wUV0KTgEDCtp&}cF#>c7DjiCFm;Su*C)3;J<=|rm|1lquBTYd6zyxaZ?f9-duN)E`9h^0ua8Gk zXL7Z1SNb^#vImb)^OGZSi#GNA&u6bB`tfoLS)YwZ8AD>f02DKD7>ofLXh?Oo>SB&;qNR|74Q8?oNu|DB3W!jdwVhx!p(+ z!G8tsaul5za|JuY66vUjZ|;G3dc5q`N#aB=ZnB%lPw&M^V9Mz&@Z|7a9_gN(eA^eJ zh~%s+aC8O0&9FSLujyt_-$5-u_>CBZ#+g3ndmmnCL;j*+ywSBVOMai*XV-ZhR}4f}&qjuzHk} zyRwf?K)Ndy7tytN zs3U{FC6x*%JE>{k~q6mM?ar6=>}BIi@K&SEtzvn z2*D^T<|_jzoFK_Lk9(?426_(P6+a>xC=*a4CtjO1ku@D$ zsjDNsrg61AcN3t26!q1Gb9SCVS`Ht7ehnIP3Dq8|aTVhb^$A$ok63uvB~@xO!inGw zk05*|eqUH>>#Tfz<&l@sXV;6swKr89S%HRIteCEU;$EI;$;sCxPT(<0t3CxxR!j$i zRP`zD+OPfBa=0cJ5;)H$Tm3*gdz*A5h~If`bg3bQ)92y*_FR$UmV3E}|Bc}N#}R{r z-TV%?*%fjzht#e4b1~-w%!QMq zryFH$={X^qVKkZB4|K_zn?vuXg7_`e6d1uSW*R(4g9(|I7}G@EKTPxZr#8#Pro7Ob z2!hetkUwvZBkuLvWJ!Fii9719=+VyWFh=e2D1>cy3SpiTx{BJmy;(Opd;NH%61K7P zOH7%vA_vjuA3x@|#>MZrPQP<5>~h1s?>3pRkv@%hgYBz}m%eNGzN;NO+wf`>J?C-_ z;ciAkdd1F?>Nfx65|-GYQL;*v3E536v@AoF2;`N>Oj2e+)P9HlaEYpaxv0=FT|E zlr~K7KdTYJd)6xS>$$1{?$cLoOWLkfMEh@z+*(dz=hsnz3De2P#xSuHr0-GuzL)(& zE@O;g8fNGDIZVwb51-n39m2b})oP#lP*n;=I}!1-WnHu>v!3;qTcB@2&on>wU{WxT zY!45^lc4wIgdD7%!QXlNLFXWZn7T(EHcXJfSz?6=6u$B*YKC(nuFPH)>~*IsVCp>LxL%brmuQ!eN@uZNm{ag`Z%CK z-h&G^g9@01y)|VD&}H@`C7coEO0^4e_AMFprlkaw@B5Ij#;np$R)`&kZXrICYoE+; zwocVQ`r*88uQFY8*TM3>$9?7gV>Js3y1Z+3P7d~`Z`??V6I_2<{JYk&v?v?8`qv|} z9FAV0{yk9wOx`^!NBaLm%H1lXUW|*{h)9oC;od=S8P;waP~% zOnYkWpIP(x$e<_1x~HxC8`=+G5+lUeO7*L2E0|SDReU?0u=s=^TL?)$b>gaAzV8Q8 zk{@&wJ+X{KeUJjADMS{8NI;=s^Wm~?f;5LuOoe2zxP`PI?MRYT3ZVTj8P@oU zd|`jn3zs9i&i7qF2~MGsp47_d9w7Vm2{um!fLp?^ga5#C$~0k^y_z}LNPe9VRtreP zBBkadkX>-ScS)9DBKO{x-8+R8QOhhl8i2iP?80PPhz0#0w}q?%blLRt$YteS?7jEM zFq$TZy)S!rYO(-@m#>+(_Wjw>0JyE!Wq>&YKQBpjVM^^*hk}EV4dwhcw=`y6@D2v8?8<*0A$&^uL6fzAp5m) zKBCuvF)*w#Wpw^c^@!dIYA~Hs6Z4)RkN)q&f|?7nsq+h8g+exlCIjk^y!C~Rh-^ECTjM-q zVcWvvXYc-h47YCpu~>>Z3cvc_;*`i(0kmT7z%&?|4{OB^8*~Cb*?$+}T`Z zrw2hVZpTXC@(Zfk-!Zv%L!$lt4i+kkosi+L*{5dTqz{AO*eckw=Q|j-<4BPXiww%+ zy{tqllxbNE;HuheGXn&HA3hP3#oGa~yH$d56H_AToWC9Vdx^H4jFPmvSo!1Q@f<)$ zyG^BgYbQ%t$Jn;qtVsmQzi`(XAyZk_wPinA9DUPF`~?$=7%|9n_{&ymO!Q@H=VdK* LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR91/index.html b/previews/PR91/index.html new file mode 100644 index 000000000..4d22b6afa --- /dev/null +++ b/previews/PR91/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                              ClimaCoupler.jl

                                              Coupling CliMA Models

                                              ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                              • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                              • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                              The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                              Coupler Scheme
                                              ClimaCoupler.jl allows for independent development of interchangeable component models.
                                              diff --git a/previews/PR91/search/index.html b/previews/PR91/search/index.html new file mode 100644 index 000000000..c9ef05c12 --- /dev/null +++ b/previews/PR91/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                              Loading search...

                                                diff --git a/previews/PR91/search_index.js b/previews/PR91/search_index.js new file mode 100644 index 000000000..247959995 --- /dev/null +++ b/previews/PR91/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR91/siteinfo.js b/previews/PR91/siteinfo.js new file mode 100644 index 000000000..899a4614b --- /dev/null +++ b/previews/PR91/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR91"; diff --git a/previews/PR91/timestepping/index.html b/previews/PR91/timestepping/index.html new file mode 100644 index 000000000..311b72f87 --- /dev/null +++ b/previews/PR91/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                                Coupled Simulations & Timestepping

                                                ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                                Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                                • step!: advances the component model in time
                                                • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                                • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                                Missing docstring.

                                                Missing docstring for ClimaCoupler.CoupledSimulation. Check Documenter's build log for details.

                                                ClimaCoupler.run!Function
                                                run!(::CoupledSimulation)

                                                A simple outer timestepping loop for coupled system runs.

                                                This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                                source
                                                ClimaCoupler.step!Function
                                                step!(sim, dt)

                                                Advances a simulation by dt.

                                                Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                                source
                                                ClimaCoupler.coupler_push!Function
                                                coupler_push!(coupler::CouplerState, model)

                                                Update coupler with fields retrieved from the coupler.

                                                coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                                source
                                                ClimaCoupler.coupler_pull!Function
                                                coupler_pull!(model, coupler::CouplerState)

                                                Update model with fields retrieved from the coupler.

                                                coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                                source
                                                diff --git a/previews/PR94/assets/documenter.js b/previews/PR94/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR94/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR94/assets/logo.svg b/previews/PR94/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR94/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR94/assets/search.js b/previews/PR94/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR94/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                              • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR94/assets/themes/documenter-dark.css b/previews/PR94/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR94/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                                                that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR94/assets/themes/documenter-light.css b/previews/PR94/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR94/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
                                                that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR94/assets/themeswap.js b/previews/PR94/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR94/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR94/assets/warner.js b/previews/PR94/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR94/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                                                Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR94/couplerstate/index.html b/previews/PR94/couplerstate/index.html new file mode 100644 index 000000000..7d90d78e2 --- /dev/null +++ b/previews/PR94/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                                Coupler State

                                                The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                                The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                                Coupler Object API

                                                ClimaCoupler.CouplerStateType
                                                CouplerState()

                                                Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                                A field is exported by one component and imported by one or more other components.

                                                source
                                                ClimaCoupler.coupler_add_field!Function
                                                coupler_add_field!(
                                                +        coupler::CouplerState,
                                                +        fieldname::Symbol,
                                                +        fieldvalue,
                                                +    )

                                                Add a field to the coupler that is accessible with key fieldname.

                                                Arguments

                                                • coupler: coupler object the field is added to.
                                                • fieldname: key to access the field in the coupler.
                                                • fieldvalue: data array of field values.
                                                source
                                                ClimaCoupler.coupler_getFunction
                                                coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                                Retrieve data array corresponding to fieldname.

                                                If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                                source
                                                diff --git a/previews/PR94/generated/sea_breeze/atmos_rhs/index.html b/previews/PR94/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..efa11146a --- /dev/null +++ b/previews/PR94/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                                                Atmospheric Model

                                                Atmosphere Conservation Equations

                                                Density:

                                                \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                                                Momentum (flux form):

                                                \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                                                Potential temperature:

                                                \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                                                Total Energy (possibly replace potential temperature equation with total energy conservation):

                                                \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                                                where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                                                Tracer transport:

                                                \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                                                Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                                                \[\rho\tau = -2\rho\nu\nabla u.\]

                                                Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                                                \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                                                with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                                                Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                                                Consider components of the viscous stress tensor in three dimensions:

                                                \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                                                Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                                                \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                                                Which can be interpreted as, for horizontal-momentum:

                                                1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                                2. Vertical divergence of vertical gradients of cell-centered variables $u$
                                                3. Vertical divergence of horizontal gradients of cell-face variables $w$

                                                and for vertical-momentum, as:

                                                1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                                2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                                                3. Vertical divergence of vertical gradients of cell-face variables $w$.

                                                Model Code

                                                push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                                                +
                                                +using Test
                                                +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                                                +
                                                +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                                                +using ClimaCore.Geometry
                                                +using ClimaCore.Utilities: PlusHalf
                                                +
                                                +using Logging: global_logger
                                                +using TerminalLoggers: TerminalLogger
                                                +global_logger(TerminalLogger())
                                                +
                                                +using ClimaCoupler
                                                +
                                                +# set up function space
                                                +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                                                +    FT = Float64
                                                +    vertdomain = Domains.IntervalDomain(
                                                +        Geometry.ZPoint{FT}(zlim[1]),
                                                +        Geometry.ZPoint{FT}(zlim[2]);
                                                +        boundary_tags = (:bottom, :top),
                                                +    )
                                                +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                                                +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                                                +
                                                +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                                +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                                                +    horztopology = Topologies.IntervalTopology(horzmesh)
                                                +
                                                +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                                                +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                                                +
                                                +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                                                +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                                                +    return (hv_center_space, hv_face_space)
                                                +end
                                                +
                                                +function pressure(ρθ)
                                                +    if ρθ >= 0
                                                +        return MSLP * (R_d * ρθ / MSLP)^γ
                                                +    else
                                                +        return NaN
                                                +    end
                                                +end
                                                +
                                                +Φ(z) = grav * z
                                                +
                                                +abstract type BCtag end
                                                +struct ZeroFlux <: BCtag end
                                                +
                                                +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                                +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                                +
                                                +function init_sea_breeze_2d(x, z)
                                                +    θ₀ = atm_T_ini
                                                +    cp_d = C_p
                                                +    cv_d = C_v
                                                +    p₀ = MSLP
                                                +    g = grav
                                                +    γ = cp_d / cv_d
                                                +    z_c = 100.0
                                                +    θ_b = atm_T_ini
                                                +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                                                +    θ = θ_b + θ_p # potential temperature
                                                +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                                                +    T = π_exn * θ # temperature
                                                +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                                                +    ρ = p / R_d / T # density
                                                +    ρθ = ρ * θ # potential temperature density
                                                +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                                                +end
                                                +
                                                +function atm_rhs!(dY, Y, params, t)
                                                +    ρw = Y.ρw
                                                +    Yc = Y.Yc
                                                +    dYc = dY.Yc
                                                +    dρw = dY.ρw
                                                +
                                                +    center_coords = Fields.coordinate_field(axes(Yc))
                                                +
                                                +    # spectral horizontal operators
                                                +    hdiv = Operators.Divergence()
                                                +    hgrad = Operators.Gradient()
                                                +    hwdiv = Operators.WeakDivergence()
                                                +    hwgrad = Operators.WeakGradient()
                                                +
                                                +    # vertical FD operators with BC's
                                                +    vdivf2c = Operators.DivergenceF2C(
                                                +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                                +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                                +    )
                                                +    vvdivc2f = Operators.DivergenceC2F(
                                                +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                                                +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                                                +    )
                                                +    uvdivf2c = Operators.DivergenceF2C(
                                                +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                                +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                                +    )
                                                +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                                +    Ic = Operators.InterpolateF2C()
                                                +    ∂ = Operators.DivergenceF2C(
                                                +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                                +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                                +    )
                                                +    ∂f = Operators.GradientC2F()
                                                +    ∂c = Operators.GradientF2C()
                                                +    B = Operators.SetBoundaryOperator(
                                                +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                                +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                                +    )
                                                +
                                                +    ∇_z_ρθ = Operators.DivergenceF2C(
                                                +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                                                +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                                                +    )
                                                +
                                                +    uₕ = @. Yc.ρuₕ / Yc.ρ
                                                +    w = @. ρw / If(Yc.ρ)
                                                +    wc = @. Ic(ρw) / Yc.ρ
                                                +    p = @. pressure(Yc.ρθ)
                                                +    θ = @. Yc.ρθ / Yc.ρ
                                                +    Yfρ = @. If(Yc.ρ)
                                                +
                                                +    ### HYPERVISCOSITY
                                                +    # 1) compute hyperviscosity coefficients
                                                +    @. dYc.ρθ = hwdiv(hgrad(θ))
                                                +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                                                +    @. dρw = hwdiv(hgrad(w))
                                                +    Spaces.weighted_dss!(dYc)
                                                +    Spaces.weighted_dss!(dρw)
                                                +
                                                +    κ₄ = 0.0 # m^4/s
                                                +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                                                +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                                                +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                                                +
                                                +    # density
                                                +    @. dYc.ρ = -∂(ρw)
                                                +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                                                +
                                                +    # potential temperature
                                                +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                                                +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                                                +
                                                +    # horizontal momentum
                                                +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                                                +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                                                +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                                                +
                                                +    # vertical momentum
                                                +    @. dρw +=
                                                +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                                                +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                                                +    @. dρw -= hdiv(uₕf ⊗ ρw)
                                                +
                                                +    # DIFFUSION
                                                +    κ₂ = 5.0 # m^2/s
                                                +    #  1a) horizontal div of horizontal grad of horiz momentun
                                                +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                                                +    #  1b) vertical div of vertical grad of horiz momentun
                                                +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                                                +
                                                +    #  1c) horizontal div of horizontal grad of vert momentum
                                                +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                                                +    #  1d) vertical div of vertical grad of vert momentun
                                                +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                                                +
                                                +    #  2a) horizontal div of horizontal grad of potential temperature
                                                +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                                                +    #  2b) vertical div of vertial grad of potential temperature
                                                +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                                                +
                                                +    Spaces.weighted_dss!(dYc)
                                                +    Spaces.weighted_dss!(dρw)
                                                +    return dY
                                                +end
                                                +
                                                +# init simulation
                                                +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                                                +
                                                +    # construct domain spaces
                                                +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                                                +    center_coords = Fields.coordinate_field(hv_center_space)
                                                +    face_coords = Fields.coordinate_field(hv_face_space)
                                                +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                                                +
                                                +    # initialize prognostic variables
                                                +    Yc = map(center_coords) do coord
                                                +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                                                +        sea_breeze
                                                +    end
                                                +
                                                +    ρw = map(face_coords) do coord
                                                +        Geometry.WVector(0.0)
                                                +    end
                                                +
                                                +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                                                +
                                                +    # select boundary conditions
                                                +    if bc === nothing
                                                +        bc = (
                                                +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                                                +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                                                +        )
                                                +    end
                                                +
                                                +    return Y, bc, domain
                                                +end
                                                +
                                                +using OrdinaryDiffEq
                                                +function atm_run!(Y, bc, domain)
                                                +    dYdt = similar(Y)
                                                +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                                                +    atm_rhs!(dYdt, Y, params, 0.0)
                                                +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                                                +    Δt = 0.025
                                                +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                                                +end

                                                Coupled Atmos Wrappers

                                                # Atmos Simulation - later to live in ClimaAtmos
                                                +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                                                +    integrator::Any
                                                +end
                                                +
                                                +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                                +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                                                +
                                                +    atm_integ = init(
                                                +        atm_prob,
                                                +        timestepper,
                                                +        dt = dt,
                                                +        saveat = saveat,
                                                +        progress = true,
                                                +        progress_message = (dt, u, params, t) -> t,
                                                +        callback = callbacks,
                                                +    )
                                                +
                                                +    return AtmosSimulation(atm_integ)
                                                +end
                                                +
                                                +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                                                +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                                                +end
                                                +
                                                +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                                                +    # reset flux accumulator
                                                +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                                                +
                                                +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                                                +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                                                +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                                                +end

                                                Coupled Boundary Conditions

                                                The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                                                To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                                                struct CoupledFlux <: BCtag end
                                                +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                                                +    # flux calculation
                                                +    Yc = Y.Yc
                                                +    uₕ = Yc.ρuₕ ./ Yc.ρ
                                                +    ρw = Y.ρw
                                                +    If2c = Operators.InterpolateF2C()
                                                +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                                +    w = If2c.(ρw) ./ Yc.ρ
                                                +    cuv = @. Geometry.UWVector(uₕ)
                                                +    windspeed = @. norm(cuv)
                                                +    windspeed_boundary = Fields.level(windspeed, 1)
                                                +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                                                +    ρ_boundary = Fields.level(Yc.ρ, 1)
                                                +
                                                +    # build atmos face fields on surface boundary space to enable broadcasting
                                                +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                                                +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                                                +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                                                +
                                                +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                                                +    dθ = @. θ_boundary - p.T_sfc
                                                +    heat_flux = @. -λ * dθ
                                                +    @. dY.F_sfc += heat_flux # accumulation
                                                +
                                                +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                                                +end

                                                This page was generated using Literate.jl.

                                                diff --git a/previews/PR94/generated/sea_breeze/land_rhs/index.html b/previews/PR94/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..4383a2a9f --- /dev/null +++ b/previews/PR94/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                                                Land Model

                                                Slab Land ODE

                                                For our land component, we solve a simple slab land ODE:

                                                \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                                                • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                                                • and $F_{integ}$ is the integrated surface fluxes in time.

                                                Model Code

                                                function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                                                +    """
                                                +    Slab layer equation
                                                +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                                                +        where
                                                +            F_accumulated = F_integrated / Δt_coupler
                                                +    """
                                                +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                                                +    @unpack T_sfc = du
                                                +
                                                +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                                                +end
                                                +
                                                +# set up domain
                                                +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                                +    FT = Float64
                                                +
                                                +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                                +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                                +    topology = Topologies.IntervalTopology(mesh)
                                                +
                                                +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                                +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                                +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                                +
                                                +    return space
                                                +end
                                                +
                                                +# init simulation
                                                +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                                +
                                                +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                                +    space = hspace_1D((xmin, xmax), npoly, helem)
                                                +    coords = Fields.coordinate_field(space)
                                                +    domain = space
                                                +
                                                +    # initial condition
                                                +    T_sfc = map(coords) do coord
                                                +        T_sfc = 273.0
                                                +    end
                                                +
                                                +    # prognostic variable
                                                +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                                +
                                                +    return Y, domain
                                                +end

                                                Coupled Land Wrappers

                                                # Land Simulation - later to live in ClimaLSM
                                                +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                                                +    integrator::Any
                                                +end
                                                +
                                                +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                                +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                                                +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                                +    return LandSimulation(lnd_integ)
                                                +end
                                                +
                                                +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                                                +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                                                +end
                                                +
                                                +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                                                +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                                                +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                                                +end

                                                This page was generated using Literate.jl.

                                                diff --git a/previews/PR94/generated/sea_breeze/ocean_rhs/index.html b/previews/PR94/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..1aa3943eb --- /dev/null +++ b/previews/PR94/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                                                Ocean Model

                                                Slab Ocean ODE

                                                For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                                                \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                                                • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                                                • and $F_{integ}$ is the integrated surface fluxes in time.

                                                Model Code

                                                function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                                                +    """
                                                +    Slab layer equation
                                                +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                                                +        where
                                                +            F_accumulated = F_integrated / Δt_coupler
                                                +    """
                                                +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                                                +    @unpack T_sfc = du
                                                +
                                                +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                                                +end
                                                +
                                                +# set up domain
                                                +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                                +    FT = Float64
                                                +
                                                +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                                +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                                +    topology = Topologies.IntervalTopology(mesh)
                                                +
                                                +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                                +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                                +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                                +
                                                +    return space
                                                +end
                                                +
                                                +# init simulation
                                                +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                                +
                                                +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                                +    space = hspace_1D((xmin, xmax), npoly, helem)
                                                +    coords = Fields.coordinate_field(space)
                                                +    domain = space
                                                +
                                                +    # initial condition
                                                +    T_sfc = map(coords) do coord
                                                +        T_sfc = 267.0
                                                +    end
                                                +
                                                +    # prognostic variable
                                                +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                                +
                                                +    return Y, domain
                                                +end

                                                Coupled Ocean Wrappers

                                                # Ocean Simulation - Later to live in Oceananigans
                                                +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                                                +    integrator::Any
                                                +end
                                                +
                                                +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                                +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                                                +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                                +    return OceanSimulation(ocn_integ)
                                                +end
                                                +
                                                +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                                                +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                                                +end
                                                +
                                                +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                                                +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                                                +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                                                +end

                                                This page was generated using Literate.jl.

                                                diff --git a/previews/PR94/generated/sea_breeze/run/index.html b/previews/PR94/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..d6302a14e --- /dev/null +++ b/previews/PR94/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                                                Coupled Sea Breeze

                                                Overview

                                                This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                                                In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                                                Model Initialization

                                                Component Models

                                                Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                                                In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                                                include("atmos_rhs.jl")
                                                +include("ocean_rhs.jl")
                                                +include("land_rhs.jl")
                                                +
                                                +# model parameters
                                                +const atm_T_ini = FT(270.0)
                                                +const MSLP = FT(1e5)
                                                +const grav = FT(9.8)
                                                +const R_d = FT(287.058)
                                                +const γ = FT(1.4)
                                                +const C_p = FT(R_d * γ / (γ - 1))
                                                +const C_v = FT(R_d / (γ - 1))
                                                +const R_m = R_d
                                                +cpl_parameters = (
                                                +    # atmos parameters
                                                +    atm_μ = FT(0.0001), # diffusion coefficient
                                                +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                                                +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                                                +    MSLP = MSLP, # mean sea level pressure
                                                +    grav = grav, # gravitational constant
                                                +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                                                +    γ = γ, # heat capacity ratio
                                                +    C_p = C_p, # heat capacity at constant pressure
                                                +    C_v = C_v, # heat capacity at constant volume
                                                +    R_m = R_m, # moist R, assumed to be dry
                                                +    # land slab parameters
                                                +    lnd_h = FT(0.5), # depth of slab layer [m]
                                                +    lnd_ρ = FT(1500), # density [kg m^-3]
                                                +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                                                +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                                +    # ocean slab parameters
                                                +    ocn_h = FT(0.5), # depth of slab layer [m]
                                                +    ocn_ρ = FT(1025), # density [kg m^-3]
                                                +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                                                +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                                +    # coupling parameters
                                                +    C_H = FT(0.0015),
                                                +)
                                                +
                                                +# DSS callback
                                                +function make_dss_func()
                                                +    function _dss!(x::Fields.Field)
                                                +        Spaces.weighted_dss!(x)
                                                +    end
                                                +    function _dss!(::Any)
                                                +        nothing
                                                +    end
                                                +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                                                +    return dss_func
                                                +end
                                                +dss_func = make_dss_func()
                                                +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                                                Initialization

                                                The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                                                Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                                                @info "Init Models and Maps"
                                                +
                                                +t_start, t_end = (0.0, 1.0)
                                                +Δt_coupled = 0.1
                                                +saveat = 1e2
                                                +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                                                +
                                                +# Initialize Models
                                                +atm_Y_default, atm_bc, atm_domain = atm_init(
                                                +    xmin = -500,
                                                +    xmax = 500,
                                                +    zmin = 0,
                                                +    zmax = 1000,
                                                +    npoly = 4,
                                                +    helem = 20,
                                                +    velem = 20,
                                                +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                                                +)
                                                +
                                                +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                                                +
                                                +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                                                Remapping

                                                Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                                                atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                                                +
                                                +maps = (
                                                +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                                                +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                                                +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                                                +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                                                +)
                                                +
                                                +# initialize coupling fields
                                                +atm_T_sfc =
                                                +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                                                +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                                                +atm_F_sfc = Fields.zeros(atm_boundary)
                                                +ocn_F_sfc = Fields.zeros(ocn_domain)
                                                +lnd_F_sfc = Fields.zeros(lnd_domain)

                                                Simulations

                                                Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                                                atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                                                +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                                                +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                                                +
                                                +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                                                +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                                                +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                                                +
                                                +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                                                +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                                                +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                                                Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                                                struct AOLCoupledSimulation{
                                                +    A <: AtmosSimulation,
                                                +    O <: OceanSimulation,
                                                +    L <: LandSimulation,
                                                +    C <: ClimaCoupler.CouplerState,
                                                +} <: ClimaCoupler.AbstractCoupledSimulation
                                                +    # Atmosphere Simulation
                                                +    atmos::A
                                                +    # Ocean Simulation
                                                +    ocean::O
                                                +    # Land Simulation
                                                +    land::L
                                                +    # Coupler storage
                                                +    coupler::C
                                                +end

                                                step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                                                function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                                                +    Δt = t_stop - sim.integrator.t
                                                +    step!(sim.integrator, Δt, true)
                                                +end

                                                The Coupler

                                                The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                                                After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                                                Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                                                Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                                                \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                                                where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                                                coupler = CouplerState(Δt_coupled)
                                                +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                                                +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                                                +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                                                +for (name, map) in pairs(maps)
                                                +    coupler_add_map!(coupler, name, map)
                                                +end
                                                +
                                                +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                                                Coupled Time Integration

                                                Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                                                Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                                                Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                                                \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                                                where $F_{integ}$ has units of $J m^{-2}$.

                                                function cpl_run(simulation::AOLCoupledSimulation)
                                                +    @info "Run model"
                                                +    @unpack atmos, ocean, land, coupler = simulation
                                                +    Δt_coupled = coupler.Δt_coupled
                                                +    # coupler stepping
                                                +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                                                +        # Atmos
                                                +        coupler_pull!(atmos, coupler)
                                                +        step!(atmos, t)
                                                +        coupler_push!(coupler, atmos)
                                                +
                                                +        # Ocean
                                                +        coupler_pull!(ocean, coupler)
                                                +        step!(ocean, t)
                                                +        coupler_push!(coupler, ocean)
                                                +
                                                +        # Land
                                                +        coupler_pull!(land, coupler)
                                                +        step!(land, t)
                                                +        coupler_push!(coupler, land)
                                                +    end
                                                +    @info "Simulation Complete"
                                                +end
                                                +
                                                +# Run simulation
                                                +cpl_run(sim)

                                                References


                                                This page was generated using Literate.jl.

                                                diff --git a/previews/PR94/images/cplsetup.png b/previews/PR94/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR94/index.html b/previews/PR94/index.html new file mode 100644 index 000000000..dc30cede1 --- /dev/null +++ b/previews/PR94/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                                ClimaCoupler.jl

                                                Coupling CliMA Models

                                                ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                                • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                                • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                                The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                                Coupler Scheme
                                                ClimaCoupler.jl allows for independent development of interchangeable component models.
                                                diff --git a/previews/PR94/search/index.html b/previews/PR94/search/index.html new file mode 100644 index 000000000..6a3e5a9da --- /dev/null +++ b/previews/PR94/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                                Loading search...

                                                  diff --git a/previews/PR94/search_index.js b/previews/PR94/search_index.js new file mode 100644 index 000000000..d4b08844d --- /dev/null +++ b/previews/PR94/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"}] +} diff --git a/previews/PR94/siteinfo.js b/previews/PR94/siteinfo.js new file mode 100644 index 000000000..143579916 --- /dev/null +++ b/previews/PR94/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR94"; diff --git a/previews/PR94/timestepping/index.html b/previews/PR94/timestepping/index.html new file mode 100644 index 000000000..6a22b478a --- /dev/null +++ b/previews/PR94/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                                  Coupled Simulations & Timestepping

                                                  ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                                  Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                                  • step!: advances the component model in time
                                                  • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                                  • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                                  Missing docstring.

                                                  Missing docstring for ClimaCoupler.CoupledSimulation. Check Documenter's build log for details.

                                                  ClimaCoupler.run!Function
                                                  run!(::CoupledSimulation)

                                                  A simple outer timestepping loop for coupled system runs.

                                                  This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                                  source
                                                  ClimaCoupler.step!Function
                                                  step!(sim, dt)

                                                  Advances a simulation by dt.

                                                  Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                                  source
                                                  ClimaCoupler.coupler_push!Function
                                                  coupler_push!(coupler::CouplerState, model)

                                                  Update coupler with fields retrieved from the coupler.

                                                  coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                                  source
                                                  ClimaCoupler.coupler_pull!Function
                                                  coupler_pull!(model, coupler::CouplerState)

                                                  Update model with fields retrieved from the coupler.

                                                  coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                                  source
                                                  diff --git a/previews/PR98/assets/documenter.js b/previews/PR98/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR98/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR98/assets/logo.svg b/previews/PR98/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR98/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR98/assets/search.js b/previews/PR98/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR98/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                                • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR98/assets/themes/documenter-dark.css b/previews/PR98/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR98/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                                                  that is identified by id #documenter. + */ + /*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #008438; } + html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.75rem; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #282f2f; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover { + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR98/assets/themes/documenter-light.css b/previews/PR98/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR98/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + color: #0a0a0a; } + .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) { + background-color: #0a0a0a; + color: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black { + border-color: #0a0a0a; } + .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light { + border-color: whitesmoke; } + .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input { + border-color: #363636; } + .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link { + border-color: #2e63b8; } + .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info { + border-color: #209cee; } + .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success { + border-color: #22c35b; } + .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning { + border-color: #ffdd57; } + .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger { + border-color: #da0b00; } + .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #1190e3; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83e; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1190e3; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + cursor: pointer; + text-align: center; } + pre .copy-button:focus, pre .copy-button:hover { + opacity: 1; + background: rgba(34, 34, 34, 0.1); + color: #2e63b8; } + pre .copy-button.success { + color: #259a12; + opacity: 1; } + pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + pre:hover .copy-button { + opacity: 1; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #def0fc; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #bdf4d1; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ffaba7; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-compat { + background-color: #bdeff5; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.75rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.375rem; + bottom: 0.375rem; } + .docstring > section > a.docs-sourcelink:focus { + opacity: 1 !important; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring:focus-within > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.outdated-warning-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + z-index: 999; + background-color: #ffaba7; + color: rgba(0, 0, 0, 0.7); + border-bottom: 3px solid #da0b00; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + .outdated-warning-overlay a { + color: #2e63b8; } + .outdated-warning-overlay a:hover { + color: #363636; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +pre, code { + font-variant-ligatures: no-contextual; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +li.no-marker { + list-style: none; } + +/* This file contain the overall layout. + * + * The main container is
                                                  that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover { + color: #0a0a0a; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.ansi span.sgr8 { + color: transparent; } + .ansi span.sgr8 span { + color: transparent; } + +.ansi span.sgr9 { + text-decoration: line-through; } + +.ansi span.sgr30 { + color: #242424; } + +.ansi span.sgr31 { + color: #a7201f; } + +.ansi span.sgr32 { + color: #066f00; } + +.ansi span.sgr33 { + color: #856b00; } + +.ansi span.sgr34 { + color: #2149b0; } + +.ansi span.sgr35 { + color: #7d4498; } + +.ansi span.sgr36 { + color: #007989; } + +.ansi span.sgr37 { + color: gray; } + +.ansi span.sgr40 { + background-color: #242424; } + +.ansi span.sgr41 { + background-color: #a7201f; } + +.ansi span.sgr42 { + background-color: #066f00; } + +.ansi span.sgr43 { + background-color: #856b00; } + +.ansi span.sgr44 { + background-color: #2149b0; } + +.ansi span.sgr45 { + background-color: #7d4498; } + +.ansi span.sgr46 { + background-color: #007989; } + +.ansi span.sgr47 { + background-color: gray; } + +.ansi span.sgr90 { + color: #616161; } + +.ansi span.sgr91 { + color: #cb3c33; } + +.ansi span.sgr92 { + color: #0e8300; } + +.ansi span.sgr93 { + color: #a98800; } + +.ansi span.sgr94 { + color: #3c5dcd; } + +.ansi span.sgr95 { + color: #9256af; } + +.ansi span.sgr96 { + color: #008fa3; } + +.ansi span.sgr97 { + color: whitesmoke; } + +.ansi span.sgr100 { + background-color: #616161; } + +.ansi span.sgr101 { + background-color: #cb3c33; } + +.ansi span.sgr102 { + background-color: #0e8300; } + +.ansi span.sgr103 { + background-color: #a98800; } + +.ansi span.sgr104 { + background-color: #3c5dcd; } + +.ansi span.sgr105 { + background-color: #9256af; } + +.ansi span.sgr106 { + background-color: #008fa3; } + +.ansi span.sgr107 { + background-color: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR98/assets/themeswap.js b/previews/PR98/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR98/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR98/assets/warner.js b/previews/PR98/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR98/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
                                                  Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR98/couplerstate/index.html b/previews/PR98/couplerstate/index.html new file mode 100644 index 000000000..c0517d1ac --- /dev/null +++ b/previews/PR98/couplerstate/index.html @@ -0,0 +1,16 @@ + +Coupler State · ClimaCoupler.jl

                                                  Coupler State

                                                  The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                                  The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                                  Coupler Object API

                                                  ClimaCoupler.CouplerStateType
                                                  mutable struct CouplerState{FT, CF, RO}

                                                  Type for holding coupled fields.

                                                  This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                                  A field is exported by one component and imported by one or more other components.

                                                  Fields:

                                                  • coupled_fields

                                                    A dictionary of fields added to the coupler

                                                  • remap_operators

                                                    A dictionary of remap operators between components

                                                  • Δt_coupled

                                                    The coupled timestep size

                                                  Contructors:

                                                  CouplerState(coupled_fields, remap_operators, Δt_coupled)

                                                  defined at /home/runner/work/ClimaCoupler.jl/ClimaCoupler.jl/src/CouplerState/coupler_state.jl:29.

                                                  CouplerState(Δt_coupled)

                                                  defined at /home/runner/work/ClimaCoupler.jl/ClimaCoupler.jl/src/CouplerState/coupler_state.jl:42.

                                                  source
                                                  ClimaCoupler.coupler_add_field!Function
                                                  coupler_add_field!(
                                                  +    coupler,
                                                  +    fieldname,
                                                  +    fieldvalue;
                                                  +    write_sim,
                                                  +    metadata
                                                  +)
                                                  +

                                                  Add a field to the coupler that is accessible with key fieldname.

                                                  Arguments

                                                  • coupler: coupler object the field is added to.
                                                  • fieldname: key to access the field in the coupler.
                                                  • fieldvalue: data array of field values.
                                                  • write_sim: the simulation can write to this field in the coupler.
                                                  • metadata: a catch-all storage for any metadata associated with the field.
                                                  source
                                                  ClimaCoupler.coupler_add_map!Function
                                                  coupler_add_map!(coupler, map_name, map)
                                                  +

                                                  Add a map to the coupler that is accessible with key mapname.

                                                  Arguments

                                                  • coupler: coupler object the field is added to.
                                                  • mapname: key to access the map in the coupler's map list.
                                                  • map: a remap operator.
                                                  source
                                                  ClimaCoupler.coupler_push!Function
                                                  coupler_push!(coupler, sim)
                                                  +

                                                  Update coupler with fields retrieved from the coupler.

                                                  coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                                  source
                                                  ClimaCoupler.coupler_pull!Function
                                                  coupler_pull!(sim, coupler)
                                                  +

                                                  Update model with fields retrieved from the coupler.

                                                  coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                                  source
                                                  ClimaCoupler.coupler_put!Function
                                                  coupler_put!(coupler, fieldname, fieldvalue, source_sim)
                                                  +

                                                  Sets coupler field fieldname to fieldvalue.

                                                  Arguments

                                                  • coupler: coupler object the field is added to.
                                                  • fieldname: key to access the field in the coupler.
                                                  • fieldvalue: the field being stored.
                                                  • source_sim: the simulation that fieldvalue belongs to.
                                                  source
                                                  ClimaCoupler.coupler_getFunction
                                                  coupler_get(coupler, fieldname)
                                                  +

                                                  Retrieve coupler field fieldname without remapping.

                                                  Arguments

                                                  • coupler: coupler object being accessed.
                                                  • fieldname: key to access the field in the coupler.
                                                  source
                                                  coupler_get(coupler, fieldname, target_sim)
                                                  +

                                                  Retrieve coupler field fieldname and remap to target_sim's boundary space.

                                                  Arguments

                                                  • coupler: coupler object being accessed.
                                                  • fieldname: key to access the field in the coupler.
                                                  • target_sim: the simulation that target_field belongs to.
                                                  source
                                                  ClimaCoupler.coupler_get!Function
                                                  coupler_get!(target_field, coupler, fieldname, target_sim)
                                                  +

                                                  Retrieve coupler field fieldname, remap and store in target_field.

                                                  Arguments

                                                  • target_field: the field to be updated by the coupler.
                                                  • coupler: coupler object being accessed.
                                                  • fieldname: key to access the field in the coupler.
                                                  • target_sim: the simulation that target_field belongs to.
                                                  source
                                                  diff --git a/previews/PR98/generated/sea_breeze/atmos_rhs/index.html b/previews/PR98/generated/sea_breeze/atmos_rhs/index.html new file mode 100644 index 000000000..9e2ab93da --- /dev/null +++ b/previews/PR98/generated/sea_breeze/atmos_rhs/index.html @@ -0,0 +1,298 @@ + +Atmospheric Model · ClimaCoupler.jl

                                                  Atmospheric Model

                                                  Atmosphere Conservation Equations

                                                  Density:

                                                  \[\frac{\partial \rho}{\partial t} + \nabla \cdot ({\rho \vec{u}})= S(\chi, ...).\]

                                                  Momentum (flux form):

                                                  \[\frac{\partial \rho \vec{u}}{\partial t} + \nabla \cdot ({\rho \vec{u} \otimes \vec{u} + pI})= \nabla \cdot (\rho \tau) - \rho g + F_{B}(...).\]

                                                  Potential temperature:

                                                  \[\frac{\partial \rho \theta}{\partial t} + \nabla \cdot (\rho \theta \vec{u}) = \nabla \cdot (\kappa \rho \nabla \theta).\]

                                                  Total Energy (possibly replace potential temperature equation with total energy conservation):

                                                  \[\frac{\partial \rho e_{tot}}{\partial t} + \nabla \cdot ((\rho e_{tot} + p )\vec{u}) = \nabla \cdot (\kappa \rho \nabla h_{tot}),\]

                                                  where $h_{tot}$ is the total specific enthalpy given by internal and potential energy contributions.

                                                  Tracer transport:

                                                  \[\frac{\partial \rho \chi}{\partial t} + \nabla \cdot (\rho \chi \vec{u}) = \nabla \cdot (\kappa \rho \nabla \chi) + S(\chi, ...).\]

                                                  Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity $\nu$ such that the stress tensor can be modelled by

                                                  \[\rho\tau = -2\rho\nu\nabla u.\]

                                                  Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.

                                                  \[\begin{aligned} +\rho\tau &= -2\rho\nu\vec{S}, \\ +\vec{S} &= \frac{1}{2}((\nabla u) + (\nabla u)^{T}), \\ +\nu &= (C_{s}\Delta_{x,y,z})^2\sqrt{2S_{ij}S_{ij}}. +\end{aligned}\]

                                                  with $\Delta_{x,y,z}$ the grid lengthscale (sometimes approximated as a geometric average $\Delta = (\Delta_x\Delta_y\Delta_z)^{1/3}$), $\nu$ is a spatially varying kinematic viscosity that depends on the local shear, $\vec{S}$ the symmetric rate-of-strain tensor, $\tau$ the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of $Pr_{t}= 1/3$ such that $\kappa_{2} = \nu/Pr_{t}$.

                                                  Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient $\kappa_{4}$ is $0$ in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).

                                                  Consider components of the viscous stress tensor in three dimensions:

                                                  \[\begin{aligned} +\tau_{xx} = 2\nu \frac{\partial u}{\partial x}, \\ + +\tau_{yy} = 2\nu \frac{\partial v}{\partial y}, \\ + +\tau_{zz} = 2\nu \frac{\partial w}{\partial z}, \\ + +\tau_{xy} = \nu \Big(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\Big), \\ + +\tau_{xz} = \nu \Big(\frac{\partial u}{\partial z} + \frac{\partial w}{\partial x}\Big), \\ + +\tau_{yz} = \nu \Big(\frac{\partial v}{\partial z} + \frac{\partial w}{\partial y}\Big). +\end{aligned}\]

                                                  Assume terms in the $y$-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:

                                                  \[\begin{aligned} +(\rho u): \partial_{x} (\rho \tau_{xx}) + \partial_{z}(\rho\tau_{xz}) &= \partial_x \Big(2\nu \frac{\partial u}{\partial x}\Big) + \partial_z\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_z\Big(\nu \frac{\partial w}{\partial x}\Big), \\ +(\rho w): \partial_{x} (\rho \tau_{zx})+ \partial_{z}(\rho\tau_{zz}) &= \partial_x\Big(\nu \frac{\partial u}{\partial z}\Big) + \partial_x\Big(\nu \frac{\partial w}{\partial x}\Big) + \partial_z\Big(2\nu\frac{\partial w}{\partial z} \Big). \\ +\end{aligned}\]

                                                  Which can be interpreted as, for horizontal-momentum:

                                                  1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                                  2. Vertical divergence of vertical gradients of cell-centered variables $u$
                                                  3. Vertical divergence of horizontal gradients of cell-face variables $w$

                                                  and for vertical-momentum, as:

                                                  1. Horizontal divergence of vertical gradients of cell-centered variables $u$
                                                  2. Horizontal divergence of horizontal gradients of cell-face variables $w$
                                                  3. Vertical divergence of vertical gradients of cell-face variables $w$.

                                                  Model Code

                                                  push!(LOAD_PATH, joinpath(@__DIR__, "..", "..", ".."))
                                                  +
                                                  +using Test
                                                  +using StaticArrays, IntervalSets, LinearAlgebra, UnPack
                                                  +
                                                  +import ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators
                                                  +using ClimaCore.Geometry
                                                  +using ClimaCore.Utilities: PlusHalf
                                                  +
                                                  +using Logging: global_logger
                                                  +using TerminalLoggers: TerminalLogger
                                                  +global_logger(TerminalLogger())
                                                  +
                                                  +using ClimaCoupler
                                                  +
                                                  +# set up function space
                                                  +function hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)
                                                  +    FT = Float64
                                                  +    vertdomain = Domains.IntervalDomain(
                                                  +        Geometry.ZPoint{FT}(zlim[1]),
                                                  +        Geometry.ZPoint{FT}(zlim[2]);
                                                  +        boundary_tags = (:bottom, :top),
                                                  +    )
                                                  +    vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)
                                                  +    vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)
                                                  +
                                                  +    horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                                  +    horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)
                                                  +    horztopology = Topologies.IntervalTopology(horzmesh)
                                                  +
                                                  +    quad = Spaces.Quadratures.GLL{npoly + 1}()
                                                  +    horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)
                                                  +
                                                  +    hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)
                                                  +    hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)
                                                  +    return (hv_center_space, hv_face_space)
                                                  +end
                                                  +
                                                  +function pressure(ρθ)
                                                  +    if ρθ >= 0
                                                  +        return MSLP * (R_d * ρθ / MSLP)^γ
                                                  +    else
                                                  +        return NaN
                                                  +    end
                                                  +end
                                                  +
                                                  +Φ(z) = grav * z
                                                  +
                                                  +abstract type BCtag end
                                                  +struct ZeroFlux <: BCtag end
                                                  +
                                                  +bc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                                  +bc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))
                                                  +
                                                  +function init_sea_breeze_2d(x, z)
                                                  +    θ₀ = atm_T_ini
                                                  +    cp_d = C_p
                                                  +    cv_d = C_v
                                                  +    p₀ = MSLP
                                                  +    g = grav
                                                  +    γ = cp_d / cv_d
                                                  +    z_c = 100.0
                                                  +    θ_b = atm_T_ini
                                                  +    θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation
                                                  +    θ = θ_b + θ_p # potential temperature
                                                  +    π_exn = 1.0 - g * z / cp_d / θ # exner function
                                                  +    T = π_exn * θ # temperature
                                                  +    p = p₀ * π_exn^(cp_d / R_d) # pressure
                                                  +    ρ = p / R_d / T # density
                                                  +    ρθ = ρ * θ # potential temperature density
                                                  +    return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))
                                                  +end
                                                  +
                                                  +function atm_rhs!(dY, Y, params, t)
                                                  +    ρw = Y.ρw
                                                  +    Yc = Y.Yc
                                                  +    dYc = dY.Yc
                                                  +    dρw = dY.ρw
                                                  +
                                                  +    center_coords = Fields.coordinate_field(axes(Yc))
                                                  +
                                                  +    # spectral horizontal operators
                                                  +    hdiv = Operators.Divergence()
                                                  +    hgrad = Operators.Gradient()
                                                  +    hwdiv = Operators.WeakDivergence()
                                                  +    hwgrad = Operators.WeakGradient()
                                                  +
                                                  +    # vertical FD operators with BC's
                                                  +    vdivf2c = Operators.DivergenceF2C(
                                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                                  +    )
                                                  +    vvdivc2f = Operators.DivergenceC2F(
                                                  +        bottom = Operators.SetDivergence(Geometry.WVector(0.0)),
                                                  +        top = Operators.SetDivergence(Geometry.WVector(0.0)),
                                                  +    )
                                                  +    uvdivf2c = Operators.DivergenceF2C(
                                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                                  +        top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),
                                                  +    )
                                                  +    If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                                  +    Ic = Operators.InterpolateF2C()
                                                  +    ∂ = Operators.DivergenceF2C(
                                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                                  +    )
                                                  +    ∂f = Operators.GradientC2F()
                                                  +    ∂c = Operators.GradientF2C()
                                                  +    B = Operators.SetBoundaryOperator(
                                                  +        bottom = Operators.SetValue(Geometry.WVector(0.0)),
                                                  +        top = Operators.SetValue(Geometry.WVector(0.0)),
                                                  +    )
                                                  +
                                                  +    ∇_z_ρθ = Operators.DivergenceF2C(
                                                  +        bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),
                                                  +        top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),
                                                  +    )
                                                  +
                                                  +    uₕ = @. Yc.ρuₕ / Yc.ρ
                                                  +    w = @. ρw / If(Yc.ρ)
                                                  +    wc = @. Ic(ρw) / Yc.ρ
                                                  +    p = @. pressure(Yc.ρθ)
                                                  +    θ = @. Yc.ρθ / Yc.ρ
                                                  +    Yfρ = @. If(Yc.ρ)
                                                  +
                                                  +    ### HYPERVISCOSITY
                                                  +    # 1) compute hyperviscosity coefficients
                                                  +    @. dYc.ρθ = hwdiv(hgrad(θ))
                                                  +    @. dYc.ρuₕ = hwdiv(hgrad(uₕ))
                                                  +    @. dρw = hwdiv(hgrad(w))
                                                  +    Spaces.weighted_dss!(dYc)
                                                  +    Spaces.weighted_dss!(dρw)
                                                  +
                                                  +    κ₄ = 0.0 # m^4/s
                                                  +    @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))
                                                  +    @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))
                                                  +    @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))
                                                  +
                                                  +    # density
                                                  +    @. dYc.ρ = -∂(ρw)
                                                  +    @. dYc.ρ -= hdiv(Yc.ρuₕ)
                                                  +
                                                  +    # potential temperature
                                                  +    @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))
                                                  +    @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)
                                                  +
                                                  +    # horizontal momentum
                                                  +    Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))
                                                  +    @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))
                                                  +    @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)
                                                  +
                                                  +    # vertical momentum
                                                  +    @. dρw +=
                                                  +        B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))
                                                  +    uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions
                                                  +    @. dρw -= hdiv(uₕf ⊗ ρw)
                                                  +
                                                  +    # DIFFUSION
                                                  +    κ₂ = 5.0 # m^2/s
                                                  +    #  1a) horizontal div of horizontal grad of horiz momentun
                                                  +    @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))
                                                  +    #  1b) vertical div of vertical grad of horiz momentun
                                                  +    @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))
                                                  +
                                                  +    #  1c) horizontal div of horizontal grad of vert momentum
                                                  +    @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))
                                                  +    #  1d) vertical div of vertical grad of vert momentun
                                                  +    @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))
                                                  +
                                                  +    #  2a) horizontal div of horizontal grad of potential temperature
                                                  +    @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))
                                                  +    #  2b) vertical div of vertial grad of potential temperature
                                                  +    @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))
                                                  +
                                                  +    Spaces.weighted_dss!(dYc)
                                                  +    Spaces.weighted_dss!(dρw)
                                                  +    return dY
                                                  +end
                                                  +
                                                  +# init simulation
                                                  +function atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)
                                                  +
                                                  +    # construct domain spaces
                                                  +    hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]
                                                  +    center_coords = Fields.coordinate_field(hv_center_space)
                                                  +    face_coords = Fields.coordinate_field(hv_face_space)
                                                  +    domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)
                                                  +
                                                  +    # initialize prognostic variables
                                                  +    Yc = map(center_coords) do coord
                                                  +        sea_breeze = init_sea_breeze_2d(coord.x, coord.z)
                                                  +        sea_breeze
                                                  +    end
                                                  +
                                                  +    ρw = map(face_coords) do coord
                                                  +        Geometry.WVector(0.0)
                                                  +    end
                                                  +
                                                  +    Y = Fields.FieldVector(Yc = Yc, ρw = ρw)
                                                  +
                                                  +    # select boundary conditions
                                                  +    if bc === nothing
                                                  +        bc = (
                                                  +            ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),
                                                  +            ρu = nothing, # for now BCs are hard coded, except for ρθ
                                                  +        )
                                                  +    end
                                                  +
                                                  +    return Y, bc, domain
                                                  +end
                                                  +
                                                  +using OrdinaryDiffEq
                                                  +function atm_run!(Y, bc, domain)
                                                  +    dYdt = similar(Y)
                                                  +    params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)
                                                  +    atm_rhs!(dYdt, Y, params, 0.0)
                                                  +    prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)
                                                  +    Δt = 0.025
                                                  +    sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)
                                                  +end

                                                  Coupled Atmos Wrappers

                                                  # Atmos Simulation - later to live in ClimaAtmos
                                                  +struct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation
                                                  +    integrator::Any
                                                  +end
                                                  +
                                                  +function AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                                  +    atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)
                                                  +
                                                  +    atm_integ = init(
                                                  +        atm_prob,
                                                  +        timestepper,
                                                  +        dt = dt,
                                                  +        saveat = saveat,
                                                  +        progress = true,
                                                  +        progress_message = (dt, u, params, t) -> t,
                                                  +        callback = callbacks,
                                                  +    )
                                                  +
                                                  +    return AtmosSimulation(atm_integ)
                                                  +end
                                                  +
                                                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)
                                                  +    coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)
                                                  +end
                                                  +
                                                  +function ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)
                                                  +    # reset flux accumulator
                                                  +    atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated
                                                  +
                                                  +    T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)
                                                  +    T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)
                                                  +    atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean
                                                  +end

                                                  Coupled Boundary Conditions

                                                  The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.

                                                  To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.

                                                  struct CoupledFlux <: BCtag end
                                                  +function bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)
                                                  +    # flux calculation
                                                  +    Yc = Y.Yc
                                                  +    uₕ = Yc.ρuₕ ./ Yc.ρ
                                                  +    ρw = Y.ρw
                                                  +    If2c = Operators.InterpolateF2C()
                                                  +    Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())
                                                  +    w = If2c.(ρw) ./ Yc.ρ
                                                  +    cuv = @. Geometry.UWVector(uₕ)
                                                  +    windspeed = @. norm(cuv)
                                                  +    windspeed_boundary = Fields.level(windspeed, 1)
                                                  +    θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)
                                                  +    ρ_boundary = Fields.level(Yc.ρ, 1)
                                                  +
                                                  +    # build atmos face fields on surface boundary space to enable broadcasting
                                                  +    windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))
                                                  +    θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))
                                                  +    ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))
                                                  +
                                                  +    λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary
                                                  +    dθ = @. θ_boundary - p.T_sfc
                                                  +    heat_flux = @. -λ * dθ
                                                  +    @. dY.F_sfc += heat_flux # accumulation
                                                  +
                                                  +    return Operators.SetValue(Geometry.WVector.(heat_flux))
                                                  +end

                                                  This page was generated using Literate.jl.

                                                  diff --git a/previews/PR98/generated/sea_breeze/land_rhs/index.html b/previews/PR98/generated/sea_breeze/land_rhs/index.html new file mode 100644 index 000000000..575b4145c --- /dev/null +++ b/previews/PR98/generated/sea_breeze/land_rhs/index.html @@ -0,0 +1,65 @@ + +Land Model · ClimaCoupler.jl

                                                  Land Model

                                                  Slab Land ODE

                                                  For our land component, we solve a simple slab land ODE:

                                                  \[\rho_l c_l H_l \partial_t T_{lnd} = - F_{integ} / \Delta t_{coupler}\]

                                                  • where $\rho_l = 1500$ kg m $^{-3}$, $c_l=800$ J K $^{-1}$ kg $^{-1}$, $H_l=1$ m are the density, specific heat and depth of the land slab,
                                                  • and $F_{integ}$ is the integrated surface fluxes in time.

                                                  Model Code

                                                  function lnd_rhs!(du, u, (parameters, F_accumulated), t)
                                                  +    """
                                                  +    Slab layer equation
                                                  +        d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)
                                                  +        where
                                                  +            F_accumulated = F_integrated / Δt_coupler
                                                  +    """
                                                  +    @unpack lnd_h, lnd_ρ, lnd_c = parameters
                                                  +    @unpack T_sfc = du
                                                  +
                                                  +    @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)
                                                  +end
                                                  +
                                                  +# set up domain
                                                  +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                                  +    FT = Float64
                                                  +
                                                  +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                                  +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                                  +    topology = Topologies.IntervalTopology(mesh)
                                                  +
                                                  +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                                  +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                                  +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                                  +
                                                  +    return space
                                                  +end
                                                  +
                                                  +# init simulation
                                                  +function lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                                  +
                                                  +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                                  +    space = hspace_1D((xmin, xmax), npoly, helem)
                                                  +    coords = Fields.coordinate_field(space)
                                                  +    domain = space
                                                  +
                                                  +    # initial condition
                                                  +    T_sfc = map(coords) do coord
                                                  +        T_sfc = 273.0
                                                  +    end
                                                  +
                                                  +    # prognostic variable
                                                  +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                                  +
                                                  +    return Y, domain
                                                  +end

                                                  Coupled Land Wrappers

                                                  # Land Simulation - later to live in ClimaLSM
                                                  +struct LandSimulation <: ClimaCoupler.AbstractLandSimulation
                                                  +    integrator::Any
                                                  +end
                                                  +
                                                  +function LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                                  +    lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)
                                                  +    lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                                  +    return LandSimulation(lnd_integ)
                                                  +end
                                                  +
                                                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)
                                                  +    coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)
                                                  +end
                                                  +
                                                  +function ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)
                                                  +    coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)
                                                  +    land.integrator.p.F_sfc ./= coupler.Δt_coupled
                                                  +end

                                                  This page was generated using Literate.jl.

                                                  diff --git a/previews/PR98/generated/sea_breeze/ocean_rhs/index.html b/previews/PR98/generated/sea_breeze/ocean_rhs/index.html new file mode 100644 index 000000000..a1db2f9be --- /dev/null +++ b/previews/PR98/generated/sea_breeze/ocean_rhs/index.html @@ -0,0 +1,65 @@ + +Ocean Model · ClimaCoupler.jl

                                                  Ocean Model

                                                  Slab Ocean ODE

                                                  For our ocean component, we solve a simple slab ocean ODE just as we did for the land:

                                                  \[\rho_o c_o H_o \partial_t T_{ocn} = - F_{integ} / \Delta t_{coupler}\]

                                                  • where $\rho_o = 1025$ kg m $^{-3}$, $c_o=3850$ J K $^{-1}$ kg $^{-1}$, $H_o = 100$ m are the density, specific heat and depth of the ocean,
                                                  • and $F_{integ}$ is the integrated surface fluxes in time.

                                                  Model Code

                                                  function ocn_rhs!(du, u, (parameters, F_accumulated), t)
                                                  +    """
                                                  +    Slab layer equation
                                                  +        d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)
                                                  +        where
                                                  +            F_accumulated = F_integrated / Δt_coupler
                                                  +    """
                                                  +    @unpack ocn_h, ocn_ρ, ocn_c = parameters
                                                  +    @unpack T_sfc = du
                                                  +
                                                  +    @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)
                                                  +end
                                                  +
                                                  +# set up domain
                                                  +function hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)
                                                  +    FT = Float64
                                                  +
                                                  +    domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)
                                                  +    mesh = Meshes.IntervalMesh(domain; nelems = helem)
                                                  +    topology = Topologies.IntervalTopology(mesh)
                                                  +
                                                  +    # Finite Volume Approximation: Gauss-Lobatto with 1pt per element
                                                  +    quad = Spaces.Quadratures.GL{npoly + 1}()
                                                  +    space = Spaces.SpectralElementSpace1D(topology, quad)
                                                  +
                                                  +    return space
                                                  +end
                                                  +
                                                  +# init simulation
                                                  +function ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)
                                                  +
                                                  +    # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)
                                                  +    space = hspace_1D((xmin, xmax), npoly, helem)
                                                  +    coords = Fields.coordinate_field(space)
                                                  +    domain = space
                                                  +
                                                  +    # initial condition
                                                  +    T_sfc = map(coords) do coord
                                                  +        T_sfc = 267.0
                                                  +    end
                                                  +
                                                  +    # prognostic variable
                                                  +    Y = Fields.FieldVector(T_sfc = T_sfc)
                                                  +
                                                  +    return Y, domain
                                                  +end

                                                  Coupled Ocean Wrappers

                                                  # Ocean Simulation - Later to live in Oceananigans
                                                  +struct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation
                                                  +    integrator::Any
                                                  +end
                                                  +
                                                  +function OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())
                                                  +    ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)
                                                  +    ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)
                                                  +    return OceanSimulation(ocn_integ)
                                                  +end
                                                  +
                                                  +function ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)
                                                  +    coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)
                                                  +end
                                                  +
                                                  +function ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)
                                                  +    coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)
                                                  +    ocean.integrator.p.F_sfc ./= coupler.Δt_coupled
                                                  +end

                                                  This page was generated using Literate.jl.

                                                  diff --git a/previews/PR98/generated/sea_breeze/run/index.html b/previews/PR98/generated/sea_breeze/run/index.html new file mode 100644 index 000000000..89cbc503e --- /dev/null +++ b/previews/PR98/generated/sea_breeze/run/index.html @@ -0,0 +1,149 @@ + +Coupled Sea Breeze · ClimaCoupler.jl

                                                  Coupled Sea Breeze

                                                  Overview

                                                  This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.

                                                  In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.

                                                  Model Initialization

                                                  Component Models

                                                  Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as "standalone" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.

                                                  In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.

                                                  include("atmos_rhs.jl")
                                                  +include("ocean_rhs.jl")
                                                  +include("land_rhs.jl")
                                                  +
                                                  +# model parameters
                                                  +const atm_T_ini = FT(270.0)
                                                  +const MSLP = FT(1e5)
                                                  +const grav = FT(9.8)
                                                  +const R_d = FT(287.058)
                                                  +const γ = FT(1.4)
                                                  +const C_p = FT(R_d * γ / (γ - 1))
                                                  +const C_v = FT(R_d / (γ - 1))
                                                  +const R_m = R_d
                                                  +cpl_parameters = (
                                                  +    # atmos parameters
                                                  +    atm_μ = FT(0.0001), # diffusion coefficient
                                                  +    atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm
                                                  +    atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]
                                                  +    MSLP = MSLP, # mean sea level pressure
                                                  +    grav = grav, # gravitational constant
                                                  +    R_d = R_d, # R dry (gas constant / mol mass dry air)
                                                  +    γ = γ, # heat capacity ratio
                                                  +    C_p = C_p, # heat capacity at constant pressure
                                                  +    C_v = C_v, # heat capacity at constant volume
                                                  +    R_m = R_m, # moist R, assumed to be dry
                                                  +    # land slab parameters
                                                  +    lnd_h = FT(0.5), # depth of slab layer [m]
                                                  +    lnd_ρ = FT(1500), # density [kg m^-3]
                                                  +    lnd_c = FT(800), # specific heat [J K^-1 kg^-1]
                                                  +    lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                                  +    # ocean slab parameters
                                                  +    ocn_h = FT(0.5), # depth of slab layer [m]
                                                  +    ocn_ρ = FT(1025), # density [kg m^-3]
                                                  +    ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]
                                                  +    ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]
                                                  +    # coupling parameters
                                                  +    C_H = FT(0.0015),
                                                  +)
                                                  +
                                                  +# DSS callback
                                                  +function make_dss_func()
                                                  +    function _dss!(x::Fields.Field)
                                                  +        Spaces.weighted_dss!(x)
                                                  +    end
                                                  +    function _dss!(::Any)
                                                  +        nothing
                                                  +    end
                                                  +    dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))
                                                  +    return dss_func
                                                  +end
                                                  +dss_func = make_dss_func()
                                                  +dss_callback = FunctionCallingCallback(dss_func, func_start = true)

                                                  Initialization

                                                  The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.

                                                  Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.

                                                  @info "Init Models and Maps"
                                                  +
                                                  +t_start, t_end = (0.0, 1.0)
                                                  +Δt_coupled = 0.1
                                                  +saveat = 1e2
                                                  +atm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)
                                                  +
                                                  +# Initialize Models
                                                  +atm_Y_default, atm_bc, atm_domain = atm_init(
                                                  +    xmin = -500,
                                                  +    xmax = 500,
                                                  +    zmin = 0,
                                                  +    zmax = 1000,
                                                  +    npoly = 4,
                                                  +    helem = 20,
                                                  +    velem = 20,
                                                  +    bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),
                                                  +)
                                                  +
                                                  +ocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)
                                                  +
                                                  +lnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)

                                                  Remapping

                                                  Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.

                                                  atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))
                                                  +
                                                  +maps = (
                                                  +    atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),
                                                  +    atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),
                                                  +    ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),
                                                  +    land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),
                                                  +)
                                                  +
                                                  +# initialize coupling fields
                                                  +atm_T_sfc =
                                                  +    Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+
                                                  +    Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid
                                                  +atm_F_sfc = Fields.zeros(atm_boundary)
                                                  +ocn_F_sfc = Fields.zeros(ocn_domain)
                                                  +lnd_F_sfc = Fields.zeros(lnd_domain)

                                                  Simulations

                                                  Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.

                                                  atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)
                                                  +atm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)
                                                  +atmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)
                                                  +
                                                  +ocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)
                                                  +ocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)
                                                  +ocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)
                                                  +
                                                  +lnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)
                                                  +lnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)
                                                  +land = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)

                                                  Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.

                                                  struct AOLCoupledSimulation{
                                                  +    A <: AtmosSimulation,
                                                  +    O <: OceanSimulation,
                                                  +    L <: LandSimulation,
                                                  +    C <: ClimaCoupler.CouplerState,
                                                  +} <: ClimaCoupler.AbstractCoupledSimulation
                                                  +    # Atmosphere Simulation
                                                  +    atmos::A
                                                  +    # Ocean Simulation
                                                  +    ocean::O
                                                  +    # Land Simulation
                                                  +    land::L
                                                  +    # Coupler storage
                                                  +    coupler::C
                                                  +end

                                                  step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.

                                                  function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)
                                                  +    Δt = t_stop - sim.integrator.t
                                                  +    step!(sim.integrator, Δt, true)
                                                  +end

                                                  The Coupler

                                                  The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.

                                                  After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.

                                                  Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.

                                                  Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:

                                                  \[F_{sfc} = c_p \rho_1 C_H |u_1| (\theta_{sfc} - \theta_{atm1})\]

                                                  where $\theta_{sfc}$ is the potential temperature at the land or ocean surface, $\theta_{atm1}$ is the potential temperature at the lowest atmospheric level, $c_p$ is the specific heat, $C_H = 0.0015$ is the bulk transfer coefficient for sensible heat, and $|u_1|$ is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that $\theta_{sfc} = T_{sfc}$.

                                                  coupler = CouplerState(Δt_coupled)
                                                  +coupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)
                                                  +coupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)
                                                  +coupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)
                                                  +for (name, map) in pairs(maps)
                                                  +    coupler_add_map!(coupler, name, map)
                                                  +end
                                                  +
                                                  +sim = AOLCoupledSimulation(atmos, ocean, land, coupler)

                                                  Coupled Time Integration

                                                  Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.

                                                  Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.

                                                  Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl

                                                  \[F_{integ} = \int_{\Delta t_{coupler}} F_{sfc} dt\]

                                                  where $F_{integ}$ has units of $J m^{-2}$.

                                                  function cpl_run(simulation::AOLCoupledSimulation)
                                                  +    @info "Run model"
                                                  +    @unpack atmos, ocean, land, coupler = simulation
                                                  +    Δt_coupled = coupler.Δt_coupled
                                                  +    # coupler stepping
                                                  +    for t in ((t_start + Δt_coupled):Δt_coupled:t_end)
                                                  +        # Atmos
                                                  +        coupler_pull!(atmos, coupler)
                                                  +        step!(atmos, t)
                                                  +        coupler_push!(coupler, atmos)
                                                  +
                                                  +        # Ocean
                                                  +        coupler_pull!(ocean, coupler)
                                                  +        step!(ocean, t)
                                                  +        coupler_push!(coupler, ocean)
                                                  +
                                                  +        # Land
                                                  +        coupler_pull!(land, coupler)
                                                  +        step!(land, t)
                                                  +        coupler_push!(coupler, land)
                                                  +    end
                                                  +    @info "Simulation Complete"
                                                  +end
                                                  +
                                                  +# Run simulation
                                                  +cpl_run(sim)

                                                  References


                                                  This page was generated using Literate.jl.

                                                  diff --git a/previews/PR98/images/cplsetup.png b/previews/PR98/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 zcmdqJgLfs)vM3yD!ikd!Cbo@9GV#Q=ZQHhO+qP}n6Wi9?`JHpmz29B${R7|5+AEE! z?ylZ{fPlRHfq-5BMczk1Kn`?3KquNjKpe?HKjr@e{cfA?f*_iwTQ1k!%h(9+Y;(f;4i44h5=A821S|3dqR zu77pM_0<@Ml&y&YV8CC)`bE$6PY3^>vi}|)*Hf5lY!e`5ZRntx+*(SC9De{lI|kl#Xfg*YHQf2 zusSc36Qn>PS6#>X?M>9bvGLw^XlNwzTR%3uJ*DOG(Jh7bQiJ``OY5NB?jlC#yqp)s z$D5ZIA0H7B3JRa+9mQQB&9Tta`=q2`j!#TH7nPKhq_2D@Or+QQ>L7fC zm6df&3q+q5bfe1QQ}SMa>4?}@lPvg`nAq4a1l_ybuNfHqS`qtt6s{;x)?mSyO7il< zQ8zcX@`{SS$#|lb9`wI-mt_;pk2A6`*gA}dH93yzUd5nA&l(#WHQ=$au|G8E9IvAY z5HYwwd|eQ5IcH??yOHq8Q!wmQR4{pt(&2U0A08g6>*{tPGmr@h3oB>?s&mlMR%8?u zh(R_zo2n6<T+wWj{lCd9#oJn;}a{YrNwd zNIg$RR#ud+FNkNf4;nq3E?TXW?0smiCRk}%nT)bBnO98iIrOY`b8Bnw#6$$%Zw{r) z)ZiJWC_v|_TA+MBfr$9zw5+V?06F~@N5lmX-R%6?9i}q*K|mIA(eje88JhJ+agAhL zTwG5tGgzS=cE=TI*&;0f+AGw#1g%uPd3ALOXf)f0EAo#ax5mc8@D>*rRe3w`Ye>O{ zdFg0rqs$~l+hZmvt_3<>?s<>d|gLJUI_i!S{ECZgbZGEYvW-Ym_I6RJrR z0aUUgiZwMl`d3&@4g2lwZTs?as!1de4x7Z}1>6S2Cli3%Mk?RWoFU}xIqvne1G#QH zM*TaZbdGZ4c28s=GbYC8?#>=}h6W!Wh>wqNovh{%?QbbBuPcC9>JDZkloDW{^R*^I zA|kN6KI+g90^ZI8a&q#w?4;J4$;Zs_C-2+uW?_sKJW-($Y1rm_@$CQkWig6l2 zE!AM408<=hQW*{4Z5u76ovj@PgdIRQhwfc{*Py#-FzEwhZX+lO} zL4nO6b#JBV{>?G*jIYb-er=d2G6+h#;F(*Pkq;t%9&;@lx*&cw_17FyQxYG^bAX_@ zgvl3BQ&a!BRI@MUh8n)9oEu9g0|B<+18h4B6>`3!StL3ZmIF~?|A3m=oP|<&Q3FXn zHCWjGsT@V>^h{*ROhs-lpgWJ3UIX#1ET9|)bSZB~0swW6m1)_kqEJwI%*4PY1slY=|RvPnaI_~L4y;Tca7rAaBd4*33gp@>@U5grIYOmK~623u8nnN^)L zvdlg}L%kFP0nwjt6xmrnx#ONJx71~@_rCwg7e4wVBj6{7S^kcTOQV7Xu2ahAo%}do zBBwCda-@Kt{Ts}Guj04$eZ^^OAljP^8%|XvhfnVf2~`&3_azCKz6ZUO*udXsZep%3 z@h_Owj(F=K=*lB7tm*VgbwS8M-F^m>wVseq*2?5BG z{YC`rMIb$zj*6}jO?yPS%+d$wZe$>Z5kwTCfSB{Ckq>-BZiNc7G&0p#V`*_pJobar1Eap58k zfL(2b1f6EcAir-G3m0OcD$dWlOZtDC8&cRps(qtsC;1-fnAjnUesbuGj9wcpBMr{O znx=VbauX=-AnBtfFyjG6#)dG^=wxp{|2`6mc|!En(uje=Mt*GV==CL@l+I&{`uGpL zP!~DE7yWgC5T72paI6dB;|{BonbebLWNtBN;B)Ap(ard^wS2IQY(avry%7@-&4CGC z(D0=H?o$47%OC{*I2fx!xV=-}jDmx^9a`RtwTHGOVp~c>LsMK)vHz+_)TGbT$>4%7|IF)$gF#X}i`Pty<=4irEYBM?&i2TTLTPXc@ld-Y!^Zg?N5`uCA{3uBfQUH?cCa5V+o7sCK;K z*IW-8=6_LT}n ztrpoLeSs#v*1q9&(%uny3#z-;tG+HY+C=c+{4#HH3hYMX%P!EKh{+iG65&k&tOwJ!6!ABQG6D6>-4ws>hn+h1IgqRH3o&3TQUO* z!1=qVc^Zb@8Uzq(txbiXsWQN8UY?(ab!^U^K&+Bcz5N(o(XMI<#3b{ehp}NYGIPbF zIuHv@%a6Dy=BhKr1qI+LDk@ixk4a1&g3w#NBSs*wuo5r%0OtKPy7DAc%x=6QV}P#` z@GvmVvgnuC_!4d#Dr3MC`3ac$=h}%|msOnKc%+P|GTC#ryv~8)riBd{<@8`5odzo7 zRy^is$Eg9jN_mV{r+y2>i5Zj8F5XRSXxJi_Pf@943 zpd=BB_rpqoJlP2vy)}b6vS1Tpbn9sP{ANJNR^NaX)~nZ#C#kv!J2nuZjgZAw^L!k4 ztcC(~do$nx^HzMiE7E*1yKBKTL}R_QH6jbIJF_3Xpxks`s$k{R9N&YB-Eb2RNT76d zXZsl-Zpj!ej z;eWmflQmy~ud1FX2-F-Y#(ixg(YpmUM;k%zO*J>P>tj@|(TT zE$UQ~g0Uw8c~f*Y`@i2>f@BbJk>ffaW0;v&77tY83*QFwE%*1(nrabvyNBDRH`PPy z`KNL#?{Wd^=%4};;1n!_QZBIdgy&*Z zd2~yClZgoQD0<(UV(qUJF?m)V*NqXb10t8DjHkKlZc%4q5*?cm6xot> zlZB9y;^zm2`Sxw+^px{SQhvF%q!K8h6hj?7#;!#$#i-?N2ySr=a z6HO$`3x@D?&)6}Ahf~W3R^`NCa`7MbjM$;nN_7st_qupPCPa{NC^CQX2up|gacgxo z@E%h3dUuj&JQFbxn(!?UB}yG@yk6F;s7d~4Xc4B?& zkhgt2%Uqv32z6?tEv)vfnO)_U%<5fUVa-BMPmhh0)9#x=0~`f}EC)#ZLBiXEXdFRH zZ#xf+3NIS^)=2j9{s{$&?gFbV`#80Qi+$tjtg{0g^`Hy^fD}q3aS2C<16w4$bt7eE zIdpX%Vs-KmfqC|bA0h?Q2%S&~6bTC$KX8Z~;@pybeC|9?C~o0(F;sPS zx!kSeu>X|l^lhIpLT8RwP|;oxqL6;VCYG9$afddV3h}y1)u#eaKkTSt)aALaVZ#^d z_0)@qVil14)`afvP;ma>&NZLPfyw56>$)`5= zP%f-plh(2gEScHjHIr))I!5xNj0DK9P(9+7R09RLb*HxK_LyhOA#aRqmZTZ+mqLHy zcrkUDfteYkiHV8g($ZKEcHcl?0^U<0Q@dKNXw~E4h4Y>p2eV8TLOn4wO$YLEs`3^r zjeg;z)wx+lZeN$j@UXoq5(cxIrV*#LHB38Fgu|6qA}MNbq2e~D-%*~dEdBHhNN1&xo6gk@NL_%KwQgL@%x3~vz z>^^Es&uL@FiaKQu_dc%0S#R{y_4~V;Mq}+GaHpzdS{eORCzmKe3AM(I>!pB=geWN; zcd4{&Ix4euK(I_4wGi~tb__s+EaVTimxW2vlQ+UXfDSKIsLMlaro}x9 zG$Q;;5HxVZQ2-x;*z_^Z`MQHp#H=4Zep(&?ac_A3ZWw{Epvqd^gHInSy0sQ*0AE-# zyB6$WRlr|53s25~`|J?cL#1!++sp$0SSFR46yJ| z2Gnw9$Oa!vsgt6URmhL?31B1)qZ35fLU1-~9=V5U;upi!BZjRd1k~iP@+nS>Gg`<+ zBn&Fg)Hf(VtFj^^#Hm!27YvN8DD(o&t8yAz3bWAuHd1_FEbXTmI*ps($Opc&`Irsmok%AgWTai&mQAf!pSM@MK9azoWOQd6-9v>##9 zrvB!x5$+yo&8U-R1P7<~3drrk98{3+xnVT5w<29uaE|r*tL~~MB8e}-&AEDKj}e2C zTu188J~r;EXjGd04I4L(AmWtC4+DC36caV5JOMPV0*y8uaK6Dwr*$8$=cT7IGt0yu zm>ETp+$4bO-CN5s+06f@PH&Rm)woh$3_Gv`OfyVfsgp9xgl)GnI~yxzKQJ(R#iN9| zt-4PC{I{s6=oX;;r3lIVeWaLLs3>V!Z5!&QwkD~S>hM{OWs``>X#$Ly+NXeY@NP?M zQpY@>Rw(dTvA;g2S8NrsSO1m%SY(SoBhI)A3v8Ig$Ni?FJRfPdi%`iab=B6P3}T_v zt-%q>cj*ed1xd|dGpCa>tnH5=KoctHWxtx7UG}^vI^Csrut&Vzb;NXrbe$$3n8xv! z^E9atGNM!;WPUU^Awy4UR=p=LDFyFE3e@?I!tXAJZ$F=ouYOE)TEo+d)N+Lub59 zpn@8$&PD#tl}+6eBI+umxqLL|cV&`>zoD)XNEXJ%P`cXy1sf}m4|bgqq`x^MBSXj1 za?=i+Su^2Jr6sdu3W9;TX&=v_&LN+0dbQh}zV&Z(lr>T>OnWLD<c6ScU3v0h>x1{SLqe}>r^z&yGka+c`kEkF+tuTmv%0QWf{A%y z4QaZMmSHooc-351&>y+sG?$cwnDM{8zq?iBRbu0`v^HILSUNi!L^L{By%bBg*N$TMZZLu}msUpp6B7Fpnq#OmV6XX3*NWhg(xB88PBKg~R z`M-+d<8nnneZs?Got>S#`vq=O9zx?3`yy=}7*T6~p^yGKz^TEQXjmBz`%I>{j*(Sb znex-#92Kfh`UtkET8j(E#@KaiY&t7QY+lC$q1Vx5OHd9jT`l}5Ej{a$&M1Rj<#V7y zO<xxoPa6cE|=>#u1t1RQLE;oqy~a35PY!fm9& z{NuFO`F}6=j$`DE7g$c2Oo(p%cKDS~EN{9S7zlxahSs~Zq*U?_Us%`cZ?&_>2u$P< zI_m=zAa`%*xlP^BGTe3LevJMmw8kQ zrWSsN4A?QDiL;WiZn0#kg5I&wPft(X!^0wZ{?e5fiqvBZ6*S$!K63a;g(qK@P$(Q_ z_;S2Y2Y?T}HA%m|GmibEZe?Lj%J1t&wV@|NxUY=%qWEk^E<2GJbz3CNbT2O_w-N8} z?~~_o&I}voqw;)V)#+nTk1aS?0D(@J@H5I7(aiUVZK()<%Wmg{AWjFVg)T4veW zIMyoQ7}HpGz^I|tVegU3X0q^W4P02U0URzpvxcaOyJZvT^hUZE>lt@zC-UG|H#8O% zF~WB& zTA`5u5_8`~7H0#`lE?uP46M5SvG1jjO6m-^xfJ$XN2bbgz7UZEy^D~Qz>LuzClXJQUO0mX zlC5;q4dZ-tmp^;g0mcNaimDVOCuMlVtb2CwPf20QG=M2_t4u&5(Aqc6>k*s$pIa(A zvU_U!p3fpvIItk#p6F?hu)F@$~F` zBlfLCz9oS@s%~lu^78`)+_B4JmB#;`n;i=*D=Rb1RLU%SRqFs~Oz_?o>Az=Y<@+$6 zu+x38vBIF@L$_&?n+VA6WrKdhMdPu?wb4%~pMi!hU_hzract8_(v>#SdLVkoFxUTjS z4yeOYgeanCWC^jhzL}b zq$4m<%-k5P%25`_KyOH`1t{QMp>v-%E8pX&YWf>+$JO*$6ba1Kg2nDnjHW-`co0+3 zr!g)&M)5?SFh$#G@(iJs_7p^yeC0#|-0zlZAZSyeff)_Y_^yZ&@; zgT?n59z&5h!{g%u+S>Rc5t5MS5@EBfAa}F;ZbvAFiN8jiBdha(*fKLS@zZ=S_K#-r z+V@!!JqT!Xp?Vaa(v_m9)Q1aZdgX6!i>-k~6e z`NIu(zQM%Ae9L~fS!E>6Yo2@nKS}+$e=_;&83IJ_5{aB=0nAmx1?xu6vB&Cf8Xe2r zI7>)sAxE*!JobXFG|`_t88bD`C?(wOeIkq|ro?<<3S*BGY_*tVmBn2T8yQZ-Y;T76 zlQ{PltG08N@E`24moY(sfu{N(@nvf&dnbyN4~h@K)^`{o>2sgJm@uKUs9!hLe`ijc zvL1;TAHn&9(qxDf3j|kA512jujyEtDv>0(Y&j^ksM;~uP;4L#vySm3qO76!28O5UxeZWUNxD0)(Rn@Ou zKLNaTK=|>R*}?shTdJcg7C%7~%!87~l9`%z84i1enz$FlDiEab`*yG~_Qx8ufro~G zU>K+K;vF*Tr~unWg&#^f{8omlZ_Tmhu_6a``a`E`?*uJzQdU{w8#XPQYlOj1`7J&- zwK^1$Su!{PRUn^%ekJR?7UKR+w9NemC4`8$+kxLqh=(al5;#hHe}(*1eZQ6XkF1{Ra2R6@;DG!NMGtpKdE^5HNc-9&YK1ZN4 zs%sFIs{yr_B)_Aq4w0%nIt(87hJ>?Mz9?O?8jzUXNDAg$c|nm_#(9*PX&GjQCDh$L z?N1!2;ywO^r)`J~C1>_N9~lZ|mVqlUI`Mw7S_gG!!)G5XT*UcT{sc;1ercCXZ*{<6 zA(?dsPp?m7Ayq^CXjo-Qx2Jq}ddo z)xYl@N@Atc>K5|-2|r(UP@=MhTyg|sSU`?j4A|UR;4UK3l)0!8X&%sKNtC6Fn4zM- zeHXmR^~R6P%-iXX)aetjCLyQQ=C?qqrTtip>F!te`Yr^0Fp)Vr#j3g8;zv68B=(HC z;I?Y4^*WuxG(XS0U3km~b?Y$gCJqJ!ct`{BK~aChns9Kj*4tqp8B#_$CXh~a!cs6u zxx)D@-E22M=Dz*qNRQVhxvzWNKu@Jq6|6xu;3Z{y&*4FijUIbTpLTAh#W*Tfo`8b> z2hyaJhRdf{Y^(aJxRYvjRUQK?L?ldBS}tZy z^*BqRBsLpm1NOU5W1=gHmZo2+Zypujh`nI|&0ika?|%|l%uGu8URv)x`9*i)U6$P|UK*D1? zqfyyQhQEoGS>Ki;!lF~y691%Z#iRncM;+l}E(j@MmMfS78(2dVRE3gHAj)NX1p^`J zh|n3wQ%?%pWU%^k>vH4{oH!nOq2L?IX$LZPCaa(ptg`G!JDB6vQ@5@PZ)+$3r{#I|PPf@|`P^OhBEfN!D%4)Fc)T{q=J-^9 zE{;tS@M@rd$xI3-Tl=GK?|$Bhds&CqMs`#ku^ zs}fcB$Hv-I!`3HPNN{n?+uI>tS8w5#A|W9+_)ZLcGQ+#-c*hP28++T$>%@e_)7?93 zjoT0j3hJI+Nyf#N>yqEi2PNg`)kPXD;l;R3d?L!Nr%*(SH>wj4tQof256*T3Ew2}v za0zj1?6!y9QmGj0pYX^eQbWCImVM13t4Y0d#ARTRl0~|*@tg;dj{!M3nw?6cS->^~ z9$?KVnQz}HY#*$dTO0JM??M)lVamp2rQ>a&KH|1!R*uYEhuWvAd8xd9O!VKd6Q*3N zTtXOadEFyvdOeeW6k9#rqV(qJwsJl6^Ij@5glV}Q#$DR<#j0Hcd^Wbl8^i=3i1nR` zJl8zK1+5tSGFUaj@*p4Wt9;#XU9l)XuhF_Z`^IHN+MOL{U0ji#TqhLYK5ieKcdp%> zHBRbkYWOzsN^V#$I3l9y&ZQ5TnVT32GkSYd7q=%{bgmrgVx|Ps0gvmzJ})<8R8x0B z)z$ZV5Ec-DgR8ualXJ;#E|lR^A|9SWl9LKm{b?_QXm5=?;B!M@k0Z?{1##bLuE0sd zZn~qZ%g}hp^qb#Qg;W`88RxFf(LeW>2E(&_6;2!VW@;mY4j4|uV7DACpEV|%LsY6> zcM&Tynu432A8rw(qqF?RLeTfaUjw>6A=@H}eTcj$gb~gSC|WCB%!Q+}!W+`yw+}c! zdQYP%K9_UKwBVm4Lf*;ADh5~2jkK*y{1cjnU1X_-VlRrWS?Kt@CcZ=U}|F6Y@dOkM*ySEEbhj!inh~8+n+OLtR7MNK05isdN9nqU@mBkS zEeTq(TA)c*f4t(azRti2Hsd2HOR6+Yig<(!3`%I{T>Z4F@GKlX@z#seG3a9}6_(2m z1{*PvLZXia^Y;_MGwvhLu1D=I(8UN{vF^vlfU=E8`EMyXUg;oOBQrC~8@syg{W<0r zRY}FbcD&NHXU=CIIeJFMAx7E`nkwPfdHLWG9>*<)XNMJ07Zq}I^Ya>)cdYW)>#?$Y zbCr(CtY4nMZ)HesEBL6c8e$TMYq6YG=B7HU{$s`_CWE(>LOq+RU>(ux1kk<^5#AB6 z0vCGeZWkW&3j5uJ#_+J=mF-6et$H)o(ooB6L3y=oNCwAV-SpZ!*)P$ign;`HsxiF9 z3&}x$W1avzdq@Z^nXszY>r)!>WVE<^brsA>*g4bEDk6sB(sJ**Fzlp4gv+ggGH|e< z-o;A7bW-{i*3DO6NcWg~zO0`*F;5BiugHwNd9`~7ZFEjM65qrLW>k-hzw$yo2gnQp7&vR=BD2w;>B z^A6vVdlq*{r^6CzTIx6g<;O5wYYsi)19&YAVBMX0g9e%ihGPdB$B$0aKHU(?y53>$ z?;VP($_7fOHiuR(c@8&Vqki;IPk{PXorPI#JTZ0&Q(U@PwPfP8tfbs@*vWdtEj+ym zvi8y9W5{R0pM3T{GqzK2kV5b{y!<#@c@9e7b965Yxm@P%{xYtu)>LuFty0=~Q0 zD~Liw84lDE-x9F(?QnW6+TmJ>vLyN%3#T@lI=@u2>z%EaAh(6W{bHUBP>L#L z#j|H#O4xie#SSf- zjz?*7x}?8Zj`f=o1A`l=Q84%;mCNp`uLc2w9uX{-IA}0y-ma)xVhKqmun@ggRR*SYOla>Hw4C-nP zme@uwjt`MfZ$lF5vZT9=wZDr#ileF)&3$TWpo4Yd#FBr?1zm2|V6uzrdTrOBKVjS% z4dI>cAKK5#xjQh_#{JGoU(=_~l2Z;mw8SLFXhJ~~oX&Ox6R+q{X&v>-tI2^^Nm{H! ze-~<)%f1AaRaKJBl8eRs^IG~%u!#6_Jr)bC>y1lsJS-q(WV-QD6hu<0V|*(WG^PLS z>|}HI1=(+E6*T43|(%MO98s+M+$+lvpc8#WAbC%?tDiE|JwNQs@G3@r$INSgKm9f+h) z*aBxYjL@9P!8_nZpl59ZTBe7aQ5AKYyj34cS~iB~K}!H=46MS@&pgC-ME+F(sr{$|*lIitzU!1n6o2p%*x^ody zw-xFUFBVpLTf$x-G?$6t@;-0n8-d5)*-Uq39f+*)V>aZ(#ibTP`q69Btw!4uL@=GpYXC4RL+$TTL(BGZr<3(w`hf}qjhL^T=e`EcnEgbHe z6IF1aMx$~I#S4lWaA+aDryVqGtab_$n%Q5FC2i1pv5$3WYHZwj1f`OE81}|}^nVo; zl*d2;QD}fup2B$ahhjBU*j%9Xl*S1a0s+Pm>>f>7@vd&4doF2{R{Ts*n0eRk>NR_o$?4*H5bL&k%S(LG$5`(hhnJ5d1Gjy3ayVzTKty zMTg_EE?S5{66=RdZvsQF>)tJ%y}Tb= zuQ-E)LfTUwamg*)IW&Z{$(*QKo_7pJ?e>1K<_4PVcN;T3iCu{C2}(0cn(7)qqFt^L z4h~FviQiYg;ThV{U>P*+XCbWDVPtt+eNRnIr9VjJWQ!|G+cO|^8&R&;=2-l^Yiy4o zAUz*ezCoB>q@sP?y^pk`1jMgF@ z{1e`02YvVWcj;gzv>K#KU+kcj8+WO}sI%CvNpwUym-M_ZB>X&38q zTwPJ5PID3_kG{;(%W2rA0RKh=JI<-+Q*GA?f2WqL<{0tCKBF%Z_6ft@hX5o9u!msx z@O);;^ydgc4RH?B;iy#@$MunUaijhYEEwdAclks~x!NabQlW%+_|D<(Ptq_VV-Aia zQoK&^#|;<4P1kei=Y1tjcW*7Xb1S8MN7;s?c*X7h<4Eq$v?R?i037PlL~8J7=RK8` zSeMD#2N$ec8|6rTrt=OC*K=ch;$4MyKdX4f=SYuUX^Pa3tkDLOF}|{ zPX|E~&JR_1!vVAHZ@NFYaxo+x9$3Go6_YjGRSQa@SViKJGV|XX3~(8SI+% z6;0Av!3@VHt3<}=WSaK8pN&wCw=oi4nprC_&UX$f9&|7?4t2O}fm5Z?U^Fqyk29^QW$yH_fCmcoqVX&7RAKMO7AdB*{pLw79M3ibRK4O<4>OPDs#`Sl3=A9 z?si?z8xD)~y{YsX?fn!FB>s8SZG4Pulx_H}yX{4}3?_oPOa1y>vvW^%-R0E%`DY!+ zr^POA;%HNuKZRbkUrw0(;xA3h8+_U>%VqG`{*oz#PpgXdG5WmT>qW?|KISXc^~WPK z=Ucoe{Odcbr~9BLXPjJ`=7f|k;4l9_{JPRGUAT&n%Y_gJKPa#iK+fXx`iDt@_ z4tXY&a*K0k)2aG+0hGPN?um_WhZuyc^z;K)P>J^WbXvcd3=rCmUqVC-M}+l>8M(pj zzpTf!$8?{B1~`CugA=vYrEZxc`hKz1A+ad%;ez)X#Nlck_4ayA_{t}&Xo#iwk+;j2 zxFz2s>Yzc$DB0%ig8WX$A$|>OL4hx5PmVZk0?;Mew{hCOuM}+W*L*o7eOhWOd-}Mm^cbSIkfj>y(*_Hz7kZt#PLjQP@?&+f%$;Ue z36C>);ZfX-63+7YhJr|-PwNEcC?p9HzW3=o?&!h~ugS)I@Flg(DDHnfZ8>rrbLF8*7E%LiKSZ!Atu&W{sG z?7J*Y)%|`_?ZIAer~J#+N&b@o813OUTes75%0sca>YP?cRX68{cvt8lllKW8l0T(J zO5F|1(Mg2<(B|jW9#Xy_Lm6WMGpZ$G|2!byBe4+Tw}=@XW_KmPWpBZG->NrWRM+yb|=ljCyVlAv;l1vV;1@rlScR?%ree>OSH7p=XWyw|@UF?~B<%F^!28l>{m zOG~$zYB!{6e18D=f-)9H^pIY50=c#nSC;fGW&~m0PX3jB{p|Q8FfWHpq?cuBJd1nl z6q94k?r7jwplzesm#Ro=m$RjmmYwltk6R#x9_)|ovoh=2|IUgTFB5{v4ZMO`qOq7N zza#(SN5=IFXO@kF+gY>d^6Md5X0rZPC3W-pMUZlD9FgXwxor*Bc5? z5f5n;&fZ~shq?ZlGvF#iXZ(p=-IO$IRAY@rcVGiy?3D7>KQ??C_feU|LJDucV7yXL z3lO)&iwC95Ce%&+mv*@2jv3%|WjG>k{#wl4thSf9py^P$G`P35@%{n%=>k#J`G&vt zQRdUo0Dfj(QB}ITe{8$J%)oWJiBA7ugx7@=^vFQaj)5Z=Dgui!CyZJDY&ir+WkC6W{?9WxCH-gI(XpGrJlTrDhv@fTsIDr` zXPpLb?YCJswX>62367E`+)X&G{=8Dyl{8AKL%D=s5nDgO$~Ojc3Tk|dknh7fQws1{ zl!`M-DP!t6VY4A)zOdhKI4k<7gV{q zRTyp(IV34C|K;$yf5CtZ2<)33#Y*}+~zyp+|teY(9D-o8#nqC)D_GAS2U zOZfmVN#)#w>JUW*$)+Irn#Dw8W^A@}jb>_U8u(?imc{Bn9x)P8)!r%0btRTu$pb z+%c|4Ta_8bIS=bUtoJPDrL6a=XUMY3=o%Xb7bnk*Yv+Yrn#9edmc1^}n9dLmS@+7t zAvc$%cmCk4M@OH^+F2qL?(b#A561MeKTELE> zr}vtfxcUY)xER56o7dS{Y3ERoju$b;>%mVrHB@04p1=S+6T-_IglG+|0ZjM}VUL({ z%Rnqh8*5fRy?rQ$$%3$s>v9<$N7jhKvbEkqKB zwIUV>Joid36trLVX1XA1XfW2usk&ryH}!lULGJZJDz)wLd#HjD>8+FtZD__GisH7i zI|;7l4>&PYfik&p7#Xpz(630K78SRl&hEZqMO0GzF6vH7U|`b3AAwX;DNhytoAOHm ziiW6T)RjG?r@J;oaCr*{xGeF+_&k3Y*v2NsgMyL}+}}W|R_h8sMugL0mwS8jcrEp~ zQBT4i2JP%>m3e@zAEhflNu|zPPPr~p@FKOVDlbgAX9z2y0UFZ@-}co`-_t>w)t5uS zdb=~kl)wS1C*fKVYGvA}rcd~-**0P`3X3Jq;K=BO7UsJHDrv$@9@fjU3j;QN4z4P| zy&pa{u)_nC&gMkCQ))vaG>K0LX;mcmGQwu;<>p4Ggq2iMj$@Z3sk#D^)~3w1r`e#4 z;1@VZs$h0a4HBNm9TKkdHt=NoZp-eK(k$FoPBp#oY z)*ce_^Be~fDSZI997H6dO_qfB?lX==e`!2U@yG{WKs+J?BcqH`kvl(|!5lTI8wzny`IOkct6u>|Dv>` zz$uuJ{n>(C^2V$k`}4_V`^F`;B#I*^z#<4kub2WCNpN4FV1)65OHU@X6A6V(ICOth z4qx!3bw++^+7}rby!rlR+0vi{)W4~J!L*CofGt zkx5*?$Hh9kfRKAy3--?A_p%uFlKMo*Tokz+4EVLDxd5!Uj_&DQb_ZGsjdI@!ZT4L5qu;jY^c z{c#~6IZ4t@aH3tJ_3-Ti8?KbI{myYzu${r08Ly$ZLJHnn;}pi{GKglVb%mY~!MGgR zU^vwl5pcZjMT1WGyWkOmN%@L-BXVAqGm1n;2qn+`B-N z?jjTD`x1aQ0&75QWoOg-G(UpPpvMr7ll8=sUKIBt>29KfmFa}8Pf!J~C&as;%T(`>>Y_+G@RGm3`YTNHpietzn_Lg~} zcASq$#iKl-iwC9(_B{E&8UkIi#Apm-bJ)|*-5hhUzQee#KB24~vM}NXvg>iaO}qK} zU_1h5Z*7kH>Gid*2f+O;i=*q#W-`Eq$6XYV=$d}~!+w$$0T^AconX!{Q~_rxr0OiW)*+|bZ5fGs8B8G-Q` zNd3C!px~mbZw^d3gpbDH5JeG$DZizf$Fk+df-ckZ`viBM;&Ga+D<9^X{8_n$AQ3a+ zPC933Twbw$+t&IYteLh;>wR|B7ON$G3hsQ)!XG zGU>4d_-<5^WHA{0;h}cxI!CkNS^MZDDz*x1>iI)ySO54G5dssKf>uJdXA~`d_%$zl1URywABKb{hKO%kIuV? zL(Z+ghr|V_N*Zzt;E<0o;(0ZgkssfZx2o*-G%B<=*#()&$}D-km4t2K6{ur7@7BgY zemdf`g{v6`s5eY)AVb_mi42;)8fWv0l?)Cvq_ldIs$oK`T zeeQcoz=?K;>QmMAk;-@xM=C|Y#3XMiYH7mGG?5ED#&&>o3uY_%j(xy_OUF=y#n6w` z2dZOX;8S-P=iDlJ5>0f8w`6fX%Zk}#u#ZAVSYJ-FG(r{;8kdJ7m*C_dR(RPzZ6HYU zf2exPu(+CFTR0&k5C|4Xa0u@1Zb1h3;O_1)Xz<|f?(XjHgS*Y3L-61Z-@NCZ`#sP7 zH$P@~*WT4qy=v9!sEKaA7575HB3Wa7pXZi}04;IW^aV9)UFvNOU6=H>1J}I@#pM;B zD6*{OKZ2zj#3>O{(B;hs+v=F39d#i@0>O-EbbG#^2)CUnn<~!njrzV1rVk9T68Q~x zh)*W4=N?8Y|2>3t-gQTG*8ODXeK|%|TBYW@h4`?w^Yce;5#r#`&~}_8(KaX@=Z>Le zqd$$?vNmMA)igGhZLzKET&IYFnT4Ib7bkf>qq2vIve2=BLjetY)!}lQrH*hr8#8|H zV&pdP`7!&2%JET$RESt0T-??K*bak$9_|)}><>VKd?n}=8h;O_Og&14-lQcQnmN^5 zO%Dl@JJ#`!eb>ig+C6XV7I|7F3;3P2&A)Q^G6JExkd*-LW(Xn1RL{ z>vaE~Ho?0MXD38{0lsEtQBl!sDEyT)Eru#MGmtw1yyoU+8ze~q zGNdER$L|jViIJka*_fUC#5TC2^xnPRKKs-%a}AK)K?XCjxP350$n1U!U!!n)(^otH zYQ2jNc5pteP1o<-;rXf1io073369df-L=vADj`upS>ldO%Ij0-_C?&-l``F`ru2nx zb7{0}FYRtDNc6saeL#nN6zB4T=+R{tm2$0-8zM;dQ@63`(!OLg!8R>Dc1pE9cv;t- zFs1)6)beDd?jE+baDUKmbE5c)$p`KX<$pixFD#6V(dw`bH)@rMb600PBFxm*h;nn% zFx|hlrp3W#RzkcZk6V5VCj91)m{P}FJ z|Hg7RUyNMCM#d3eSjNufev;So{M_~2aS~Gy$nbi<|DhXO-W7(Z|4aFe0TQrXe?;4# z>yX7?&)JNwg!K8MvM~o$$&j<@taGd|CW7TJ!vNs>S8~c>_}&RM@-dvFBVz6ZB$YtU z4bGAZ$5G*@qJNPv&!S1h5N#T(Ano3twm>cm3Jc+}bOLVs0Y%`H9;=wFun3qMhs5tM z0%P_WdY*ta${gFv&EnCZBWhESWE-!&kat0Hg)z6_CtOIJjHZ?+qqoln`rqk#A-9Qf zsc&PKnYUd9WPxq#8Vc~r`X+nHW2i?X>k~~SR#t5iOd@IYhJcyt>D0}&-e6)=Od3mQ zmXczyn)X+R_2=xgp!&X<{nzkutJ?iu@lNjp9E~qZ5lWhxV`62>-uvC-#D33xMHe^6 zeDR+)Jddj~!&Fw(U}f~}k-bGSDSPjKjV3uA&K1Fsf^-g&Hxd(}uS=_K}3uV6Nrz za@sa5`D&KNU-DnM0XzQwA0Y0_P*?QEV+1&%*L$**W;8-xcp)JnU?O{XSZ>&yMnWLS z_zhMB$(Ly4Qys=5Why(Kr>7K;np5XD&kYEvsm*t!_56_=b~^p_DqE0KgPi2>eU86Q zd#rM=PA6XNefp2<-8q3+yKm((>VJ2Kqjt-kc}rR+{azoa{>0784E@0%3&Qpnl?s8znr~%iSIu%6C2KRYq#RS;uTtx%T$7hFOj(uhF9$l+ z{FXl!y4 z#biN3uxgJ^{)_i~u^j*E=hL^iAkuJQVQmbJE>DivhiN~f)3v5t^OuK%90V4-@Tecb zMux=UJ9`jAE4vY+oOKz0@~T2Z95#3xyK)I8YN%G09gROul`6Cx%V&btG8bl1l>(F;aproR+ z%IfM*;<)4mjcv{cx67)hch=$4u$s_cvOd04^KQ81KHj>xwcV7&z!di%4r`${(nm|C zdLl~k@$TYsWX%L)y^(byAZaD%EggRV-}I=|>0U7X2A2@ru*BR2Qek2qCYAgiqv@Wn z+xFLwjuR)4ppI$}yd=TJA1(VpuMHo9a62BmGb?50xyOrNGE&iraxe09dUbe!xM z8d!qNPJvbCUc7xAPE!j1yGRy1M(&naW6R3`n$W*U&uRXvFXlUSb?HwS#E7yX!|E26mBPB3 zq?H74pXO8-PJ@2em7yT1wDkA+2|oEOMyjhgfjVj{Q4yy04Xtc)_tNA`ni3Z*=_Y)- zZ?-5lSlQsCo7XPjetwJ5Nf0@y}0|jXhPiOes*eK5E(L&r6X&>op@SZQ>tdWGV}ZMSY_ixQ&E)VWd1z zpDi6mS=q_0V-k8&geT!lh4Da)h(bjI?&6@nS)%sfRxx#xyXLC{v)ge zDL1yVKJ}=)SnQe!J(fgRBt*~9YZc;iM`*sFAoRj+zF|BpMKzEZsV*+q)}C3mOM9h& zxXdE{?zl+aOPkGVLd6gk#HHYschU1ebQH?W5~Cs+6Fj| z@HkaH#)iy>BXM;&0A7)UgEWICy1InaxZ(Az%qU6nvwH3rxeNr-M52*=f`Zu{ymJp? zXaevsot&!d*0w02aHh8}$l3}Run>dJ(q>rofMz}Q$U9r2@{VGt6FGG}Gjg#w@~an1 zpm(;zr4gsjsVpNcskg3xvTK3W5*hFuyoRVIxtj;h0&3hi?qjx)N0*t0+GaNChfsr+pN| z^h(t#gLp!uPT9_kd!6ZTN@|(UKjiw_EpoB%ib@NrgNq4=*_oi2wsy&0P$(_r`^-&!A*P{$GeJS0jqh3&%oyDOyfS0d^}AX8 z#s5V3-{C`o<+DqjVs5gbtY_t@K!4#mvu~ z>pQ*p@tkD6Po>rtqDGz=ub!cgkau1r0E(2CmzOr)1aimtewxpNDhdKaMGoOJZUZP> zr6xKwZfoGRfb>j)h5duPXh7JFxVQy9gNTah$MkaR8D;&@rD2Ii7QR2X&FX?5l~eF= z@cUwi(zsY#eup)EleIZDIQk3kY=&;JeT0PUj-~+w))BjnJ@c1hy*@vC13xkI=I}UE zwvhH57H6pPR%7u}9r6j-p+ug}Z9z$z=@8l}C5Drkn_MJp55+ZjD!8~~O!^DrlOBpH zX+Z?otcuS+eL{Nk*eq*Vh(jpoAO3VFCMSQN>it!vH59c!p5Do?(avl(@w_{k>hq4Ucxj2bxiNr6CdhD*9V29Tm>wL5F(I_E9kB*p z8je?O%x!8*6JN6uW{Y5h=x7H@Kvf{Ul~0GI#@p7`5lDtZ0e@HS5&DyH5!XV3`Z*Qv zvKcN-U|~6vN2br*U&U%$r?ajpp)8h5 zguHh`1<{|A_OnHek++B*e)EPT#E{@ZUoPwqH0hmx)g3VC;|(cT)I5zalxS3+)!9sl zyya8snt>t<9eAaj@B};?GsCPK)I4=X-b+tqi66GHQFpjtn9=)3M1@j0%Q^1C_D9w| z74f`C`@!A{Tof18{r&vBd^pr?42MYEk0q&bwFWL0)_E^BMr$zah0r0!LhC4x53?w7!>xh12!*7W;!QnMU#| zBu!L+?PYzxt|i${PA-Jtk?8teM7;6wtx;0Y>eGGS)O5_pz}khs{OKBq>qwM!N#>@^ zVkN4nEOMd8_hBcg?_?C1qUI>^GgE*09dfnUt`FmKX(p;T{D^M^>`-F=)TIW>l3gwL zye7RdQM2a2B*56Q&wt9u;cWz((arr_I1CY9TRqa;|e| z|C7IXn)dh38q@3I!S@Q#SxfpIl~Wg`nYy#IS={f)z5hium)JhO7m(z8xd&*i7tk@< za*0*Sz>?8c!F0Mi7k};UvN>;mH zFCOUq$+kv(Iq`b4tS=&>>PbsMLE$9hR4(I&IoN97b+eRRZvD~(iw+DPF86I>Px z!Z{rm{0aH&wX7)Wk>*x>NA>wp1uT@2C&CDir?lvxbzl}&L6kAtahZv^y}#H6jw>1M zP~sUeZXPHlB!!)1@x^wya}lI19PsiJL`Pa$8`GG|b~0~&m0tZGa&VpYuiFi^(tF|Q zvd(A-iP1Ho$>UD+4Xu#0#KLl~g<*X?`3PCp{So0Qt67M;6a;fRNX+DS^+7!Kj~2V^$meUP+* zr=>9q$el>eXiPGoElYq!|#dwC|-E9QtsC{wFl&K41uN|-sy*_rMU zXD1JTc}g`*p+t!v$4!uVytOWTy=1c?AVlZ1f4@;6=`g@%>*F$J5zYR|E>5X*a!Pb= zjiXdnK7dB0Dx<+%VKI1aJbu}~t4rXl^Gg1~!PMs1|Ms^&aQ_>DfM?>!G}T=V%m^ZR z`Sz@)e=zuOgDvp(c0D!E=xu^2Ei& z#M<^|i~Ldj@_axrXZCMy5}FkLl=Ys@7RdDx)Gtn^M0Ryex*UWj_kQ4UawdgBsA<|_ z@-%^z`ECxHsLj9cf{jP|*xX!*Rgb_`uq7?lXNUVFt;ln$KErT~9-5@NRH->{3Q2DU zNXf~5rRwTbj{T;b;GR61#M7Plm~XE0og})@c1=3BZT{8wz&x`#$rFi5N85=ArV;d? zpc0Lo44p+8HFr$=8m-45f8KXbj;T%|h{t=qGkL@dwMp$ZEyac29}g62D_+m6ufBKO z!JU|Y3};0Q#mD|c;VkLeyrt}f9BV(ohQk9g3V=fOuVhwjD>U8u-W`_T)Vso*<9bEy z8B^Kfv#e+BSZeQPMI#m+&I|mf--_7RQmKgaLT)?X&4HUchSZfi_dTqxu5Ke<2m9sK z^eV|mnZV6x!=zLKk1Fk(faZcq9E<&B_m8*RY#BZ_9j~uv{%i(@WGH9>*@ubXMd&cC z$>2-SR+>KRj_NsUu~HKdU&Z~Uzy6OL5$-!_(W!d4+jAun-6c0`F>v|uUZ1$5u zbNtI}K2bn0A7SBl>eV`9X&wr16XbCT>H+;dw`#51 zTKx*O&QU@Bd5-#OLtS==?29S6RX#YNQ`NVf0wt&qZ5_HTb3je#V`NCXVO5g;Zo(Dp zJR7j0m?AQ(@V2)n3OzlIQvQyVkovuC4htK5ATW54JWN#|NpovDgA1)smbKbcL<%uN zE`!sb97objsm5uufYF%s4r%IZ#F<3d`x}L77q~lpGxpYWGCYhJ{@Q12O zck-@}AysKx7>NQkZ;)N!8xq3f#R#!8nYbt5n8`s#!AI%=Ph8RKdvwyDbV2@3v~cP&Gxasm;QU+OXVte~s$;X9}aPwY9Z`oF-C4Q0XHB zYZUAG=?E+Cu3JE$tvxM)u9o`#q$$_>akrtyiIXbMXh4`6nzt|JlN2+a8LX zGkJ=b%Wg6&Ba0+}gG)1Q`1Td&165V9Sdfu_`c$?+1Ol;lE#z}1uPf5tog65Ge(uRw z=f#cMA8Bt#e2(*DAxTUaww{MS+eP-58QugLrqb{!$mk&IkYxr8o;na51VRvT@G=Uh zeXt2$u;b%IAW5Mf?py8UB&gKZ@=u$G4{E9WT6}@ZqtLvw>CPS6YT7&ZUp6%zLXT2i zw>5q*5hZKn-w1-g7ZLNu!rbz^aTugF-4PIOZ>%TwUK9wJXqYxLbNK%3E0 z37mD`{E+a5i*Sf+HlA97d4<+uxUH7pW;3$dsQOdzmRzQK&ONaPoL{QM|Dj$xH?Ud4 z;#~Vy7q`)>J|-v#zKwzh_lQBaJyAOzwwq`lnxw6VGJ}nS9?Nx7kq@;Ey=i!}Ncixq z>Q|Oxt#pUk&1|!ERipj`*CuZ2kUo&n!g4~2Y3^FiqP%r@-0RfRVdIr5!dxht($-q9wHk0tGDjmLR!rLi zc>RWvho#QY|pdH=Lm$B_4W)sC_BEd-i}4{!!&|D_KCrC6LzZ_jo>XX&Gan zIY?#vtR1G{v3>=1rNy_Ka&xFZ))rU_))IL8kMe)J^j#KrJ5QP1Bu{*-sNC5?DO^t+ z_H#=vM`o&8$T3V@Izpopp3zX(c>I`+aXg(*0XY7JiplqlP`1+60295mvbw397)kJI zoUZ0KyKrOC)rRx*#rYmXezcK+NildqU2|j_=s}CF18u}xtt-k=UR01Es?451S=I1qh6v>kX3hi-CfS) z7Z#H*v-!~BW^j=h?|S}(G)4}wsJ|`+cW#m&W}ko ziExQjcc3d7YWDO1JjS%ncCf9LoniN;Wvi(hV&s=^cciC^4(RzCVd}~oF`qT@+)|Lt7+4g(<8oL3#S@qo`9|;|F!pkUGP%C~^Q~v@{*OSV zdh!whJJxQm+f{QO%w<*bpP0_rSQOPES@>5&*yYZ_Z)nHmmj)(Kcon+Ewl&KjAeC8i zL1jB`A1QfxKbn}6`sYZLbr!*XxoytzN~t+6z&3eQLJ=LyzbJgJ0B>0U92Gz(1v!{| za=ih0HqtR;b@lL4m4buI7`n5Mg%z|=<@cBULy3($xh>`{Wrb7tfG|Mytmn-)3U3?5 zn070qT(wyjwhJeH*%B&f%OjYSb3LKZchx4qGX#$?ey#CRL7g;tH>=T-Q zJPTe5IEw$-+~gLOFZW4Dfee%p&;b9~+Pfqz08~JT3?IZ}Z)tQ&dbms@`G6E!UT*1v z#^CvPhJ-O}LNua$B3DA~>UhH*-1j17I3_N&!}-hjab}ABk2CYPLfjJ{@3{L3-c)9} z7!Db}@>2>jvJY4pSvXuk55<0TUMenTX(I9@BbzhOrFTt8mtq!OCwa)Q8NJ2?5%1Bo($spJI*AGPX9dGDjPsUMwS56Ho~km&fg; zre^`VcRpWEWLkOw0Zh|@{&_Sq%@}?CzQz4Z6rzhWe}BG(fE1&mi`(H+HBjkKYVzNe z>RvL^*9^2JD#u0soc(5WGerRkZ^b zD@jS%e#ulCsXU(Ue4y>G&KXf_MtV;|TSoAn4O(t7mg>=eM7+&w2N&5ypHCPJ_IWyO zX$z7g2^)(JDzuf(7qv@OW;nI2DrMwF!KZow=&>&}m6}UfhZNs3H>vXr^$QQH@?FV; z=*57x$N`A=2%Q&DQNOc!mTRPMa!6+`^~!+-b?Sp;CbLhvEOw6 zb_@Q{U4A@%r!V^T2RdP-WxnzJmrus+QFJTO_y&BAl=755lxZgMX=8;TlXyQpsHxs# z;dJL1q)gss1O=b#%P^LT9LMA}xI_5IXYi|?<6u&3_0*!kOZCkI!DfZm^s4ze1bkQ7 z<=N2hod6o{@#tH4GJPUaGm0-0@oRZ6x zwHA6oI`3(D+WmamRq7uZ9mc$t=5(9mHP+QH3?wx3j{Ao2n~4+UZPUlMz_0tvx49X= z*!}16c=|q*t#<+&lKQb3b*T3gh?xz3C-GOeQo|9)3Y>2Be;jUj&O^MG=!ix2kA8Wa zXy!5l=!qDbG}KO}vJ6Nst8$VxG0$<57&u-dl=1sXkIUPzfI8gUEoaXeNrV}$2lx)s z))4L<0svc&Xqk(=7SgKA32jfkj<_pq*=e9s?AMyN#~MxrUf`@!Uc$~r0r5-eRxKt6 zudS6w!mUehmewBu&PoCGkXp|4S8h^QvfLLG51NUXrf6ZqzLohaejlN;uZakG(o9<{({FL^G6m z%59|dVkVzM8Fky&8L^8cD7*FI0Dli%VJC>#3@hp3s-AdKOON6}{`9(j?5G(|EyJGc zro)|(Hp#z>@0YtUWFe*(EJn4rcgW^+G(PosibgrpGU`7vpTK#(6))E%?aM;<96o~w9z5T$)ZwQzv&Ki>MLLObtN9J*Zk|F zHSm=`d0pSlI;vC)>g0ZUyhr)uaXO~W)=GaUDxsCz1vdQ$D#6UTP>-z;C9Y1FX*G;v5l)_4&M`M{Z3c&`tJ7 zn_`D(Qufbg+kA%)u1qe->ur{8yi-@+ct1Fz{%w@zkZ^X8o-s7;mVKv(rt=-<8>}6h z-M*f;mvimV=A5_ZgC)Jx=J#mb8}|GY)9FF<6vo4zGg^<7(OLX7#BVM3QlS@^`@Aa1 z-kDXxnh7d@xVBQ>TNYh1dOds3|P{e3>@wJuJObx`3ZA^m3?xlBIlpmjTn=J>>B9 z?t*yT3^5L4@b|{3 zavHxp)9F8iH-#-DY%X`-Hc0@h&OIzc8h=POhhg7lyuR|ijr>FRc{$^`gy!SB;L!8E4Sz z%Bi%QTTIE1HUyh#8}R4O6mmR7 zv%QR?E7$9X3X4DqBri{6*L-KO3W6?e5QXl?bbcT}?84sfiHmh%FCi4H(Wv2jaUisQ zr|)qh#tQa$D#?D5E7 zBPU|vZgi5{t2ajw^>wZ{O1~*O%*sw>26S~SFJ8z(w}!~$kO@nOsU!$OIaApz)eX0} zJ4LXBc)V^a={4(r#;yq6wN1lxcy4i-q@KV&aAAjfHb{!x*UM;vij%Eb(}J9?B3?((g@t;2)HyWOcbEnE@LW=it2i>io7LYQ1?Z!nuMI!S8C6j5G!7GvDo5 z)vNbo(I8vd0i#Zva&$Jg=H~0A>+xRF1F}iqxgXsmBg^&?6H^zDQR+%-kEg7~dfo@g z=#^KHZnsYM!z@~qWo1*RIg$gn&zed2;#Mv~7N7o^4s@Na4gz9u-gxpa(}bAco~$N2 zzOC8>jmF=uPWvvgp0(~DPviZOL1DLDRby051c*Q2)>#?W;K^I?1y5?@Lr=SkNtv4- zws%eE%8OX-xsEY0#a7#p4j0q~u3(2Dy$b2K*%)8)fhd=|P@(5O-bSC7WBrz|=+UC6 z+uV&4a>Wb-I4#p2dhPg&-ssoahI*(`xNccj&5z#zch1D#3q;KBf5Xz4ezBby4a^8# z`QJ^9l*m;j+vKoLDND7i&eSE8?DehNB`M$w1*$VtEUjrJjNelEdFO-8dS2&qV9#Yp zZvJ?CIu~LpkfYW4dzw_SC*=1QN>?51XpGld{ENvFQ}G)!G?}Lw{7rYZB1DMWbZ2-~ zcn5&GOT=at=_>U!rr`UvLzE9ChBJZfvJiL-R(2cr3V~Jf?l{@aLv4#XU3v~SQDiR# zz5AuWLt3$elV6B!?7}KPv}$dLLBmt$K%--y-*bM~b1}Zec!B<-`O~Xu0r+(!#=CXO?9Ce>;HMUPd$}|1Yn65>dDf%v zsgP|n0QP;`kqI~wOseLR*I|=;k3oK!`=`w`I_)^V<817{*}nUsIH@^@*$i2hCDnaTJmg3qF^>}E2R_$--tPc5 z=n7ZyQ$qj(Ep=m3v5bVGsDJe^>b6pCaLF8u#%(X~y97_o#b@wC*Be92;$720jyr3Z zB>}I~PS6$SDczB6X{jcgaRrf{&zbFT_Ie=z^Ejy+yrS2ThhW!H^mxfP5|souP)JKl zXDTDG7V#o6;kZ`#6og95$M~Y0nvYo%{mZ9}#kg<|0phNZ8@b-*zHGQW;f2e3J~uaa zgk(UDnvX=(d>Z3(Vl3bAXoYS8E{-99)XCR5`2SAooYq@HZ*Lu3r13ACjLD==SSsgq z=b(|4Pn5osAMZT=fIR%=3hJ+w5{Tz^o_|Qk<={UwRF?OlygIOsI+-j z9+goJ;j{nq_WJDpIzaSx{OipW_bRQP^~u$7BAMf4x^yN(?^0e!+l^-rWJz~(qXYDO zaw>5qqLFVcDI&jG=K^=6CTZ;g`M7#_3gG-odM z>3i(n(zk8mR}oIzHIv1C?oyiF?yp_YDzCIXGH^veO{dDU5RJu}GVO$n+@QuI#JHFY zB?!11;aq>6*=RLOKmWSF_aGUag4fiRj&qdZ-8rFT_&WXe9HWW{sN+-;N>j{kx0uGS znOGdgWt76>@o=~~^?fZ7LI&|B`9AEaTvo`8O!+)jnVd2|i%}M*ayx{6uhCP^ELnxheqGEeGbyrq%+^lEkKJFV+6ML!oE9E&)cvIB zqiH(Dq~sfp@La&?WrhVbxmgb*YP)ux}#?kz2o`k8_58m$F%hy{SEjBao$*)9wDr_=q7&QzA zrW8{!t(MF{+!5^vUQsQ~20u2jxIZ>~G)3K4Ui< z7hdgCdXI%6Ls|^7U5Hp!FBt(bDcW~;gt8AK`VZzn2*g)iQNUQ`^>2^wOL)fXyuRO0 z%19hTp|^t=A5~xT`Z|pCj|n-~%fwZVf{r_bc4EsYf9(lJ#!)1Kyf$xH+#}61W))>$ z7fP%fBM$gpN@IMl_nF2BbM6ykanI^%ycg}bl^beaCQ5`fAw_xKQ#x!1AfNLm;>rfJ zkHcR?tma`{cI{$?9J>+KgRnR?Z&dXcZ>JRZ)N_%A`Lqp(qO8{@lFjj zCi{CGFNu3|IwvGV;^Dend~2&Up#V!`JV=D6aF!ngQ-U8QRD7y9 zXNR95f{YB4l%E3P-k^{k-2s}&+DgBN1yhOe1Z`VVev}%=P*1m0+M3tpn#iS+@w!HU zbn6Fv^glnD6kfKx0+0xuaJXJx2K>Aw&$78^eX~7n6DYSsBn%(UjDP|E0gpPy))_!TVy5&@^x{2C#T`1oo>YslF~sYMy#p>~zs{PqVqZ*cLX(-2 zqEqHVLgxGvGvZ54G6CGX$+1C%mfV{h%wS*2W**FdKEB&~+3EpDl*4Q?)WMC0Pl-S; zE^Rq&x40|wF4z9cYWG>I&oNgGR9!b{t;#9Tfm8(?sIKb5LTGZr@*cqW>dc@#j0PCd zOM=O`(5;ZvkkrCpZS5%hyUiSh8W<{Us3cj&?YEXHPupe9p2x7Cab)!EAli$!T{!iw zjBTHCHAot4XNC&htdn!*Dmmg|#Gn@Pk(RevF9)q}sTnOC7Fz5}p|CiAHnmX*1U7uq zK$Zsoh)qdh3Z9fbnyydJivc%gSE}1o-U00$ktA$=p`F*3)u8oBCvu|htnUtvACiup zqtg}h+-P03I|aSpeEQ=e2Js9STsRGFVNLzM*7ZFLVrOX26ragRPFR%oHHrGyY{pe_@ef5LY4%QXxjLzNv%}maDm#-OUgJaMM~ZXwADS`` zJoXgQ=bqSE$(P7qt~k|JWW7Vovyg&-ISduC&`CIqOMwrRksV%qo zvlq_-@@mg;Gwyi%oEN~3q9^x(VzG^@;5rMKBcNZV+%nO|>s7r$KA{Lb{mS^OBx|i(E?n*tD~0$w zcn##r&lL9P)D}y_>Y&TwCX<%A!rU~a4CA}o5SR(32XwM!B1!F=vcJ*{!9(IlD+izG zS`IST>cq5kr0))I@dTLK5Np3{VE*THg+7#|PF??1a$+bUS;iggjA;t4E>@Sd-E*>B z)$#eD)4zYzIJepHK$e^6rNjM zT}fOn@q*9P$+f~sQOcYVk|P=z6H_K0R7wid$~=k+5r4n4_UGtZQ@n)p=NBQ=IV4fJ z%>SiiQvmQ4>4fDkhCZs;j@}7~Vja-#3T82JUHqd2M8MpYm}aFjx!!zJ%wkIcvx8Ct zANKk)gXBNjeqUE5et$nVro|w>*0AAs$oH#?InU?;25n4AwXv|Us~iaa(rDv3+_*5F zYiv!*P`Sw@5dHl>CVYB-{70=UJu+m*W^PaljNLgvg9Ei4N1)}16b2UY-f=|6Ke3G~ zWGD82XV}osHHX5(ReoLyftjfr0PD zxjHM8_vLExm!-2YjF^VQfS9i(^@Sb5E+S1>XTP0*OTpnt#`PCIen<6Oo?5Et2LGqy z-ts_>sSZQtSz-OonSVgWX~eCu;=U)wgM6#2az4Uk2M(8=A!KN1K4nIT!Fbns+;5nd z!i9e$?%}d5$=Kn%yFx`L>`Eey4G<<$Zjpwk`SVvh;-1CkG^5|yDNo9J6|km!+8WYP9;5bBRB!^x>Rvv(+rQ9h z4_$Rv%P~G#PpRoz7%pn=m8J25ue4R6s66qP)j-Aur7P+qGEsd)Ng4M?A+gGS&9-xb zGXRrTaGfUHxe>6+wuS>VLo8lJf*s<}P-^~v{jR-(X` zl^-I=pQRGO>-cTIeYu?3^>dTLl@$@rM%fO08b({=fe&t>m`u zyz4TS24B;9R%wg~qH$o2cNTDstdYf_TPSN#%W0=w#%PI*ll|O7TU@Kh${f}RiYPDC+v0|`Q=K}+)oCSJrzSSz6>ohkoizsh%fL+vK_garpzf<}~RXC?=m%fbyiXLHWiT-NL%L7GFO zhES+5FB8`Y@KuQBU;^}{63XbKH}sE(iK(WS`9`%EE%1O@7Gej#@=j+Bof{Uxna?FJ zw)&~Qm9c}?WiSJ!!Ae<{rzup3jc4<}){^xN^o9*KDF>7T8=mseNv$f5Ny`uyvX)KKS z9LV~d(1ygA=v#qHq#sK5Hrf&-#vydyQpn$sCHiZa%Y90FS-l6Y4PVu(&<1K0n)F?x zmC#zxwX4`*@}{y+T2mF zb#6|#WaFy9uc6_RcIai22uO^$yj!zXK}50r8|W)bNqx{1B-rf_VR1{PQQ;PxcEpnx&i8cbdDM)@1o_RH**_ zJL+@A?!-J+L}2N*uy@YWu<-7`wSY9%yngx{yET;u)C&M}#ZQ&>aC*2biOo_FUwy-_ z--rRY@;!z44;n=3EBSHRBknoU8OuFto@cO^<@795Ld1VfDJsLq2mEF|F9a1vlQF;z z33y7)bK35$+@4xa&od>2zH^@XFKWi}FZ_`U;-g_J+qFRVub|o>59PG8_{T3mqKODQ zmvqIG#*)J)0;w!HUFj_`{<8Y!6KHe{@9A~N-txb&@*pxVgLs^43K7Xazc&Q~(&Y$c zwBXa-PpAoHOJ`m=D(16G^eGYE|Ib-A3Co|H1lAXzq0HD4-QTWdljLc++V;P`aQ|zk z4b~U?e|_0Xxbj1!fEbvW~w9eKj0`- z&XT(-)Y(0>YSXVP9*4fbMGPW1K2{BQpSz%?n10=5gBlLm=qg`gjv?5q|ndOf3}E z30BZBF`h(cy7TiU_Qupx)^}U)4$Rb%!jNEn4$NU{nUNR}{|y7xx`@SfaxL>m6ndq3tAeh zAzruN2?CvmubiwPdX|et75(u);8W)d)|GtQLi=i^~%vi z0$L1!fx;LhCc(s=y86h;aBJD=eW*<9OC zbUHOY3H>vGqWt|9C;l6jhe$JqjjA%lzeje1pll&OFsl_#qjN5jy|FSgZ~3|J%cEvk zJM7j`40rUyg|Y+!ehcO(9xB4e8+Z4(>~EIvsS|7?F=L2q zEwBJ19zzkj*?W?ll%&RHfy2>kl{vB2Vy|zTL&R$Gr_p*@{_^Sy-(vD*8RoF$CcKyv zqFRaU)$=$>)8hm`W$32VbH3Z^?MLJw9yQp&j)o2FL|j3iM;DF)H-d3mTH5l{`7Y0! zco<+Lz20maMJ%f~o&@gcIx4TI+>6@WIQIfVp6(kxZdxzu&#Smh5As`zOh7C5E;?SG zAK^fTagMhp@~{C~NEVv_!VmG-84SaVHeo)dluK7#FG2W%^8;39nDAeHcKxT?2xF#^ z=xBuYct6B1_cNiUuh@cAgimO(-@}{ygr8O}aj%{>dCi+;@3;LPJ+N)HF#e#zg_(nc z42pQ;`wDsf?YN!H!wP7#e26)w&lq*vN4tHV5`j<8UY4s>9bfLZLQN(zoK5~V9tuL_ zGVVUSheq?5Fv5(}5&oeB!vEG%aOS4>dC_XK-L>hcLm@}-R$yC8sRTwz8&77?hRyyXB052 zQKI7qyI69`c%pMUi|?1%X%rhSr!~PyZ0W^P_wAZ>m9eIX2!CkUo`B!0w^D~Yv(TVF z@mnJO^9Ykv29W^!Eg#NkLpL(ZrncF1vLoclaLLy40}5HK*PY#yj(9&|1Rt;h8&FWGmUD%fr8TKR6G4T#JA-@g=`fx9}Q@`mHSbhs)bX1Grz zGuU==2_eC(rskCOnxPV;$k6i^k?_4Idj-pC-@*IK)pVI1M7F71V!wx{6g6UDyUZkH zF$&5(<#*WneX`l{E16N(N-hymUJ7=pL`(d&>@D^-NNbu+d2h$c+}Wq#1Eh#No=!h@DRpIWqfoWKL0I{?%Bz@SNSO zDwpf7vHwve=y(AEx-wArx+OBi1wmKHbrm+@*mnJ4AOy6E#lG6re9KVG4 z^MMG4t7qA6`cr1H^H}T`80C)?LjlGmb}*86)6Y|8o5E?GA_1@4QPzZ#hu0^$Y_p_8g3;(R)_L>M1r+i zJvRnj(t@5B;+tlWbMRk`dMu~Tm*%ituCfqVfttO(T9P)C%Z;ypm)ABkAf-o)ZagFuYi2bzP~cw7q#`J-z_1Vp6LvlNerNe=fp6mn zmEAs!xXGtxgdnQ54RoqZi$B6jI(j5ZQ z(jnapNDG2=H`3CQ(mfzu(%m2fgEUAfh~CY6@BjUD`2deTv(KD;V(+!qFP1pdSQOQE z!7FS&b)74MjhWM~yDvEWoqul+Wxti_oBb>NDbm}Q!Ta~_ed6@bEXOZ(7?wldamwHA zP2|=u>BLw{V@Qf$nvrJl8Epmu4yx082`+C9Ol~>S*9!Qmj42! z?H)66I&w^56t>QQIQA9v{}@$ad_R}MXLTUJ&NmX2`bTlA3c6r?H)dA6dh9L05kgt9 zp@WFq0RV}>p>N(xyjv%mQQs3ei;%w37}Nys!koH+zA;RTY*Fto&jWP{JNW@eVC=hLAG8#zpzTnz)N;-ZB76lRui#RjOf5_uz@K4dl*>s`~n#8ao|c z2H*cY@t9N@5x-Hc@jrDWMpIhgp<&H^gsI?@KoRW}yVL=4GNg+xz#y3UMBLjlR!LOd z58HkjrUBtMYp{ufoexrZ#cOB!Cg+;8&19~G^{bWyvWrjF|-=_Yc{bF{>(m_HWTsm}SY^1r*C3mw5ar zd*&~x|8Qibz4K^@u8m-#^L?}8w@TPYAI=MPAL9it1l+2Cte_sT`0sUAmhq!%N{GSZ zn$PF3i!NPG>%LgBo%YE9>2_5Z`=NAqmGbwIz5w78u@FA$PkSJ?rdi@RtiR4vL_g5C ziudZG{q)EB=P_PfHy+2Ft#H8f`NtZw7mh)$#;M=j^)iqpDWD%jKy>by` zLC)B9%e~D)J%%I2^F(YE#A0U0Oozhd1tYyK(dhUjRa$CjN@dU8ca)4Q3lKu*cX;UI z{KVziwm-IdLXKO9FGpCyqV1UoLb&OZijHIX`0?bOCmP|ZK_)UI;wVaxrL(g}tMBY# zF;dxG_g0tQU7U{Ze=-_eeEhtdHKJX`MC($s?R#@ESmX<@tWoN+Xf!wcVWDDG?`2U@ zSzYI@Q(2~yG&uLE7_lPF8QjcWZip%9q~4Fr`1$N{vhYxjh{sbR@A|LwR`ub9as|7B z7-g(^KD{=EmWstYxX3yI{h~mQJiq?PPmd1bB&hDxVH#k7z6SmL7KT`nI>}7Urrv0k z7VP|+b(!(*ztg5P)Ku4Tw|o(*9y4u<{194P#PmYri<++aJY$M2EX zv4iE7Au{9Nyo{(H5D*y2=D|545KdX8A3|r2m`3q+d0(t(s ze<|XUA-%cklF&HHMV;!fK~nDWjjCZM5~@yhyFB@F=TOy$SCT^%$UeLqNkva~i?j+u-%Y9d+GHuKEi2AI7jvaiz^qa2(%2IvL`Lf;T z-Yr=Jeox|Zm|ycLM29kNCfw{_3$;my!tI8b@(c3tFK?Mq6gO6xj1XPy#}U|Rj*_>S zBSP7}B|ktP4+Gda>#IEKTy^;>)(k^xn+Z-YcXAPti=?UhQjJU@_8T|i);pK#?3@v~ zzSd8`bjbH|TCw`G6U*X3TMwO^+sK>cU#mkUO}`0l@^~~G>PG#2F-IabM-kMtS&Jd% zs?U;^8FP>0v1XvtNK*p`5LO_3gl2~ILB<+TZFskg{{&l!w(Z<9|B+{3fn5IU#<2c_ z7x>hAFdPD3X?SPQD0(D&O3rVIfm(}{!bbF6dI_GpL#zJbBiqgLx2|*J@4pFmdDyv! z4t0(CW3=m@vDI8oZNq4~HC_>1#NFg2`=dp^-cbxUU7G;v{0d^=TruvCJbCPeVfDf<2(8jLd4X!|F zRFde&b?0YCPPtJ3bCo;<;5sg&5sBHQZU;+s1c!veFDGc~51U?FkG#LvdO?miKY?gy z_4^DL4>Z4jA@T;6+Oh7Q9eaytDQ+#c6=NyRGyUo0PS|$l6zxHKvaZskbVE zDerB0_Pfo{h;`3J6XmQfslg9s{YOCS@IB%Q?oQwu6X95PhK!DO%VwazIqIv?xG8wv>+a^$s|bBIYsCZ=j1;Cq6J>7u)yj_oS3K5smKrZysomqL zIyUNZS9c?ox2D&MWBSuKeaH0a7dy1x5p+u@oN0#!<-|q8tu#5J>MmO?ycA#MLgDF=n5C^BqDYy!I2$EF_$Uf? zUPlWEB~b{sX%55|?ds+RTtE;OrhaEZIeYxekl@ofOwV67M(KO4Y(gAQ7UIIr~kC$CVtP-tta$8~y6Vl|C9cZufyQG*E9&($vC5&m zGY0LVRCb5V=H~O5sHfjr=a2!;@uLag^0Yu>0~NzU*i-y4(Z!V~=%{L)I}zScNUV3WVUeHk%f!#`D0N$h?4%=h=9tKC5B;xXH03 z5@ZkO`G$|;+X7a}28jkq4yO1AgSZO*_+-5;Xs_PVuFO$%V+DYW0=oZ~&!`h^2j!9tNpQWhR&6G@3z6 z8umYB(1{qLq~KT_{#YtR1QV^|8&sJ{eeyBZc%S(b{`o~V6&aJWe0ILE>|jet1|8{g zDCA6vNfYT238Y!z{I_no|0sX#ZiYBX+dD=XsbEeR?M%#; zx7x6&0*doPH(IJ2LRUAa=1`5JIh8lqboy!kpOtn|ev-nCRrK2Kg=S{TkXY4@eo`_l z_z@!RMa0x2aB4wJ-3dfBrp)qE1Q3ki3zlPNV$4tEIY(2ZY|m+tL&tcqTIJ$>wf*qm z@2PVoDZgUFItg7j9BVokNV(3Nt)0~fAn3?~r%Oa|L_Z=wWFHS*xh}elz)<9!8X@ympw6|`CSWQvL>JiS1t4n$LllMNCm_xYL3 zZ>mfXNrWO?O-e>)|1m#Um}ZwQ8LIFbU;fdrV7Vc*)3`x91*~H01{pH$?G!jNj<}h0t zcPwe4?|*$%caLX;70&)MNV$k=&&f?Q1ac&J?$~_DjSba=YOv6c& z!w^A#H{Z^x73k6RO~kQtsh<95t?so)i0%wt z%PQ0@Kyz$OHD4lxg-{3%$}e?^0`G3Z7N9~5B-tL6H7(FVVasm^_D2L?$w3Hkhd8iyjE<%^0h zs*t0bTCa%IK{a-_RA;#?RLaGMLeGFS%OWHcv57sEVDY9mOUN}(*Y<8V6r&+i@_koR zOGHWi4Qfa2O1~yZB`r#1tHn=-`CVZXBUT=OGP@G6_>W&MXvx4S;z2ffiff&B>VpA4*uIL<{ZtEnW5v`s;9}B<9KZo^duL36i2&01hX{1l6ZE z2mx%KE#cWhc`PdLtN_QA4-ELYC_d1X&`2EieF=-LK;_!NSbR)e-R27;CZg<*a><-I zm1mxsqqNAiRsjTUL?qE-7wBcuA?VAgfffTw3fA?o1B?R?YHs~RaF2}%y00OqtmU(y zgbkkQS^f`k0@&2HV#TgCe>BgYDVhX+<7x>-e5YM}u50!cxHXx4i#WKGh@G_Tfh}8K zpw7oSZagLMx&wY5jRzNHdJ;cvidR%-2)Zv8Ew+}D;OS%^bV~Yzi2_59H?WR-*4jLr z?F@}&4-1=Z474*`inhxTTSV$x1s*rprUpBXi(i@qbFiPyY9C4m9qAT3GrcVj$^tETgGDwsSsn0P<1OU zxo`JliuhgHrJlujn$LQP4%v zCvkr-JKY2rRa|p1B+~N_!=D4-ve;a)(`xY{%5Az(zTUhC#VF~i$-i@*&kl4V)DOp6 z{9>|@I$dofbV_+uTcXeFIyn9ef}k0yQlXv5-cvj88|rFsTIQQvT|g%Z&L`*|Q-F}x zWQ4&U_dRx?zND!ppApK&&v|*sz~D9rg z$K*aa?(&Te^P_xj+akI$s;F9wUm4cI(Vo?GUK<_}nhLlN`x*2SxRDDte{1!91K(906O6YLyGg8F zj)Z~Y*mXl0Gp=&4mP}D_ddMGS%~COVxexCsO;wGnFws*}m_DE+nr^b+`jSFwFRVP? zf>*>odf=(s+{>a6q=C5T=;*@P0&G8-bZ*7x>gdmzPDM{z84s7vu-g;)KX?5`WPk7# zJh0ZWWcO`|RvHabVN`dh6|VjZ7R}XSvi|tNx9`bVTbpW->F{3<;t1fv6+G1oE5Mql zOVNVo7+$O^>U|PxrIo(Y7sqvBLw6LbKc@1RF6fpT@2v_J2LQ$7=+p!Gh4(xr2XN<Q9D%eX^ZW#`{B5Bk!DIm&8c% z3%&i-ua9z9_(TJpoSDLa&z;%9>swQTNM;mbgtUhu8wH0p)7j02KR2Ica6#gR=R?Iw zT8NM4rMY6p9ldOLzrumd<2REq3N&Tx+JH(O2<2bR&+55OlnT)qiNQ)>-xo!B^ypD~ za7rSojj|wrZ*4D2BQkgAWwIKNtT+bqKYU@Yqm22rUKm_1%6tPU5Ezdw!PY1jc20jD zt~6Dyy}K9}>_}PAyCHLQ7AHr0jD^LOVr8P;#^aRD%Dc|vLjAcgkBupV;^)n?IS;8j zLJYhM9VWs)7zhK{%X&amdT@Dr(N$b52ciyEe%lFRuj+@rnII@Qr8*Wn#DXyPZh*`z z6>PzS70|w;m(SLyY^53_g)0W)z)_F`=gKtoZsWC&Y}QC)XU$YeEC*wgDEMt4`)B|= zYGn-ir<$>&v_{O>lcYZK9?h+H;1u~nd5sM~N~fCcd5Y7H0xnp6YVVcl_4V{@Iz88O zYWCPrpt3>wXKxV&!0OJ2k4bU+WU!Ur|gb$82u+}`CCiwU!AbCSGPp}w$Ts149QrAqsf z+ydFk4=JOnX{2Q--*@mMFZ9&B|wk%4;l#;-NGjj=dQ&g&5%&!1qfK$NHz8Z=Nu;cQEe_ z;~UH3V#v;8l!1YPdF-5<(6j!S@Hio-Qki+v64}vDr=(nlR?lhdbhg#cv0T0(K~YYBC)M%m-8rFmm*gB2 z+gmXbFD6E(e*a-4pRWnok__piT!F2`I|>Z%nY6!EUKO+vbN~Dmh#FJ8j#o;=Uw^%% zMRwpbzs(+Dc4M2u8L^=o~2?OZ}iV2TqOgrx6V4r-H# zCy|>@UzZ7xfozs6tPNu261EFZ4)S_?Y1w>iV^j$m*G^`eeA*kMOsNrI>3g&8eVlL# zvXtsm;`=qaZkY&ZgDmr2O)^71WKIt0s->z@IM$z*cpRG)~Z zx!u{W0Dn$jZv9%iD|pU(JUEL76J6pQ3+gA6=U`n?{<|h24bmMwM-^2;?6y zlQoTh=2~|(VX+22mySuqB8QG4Nc@ZW&w0Z8s)lfPs}~hCBL-;0wc(98YM&%bD7^di zP`WULv02u6MLtt6Xf2XYU{6ZiRaF;cJBA68-&NLhIg}WQy;)}}P#Tz+yxA#aoycj` zml0dCOKMXoag)?sY+k49Znp{`r1hFr6EYaj%|3()?*RkD&O~9%uc@`$X(N0QQ86Hs%3T#Qdpxo)yJ{`EvWxTpzgMBs&4bzlj z*^i}yc}yU3+lR~cRFp6XX-x|?lclup_UHXcZ>kI$oJNO?T-unm-~&)x(fR%;qT|62 zyeV19M?L{}*G(+AFkj7c$8@n8z0l@ae3ZEpKqToBkF!PlORq957u3tG^S+NM3oCVY zEE|(n&?&?7g+ZrZQ^2P=Br@mnK8b`?66TEiHHXma|Yr9EEfk@F?oh z6Jm4-Y9CdJ4tfIFN<`v(St??YtS|R&rztc{4#q2)ODqC#6dpiFYEpDy-XoVrDBbv&9Yu|Vr9nq zZw2bT3jrV~RfvaPNcCVsJgoxy#c(M2`c=LIKh-43f4?WM3r1zxaq;GF2TMLFVj%}| z+WDBT^<$)Daz6V@n%coMt>rN2$cjpxO%N!_vu)DhWiVA|(NG@2^D>D&zQR@v_4g;+ zaM|L}U2jTx27ac1fkVk>9=ng?rwPBp$Tb;Px+Om3rpaNIxu(edN#w<RR7?AuNTBormrDpsaecI{GqBDI_hk}X|*`k2Vw0jBft$Q8`Ylobh(Xu+uavs_-)JpfbC9R z!n8`@Nn?S~#l2}3dH1W<)5|@>fW=wvyK$oi4-d5)W}DpcIA=dgn_wJ`=)#NeLO$<%lL1P><1{AOeB$CUAel3;HN-w#xui0GOX5;9u zM44O|lz)wP(C-O-7{r<-$_{`aj`0OOA_{G^n4V(eAZPy)p3Dw$Ev*@aY2%0VX!hcL zX4{T|9~r3p^&$n=Z<9uOFphF_+TH5VC)@#Vk18h`cmX(84rx;0d=`Yg0+E&uTA~be zrI#Xx8V{Hbx-mGFWZavt@zfvIeBE%dTJFA}E{i$vFjTu2FXeL|!u;~3`NLoA3zj5) zh;bWbK;c-&LWL!LB5^3qQ`!laquQn{$i11)v~W##tM>cI0`I3Ks7}u`UKQ3~L@&L= zc_OjK;`9A`>^-3o`KKghb@mp5Ap3?kc(+c7hu+%4qZJfY`6f&c0t;t+OH26U*)Ivu z#V(1f_e}1JghTNY3K{>PJ28*z&RNOOXn(e;0Ig$&uNNFpHd>%V!h!u!wd)1ZEMWf? zq7{2r%dIusgZE~wY~uV&Sd``C@4@Iqlk+C+PlSg`)c8_*YI!5-aDmOw-=!?w#6W_l z4n$GPXH?5|mJxAl-G@1vPz^cL4m(_CY;aM>~l=e z#aKq8k&h)bPa+ttFIM}diOfifowR&8n6Z#y2;cBTdad%ufYtfzHA*x8+?OT8LK!Cx zVe>UE;E1Qva&Uyv)E7lGkn}VfjgiioDHh2Y%RxlUfcInBC22K9h-Q&J!>RE196Pnd z`l9B#cv6S+W1QcM)5!!h`Pm2GF3QI4_(<(HzoUIv3CC8@)L5;}hn9vw{Vi5iM1MW~ zDpz0f_0O;EZV2X3&-j3LrX;h#b=0!UIx*TfB1O_*~EH- zVuCO)2c&0>ZM}U;WRdNOi9E1Tcr8)De#ytGgG}guI-NyOV0V7r!GDTZso^C#ncVyKQAm-0g+(ed_6T7fbz z5xRGbKDF+^n4w?gBU7n#a!}Gm^u6RhcJ3wy^m0Nv&v|e>JUmhCpkDiv3Bb&&*dw$y zML*47jh^y8qr?{cQ!F8Wknr-;VXs)^WU8-iFds+ZqN)G5-q5!64u-`)Moh``X(;p; z!zW=$7+bOSrKLKh1Cc#nS|(9B5}e_aXfo@J2p(IpH)2jiqXol0+}@6Q`Q0P}=O1>? z*p$rKXeskPRk{<8hlevqpL&4VouSTw-N6*ZV%x%`&Yt1e;~*R}j@ClosSzKW=WdQ= zZX2|fX$gclsV*lrbP<@tm;%W%(4$nQJ!g380hBaYw!v?%(X#H9jYDraq(tk?9re_F z36^-|do~bku41JL$0!rstDxx1#EHrdVPe4NP_F$@Zh12x8FW*&kJ1LN`|x67W&Q}mrFfW_o(b|o&qDEtw8x&t_p90PMEIN$nhy2!rN5?i zn)pZTC9Rfl*)JP^^?I=+7@_uK{X)JhYfnf2v{?QhGE85{}t(I>eDH}mKarGG3)O+cE#ul&S(9y zAs8e1(jnV3yTey0*ji=WhZoLU1#z;}s?_Yc7|sD0dm@`675*!%EwIg0L$j4r|6P?k zF)Xc2A$WK}L)}Z}-Xl6hR%{}VZJsiZ@d8@5w5s8Rr!bb*Q6D{%c|>A84TEulXTP{T zR__y5stW*K3^_$q0`4LsG0_ifrPRjP8XRM8~Pv%Su4gy4%6t(;OU|(g&Nq>uP6@PXt zWO){Mk0)j^xRgax8bxfJ?b`sA;neO3Y`Kuk>Ybzho?%N}c&xK+98v2kiXhwLpSzBu z7f@t!D@6CLST5sr-aUB!vBkPAI%o(UzF$8agvmBG*#+Ctbc+{ZY1>8B;&=d-yy@F*KQgi-wOpALNn6DPMX~dfxVjz%sH*ab z_S6{FNcMQH7M#GX*z$9jPB;!@O-y11V27S?!n!S%+p}=YF3hYz8=m| z6M>3aL9##obmGd84we6L*LSffg=DqdaQp=Y){B47TYM22)^7)Zz~bmxMyz!CH6x|P z&`WIQu>>YkDC5s6OYRu0xQkW`a;x{tY=i?+Ij$O)zu*bq?m#HVxe%yvGr4<5M{sf1 zzmI)vR#72FLN<4pGi1X#Pnze4duort%AeywHN&#dl^!RtA}@%_)TmfAKWkepoPFkj{<|JBGWg2T_wh zM%ZQAO|W#Y-TBU-m&ud9ezQk4S8rpp7woY<28(D(+q`)7vuX+g7_~ zk;1Zkf*-Y!u&6${(5Ip4S;8x_5qrjzp)Ty#fCwd~J6SVG3|25DZOI_2oqwp@+!QK(5x9Xdaw$49>y z>@pDDEmc=?p+kZzY%9QJ2U_1=pRGytuWE8!T$4^VR$HvvNE1;}ETUZOD6o9fPV|~> z%s=?}g#Z%b%joNvrL(A=nn9#ZA=Jj53iX$40?MHw0p}QKGXW7ox)lOF>d)X9zzXKc z5HcMRmMw6W@vKOFhvud(yKU2@yM682HIF!c(j4WOIhWOMo1U7=)}HVDx@3dn z+H|G)VuW}&oyuTJtKe(#s=kMJf14nPIpH&X53uM(PJeDdy8H z-h=^~7MFDg$3MxK>g*H`r#63*8~ePU4VY)M6EnB(<@u*VBZR9*VX|nF6)mMlPdXgt zc7Ol=t$AE}%_)o4Yqb%-lWXzu>Jma9G>M{|wX`G&>Y{?$R-x@5JxqWB`h=QqAL`&l z!1(jUr9ZnkpQ>&99|hOS40J0ppSD&dx8Ftm!!np1uJQq}RXLvOI?toqa+QtXUYh%C zO+-qCEvWCu2HG}7P%z@BUz+IXSTzZUlCTe8Au~LBsGIJuwKc3khiFDy8TkS@d=;%2 z3a8>`X0+%Z9e|{`It;ClhhE~c$6^D9t`>hFHtRPfeWQKqO%V);^Q)05V8ffp!iLbf>J=I;Do9fDDtwo6WBBjJTAJ9@}-3c4Tg3p!7H6vK7k${foCm^wf z8Smmr{K_}~sS!;J#9&22tid;t$#D;*8<1b2!kPs7_&B8(VMmY}1T%5d7tJTH={TqfE-7eI-i5a^V6%Ub^{$@Aez8w$JdH zK|m^~hDdM|lkS5CA=fw#SY1GywffqpX!94aGT}^1OLGStJNd5-D}7Z25Psv>3DKDr zo83`A4spjI$~7x(F`u)19Mqz}?OK-vQyO(YCX-ynnHB}q*_kY*8MH@n(A*Rr$510^ z7VfXQo)ZWM{%OTQWkklhcD7!7ejfGnJ-8vhUhj^m@Z9Eh85Lp^0qOmh53BPF6$qVg z#0U&(xZ3IOok};d+$HSb?zGBetrblMt_u9QS>BZwK%f^W!lrmi)}-lFvxV6DV4y2a znrM)sTk$WNu}_j_N?jjPDsJ25+>(voD$gUHNvW)`&ux{oc8?2fRvr8-R&zmxV`lpn zr8Bo9i&ko#LChBefexkEezsIlvW@R#Yp=Ufv|{I&B$?M9V|5|hwToQ`%W=L!SJkh2 z{qk{eZKjZeKe@2hrtWK#-TB(aTy*?yoqEuW!vKgU9>8<~O?A|ufh|Yt4c-hU?vBWQ zwTuanw|6?}twv*_Sn#`=yU!GZ&et~68kIpf{?gLHs<|(84S}8YSlrdK|8B;-FeW+B zN3kS`{ZwjvQQC=#4G8`#A9<9;CqiVOC}(eq#h1&5V`H8S`mt^jXk@pX;w$c<6Nl3M z?tLiZTD~ZnH9+qNys`TYosh&CKC^ z131Rldmifff+kGG@BjU6zGOWRC|Q%DJ7VI>Ujwys#|s5isrL^^((3i?)nRp`+BP%p zz>?^@qPb*=rXm3<qNMl82BLp5s$PjS*4O z*&SC_*fYfhEJ@9lS*%dN<`44KMCm7SwK$^p_dX0#|}h*qnnjq0A+^PzT%`AeamLqoW#g= z!%Xjf7N&~z{q>HPt;~2d2}{rkCa;!wJcW9mqO!wG^Ua3R#$2jiMHCXrVy%6RNyoy% zGD~jVZSGvZ(mx_iM0I8NbCjdo2NTuKneq|U$kC=nQ_j8!yv2wZN8&zlUWYNGzJX^o z7LXv;0d10C zMaU)=ZecN(o)+2~&@8XwsQ9THq5%lYQoDMaB<3=x6PG1EB#!UAaq7`u>$!{;ZHuRi z8A6%UQ-*0DKdx%1dahvo`HX)@#c>gTPpn{z)c*<0HCOPE2#@7xn+JNdU7?;ZC??OY zgDsZ`v#@HD>F_#ECgIf6*X|ikVsw^xB&Y*w+occB1TnApS824wQWj8r&lH{zD()#3 zpg(wPy^YhmcZjK(3QNgjA;}gjNRK7@+z2YarkTw(m107auMxn5oqCkbVq0muZ1&-| za2wR_s$QeC-)1BvQ!Z?nN-F(1XdTvEXQ>+6n>3MHtf;gSY6J)#rVn$*B5sOngygG# z1>EQ`zrLkDsMF!**RNZ-U)X79W%ho5)J%bC!uz_Hw@f_eb@LL0V$qeq)PpXJ1qxE& z8t#H7S?ORkdlCEPhd5EJRNiu!qAgXPdA_IJM}n>I3iV{PE@E@$+XvSE6i*~KI{|Bj z)RALYKI}n5NJSZDz&!C5G@|JEa!&WT4DXQAR-IYC8xKwA=QXOXGd~xKl{M9Kht#Hf zP04pavervW==lOqe4HhXw5zHsHfv|xJjboB3Y~Ojplq~O{*0YAJBA}Eo z@|3(jq80bE+ZA{HSlOJ84hoj`-P1K6WRaRgFgQGEcR=hGPE1O=vNo|aG~Y9x-4JD$6458%bf61wN z>;>cT#4i)|roX)#*(Z?zlKE9u^Cp8+{O;coPo1d&-a~v83luudLP1IJ9fj5;tv-lc zuCFBnW=xJ612)xj3CF{9BNt^=h>?ElLBPGVRA!50t3#y(y_E4U&>Hm!3JmKH_wQz2 zavNj|qOtg1RLRcpQ{3KcPVlS z6dO4w-S6ta8t+TLP4odtwupn5PP@`!nVAKj5&}lpPRi=( zl$t5j?83v6{=^37Iu!Ni5WhQWNVo9bpBZpTq^`!;*G?lwmfzw7aVNKB!6|WY zEP<4koXlP~ef;ZskE9}+Qe6H$k~C4?Jq!LT;E1rg%?$`lBR*Bq#t+@ysoF_^F9d$; z4{_q)6-e0%OpxLBD?=hO%F;v<8M#rJlS**U|2PBI~0u+af_-QNq z*CasS*bN&gPWN-;N){q)AC&5l*P7HuD~tlskKIJfwF-d-8n}E?1Z8B%|HLd0I!giz zAZ#dLF8SckGT0hKsV*-K!3X~5b989nWsN{;-_ZJR-0;J~xSaoak>kHX^bdp3rmoWe z-$A0K1Rr)bbn#BT{{}&j!65peFD*L%_sccV>cL{-E%;-<>3;`7z#v@Yx1A;bb0*-w z6LG-BZIFIdqx;_=87VLbl7GlW@-PE%g27Js8i-sRKfmh#1_6Q?$bFGaT+9EPl~o9s zy3^FGc5fPe9jk(C8>(ScPk#yWc1q8w}pSOw+&oUsb<**UvmSq0@;1q7^I zTzC*DD*Zqer!msm8R-CqAiyf900??YInck8mE-9v+JG3`{C^svPALcx zu;LR!h>CH;MIZ=n0WkpqZiI+1f?E_~EeNp{<+I@v1XRO!Dq@I5z=bsg6t(&IZP7R- zw2Gi7j8y=tu4!WLq3`W#rSFZ=7vWb`gbHY46j8Fy5Kj*ejGBU;=8MU=9(mV=cLS_7%>jW9ORhFPl%BXK&;O7;#$pkG-Rh_bzasx?MbSIka8*T9J1 zQ^?p3Wvqxa)^n9t0VEVsupNF4b={P$<&3acM?*tJLs1=LR}r+ch=3|a(M}dT6}8br zqxsyNyb)eHs`lW9BEk^ks_6Q82O7*Kx4(#KJ`!)u8GyH7rUE z%+OoJ!&OgEMBh+Z!yW5|({lx!0@cRafyUl0S{`EH7bybccQeoz!(nt0FnxP@6BQ2w zTN@)06MZ>tB`sAvP4xuDpw0+B4~UhQHn_%VdSK=3wfP(sptk%<0uU{AJFF)HrmHUI zB&vaiD?zPQ40P@7Au6t7`nqn8+6s=|vg$Vc#%Lq(IYB!)J9#5G9~$sAl+OmOZ-_!@ zAP^cT0}(lEEdytL0V9YJzoM(7D$3AG%UeuEQ%_ga-Ah=iE%L`Vm%;0C_sfl^mO$jf;N!L0OEbwr(!Ci-xc zfjZJo)m~8#>m~;C09>GGW3B3@tB=%2fO9=9SBwC^AvjZo8LJ9ogw#wl1r>!25gxXB zvT9l|XBCvIrVY+P%L`^LEDV)X!`R{URTTM92sc?>eOaustc?Q{XDDl+1GBPqbXW9% z0clnQf&fL!;zR^>Tr`!ywUwfxGX$-Mc0{>|sJVOVXgVPHg*;rn3{Y}ns)kNN3VfdW zB90h!4L4(mqluM*5TAy=rn0Ar1F;ZxO7wsSDDk#*Ix)0T(p!TA(b zM4cf<3Qqdq69S%4L%4~tqY4INCy%kRHc>Qi@Zfh<6ZCd6QH3fx8OmD;IIFqH85!FN zqP*aI-bRATFg;Hzth}MUFdW4vAnT=KtAs(rTm+l4|Opl4QxgAR1CF&wo&v%>*+eEX`(S2 zLj2D5C_ZmDE3^zWnm$2YnYH0AD@G|iW&r}ET(NErlbgzyQjP|P-0N57QU^#Gg1tq zr|K#u3YY)~(KE5qLaDnLWAHL(W2`Q(Vzg>V0bGu z!Vu{KI0)*1a}YK5&{sr2J+%>zVBMj5P^_+}wv&>xj=rprx|$f)Ths`HHqaAN#Y+a( zQ_WMs%?irrDyr(ur)ldTCI(f~^aSk$Og#1MT=)zy!Wa{4I8;{=;_R&iK?w3`sf#M> zdm^AH0e)qSs+*h!pQani1uKXY#eohnF2=T6Fe@uvgq$nr#nIjx;w`F-k>^M0ARMr8 zoIF&}Ti9L`rwAU3D2V85fL|{!K|v)K1#bkOtc{3{kUqrKOl-AR8|y{MC)pP}Bs1)3%1IVv!!U-qs!n zc}Hty0XvMYhAIRB)l@+0JL%)(b=+)m5G>lo6UT=U^Z>@p-9Zdxgb>zqaI#0}@GB^~ zfR4Se9#+Ege4_kL7!ffIc|(31Srub>tfPUVn+IG#*I7->0VjY}wRI9U(Gk-W@Unus z$lJ?e6|o}1UhbehA5_E8+g?mVK-on_0OMtArR^+&bV4ZrC8%iRq3qx-43+id({shz zSbNwBBcLj_n#OK6jtB*7ZDYJ<7jY0aR@U}J8KT_ZWjg$mA67}&XGZf?}**%L!m$5-l4;(7~A)#A8dnI`Y-G2I#>DnUdf-NdNgcB>CRsv+6ZRD5j}Y+$ev<$!52f)YOgFPcPDmGPT5U zUnwAaemW_p8j{yV=2G=P`tBdNYm!HfOG(qw6J6q6?XwI}0bj8>*j~c4a94z$Whf(Q zTpTF1`FNkC>%A)+R%-invL&7uR={Ik#d30d;2gD+ySJNk$Ec8Nq#B14P8V@ba~LYu z5Xa6kiD4#PdKWO2m?`xSjj%)_^6qSnX!dkp-QFTg=V$CB7lX`i{vo7{0GYOB^?h}} zr6&q}JeLU0eJlOM&m0(diw`rYeC2R*G#>O6DEw*d8MdQZ2fhyXS!S?S(ss`GWhRO5vvC74_<@Kqm8)kyFTXO z`{-#X%0^7ZN5rm~5?L|o-4edFHtg2^Rr|WA%Znd*Mq1drcb7)0jh3qxcq*rp&@9Nd zl&*Z3AgtE=-O*c#s$t*Y7V`Lc%7B8`8 zu-uUo&~w8x?VxS0J10vkT}t;Ql;lcyho8e>SyS!f!@ZgGu41?nhj~?*kn^aS)X}D1 zM8lE$%)v^1ykUV!)3>KLG~)aYwqp;LtF>&~QaC7X2n#jzl_IsoJQfo+7y8=iv~qQ` z71a%v5p)Us%PYIYuZvihQ?xDBQcR=Lv%1Hl02c+_ zyJ}pC$yu4aVx|1{UrQhFexB5+ za2mOdCNPLNwD8}vDP_#ddjxZKXXM`zM7Gh{kZ@%<)o%5^7D9E&U*k3rn*W|CXq!Cb zTrb%??*WhFHG5BG^Hjq+4G!@MuL6wsDt}x}ztF5QBY#=UHu>maCwU35*9{vIy9_KN zAcjD@*Xl>oR^f9;xRu(Sq#4toYY{mnvbRe8_tvLu{lL4ee(2%I+uQ*^KRs+c8m@Fx znp-P#7!YVaADH0oTz^#V^^DiXdpZ%BA*3aFkvn)gXQyZXGo>_EJ>N-9$1>pPT~puw z!^TCW_Asf2^Zz6sOf*D@L{KtF^bc2j6L?&5UsuPx3JZRj*v1sXs1qG`LryvI<1HZc z%WkrM+)n9}{`vt+x0rz#$a1VUv8N~Sem10`On6f=@j%ku;xX1!4P|t9B|MTn>39*3V8hBTo zpAWm`yB|z(J>Fko4MeB9kvN24>)reIGvMGCb)ZxAfu)jy;yP2H%nRat-dZ;Ff?BCo zb%(5uAfk~;WX!j;)GtdlR=ygSZ}P4gHq&z7qt+$jRcC>z$VS;%z=`Cy?)sx`(^5@R z#7K!v*j}kgL}-t-JT;G*9YeAp@|ke~_jjhkDk##mbD7;cnNG!gu~2&6BvbiPQ<`M8 zae>_TW%mo0mIM&EGwWIEUK`VpLcsX1jSB?jSI{ENc~cts3SEx*A42dPn1AoFYu6E~ z?|R=95%-jdXLS@-Fr{fCLKV8frjG000|3OzW-sv5%w*E7CkyJL?Wm|yn_mbies(59u-L9^O*w;|;*MPx%ppJSVidQjF!D-kyQELph718UHjXY& z;YoDqS-22iX7}{BIA4zFt*{7VbN$JuBBOi(Cc=3(;o&z#H1m0Q_)CCE%7ck`EE;## z&#L6Kmqw=v;<`49v2(gtWY!=|)BaK|r<0=khj1Q!?3PtGEv@D(c8Oq(?Xx#Am9i`0 z(dB$@mb(3UPOr7EG+${$K2Ic+T?;A~?m%JQK^~S@z5O=0+ON1WE0j1YxVbvN!JNqCd0e@131p5DcclIho zuXY|=v7Bl7Bjm#MoAEs6n5s81+@`%{W&OqQkkVX_rjCQbeQ0#KZimbRDXnOKm}R*` zBFy8Y`?~%`MybX8lCx_r?V}RXjs2UabZcQI=7WMG2zma`!s?^CODlI28>cR2ajMiZjF|LvY6~ zvPm1v&z^@&xX+dqiu>h1Q+YXJP!^`Nndyc8GD`dXhx*Z* zy?JbD@9SAxT8oj<(SVt@)Yf<}dN{n}g=}Z(`J{uj*j(+GKwvPpdSwc&TQlG$LFy@@ zoy1SY-RBX_R=AVmv;MKI$s);Xib7O26yNN#ZyB0Gy2sZt)|X3Ic-@ z8T#zqe?A{c;D>+zQMm147$5T*D4OnpZ}vx4w)Dk}eRF7^?M2jj8IrS;!@i)GLdUS> zEHYhO?=i%(I=Y=6H~dpQIFA#UuZi1vKH;UcJPXC|yH|gHZVeaOt}D0~n&{t~=JmC< zfVai)MZ;pdz0S|#%4P^y;AZTw1t(;}Y&WwkpJaq!OA>sp5 zokO$`dwJN1fjUFA$I_EK+AjjVhV2XBy|5rELGtheF>j}n{RQ5Q_mYBb+!e#WjOT>j z8@_E6&-nYcyjw3;0-eGpkPwU=4_4R@5YRSOP_{3sT!Wq zM?=uPp%>#|!1ZvuQR^~DA=fZ-+xYFh%@FnYi>V}vNbb%f)DCs^fnxYmbIvlG$IC{h z5q4@J{bxlbv9pnhOY+HFCLam=N`u|_!4#gBmv=7xSg%?r+?dVIpdOr3Zn#(6pwu~I z7e=*oIkU9W&WQFdOz&LFTdU7s&W9!#LaI`qL98RPteqRU{~CxKU?3)?d4Kfzim(&> zs=j7=Gf?IMnVrkmi-GdW&x5lQmI*>N^VCiko{-oYtUPtH>Uuu;)IKddkfj~{p!Q#1 z`ma|mbN)OZh12<8rD#A3%^`AQ z)b_A;VNoXu8)_yEd8$ADx{knRk&$(fun}us4hjA5=INQr6()ixA?dWI|IZUj z|83NC%LN1mow;Qye@%!lQIq=-D?ya+OpGMn4FLCLBFPco6Lf%(u*f~Sz)W>{a^}fr zIXv@|F$PUm9cLHwtjc`~c^dWa)K#uDMzcp?mj(?+eK#~ZEi>;JykRln|Ls@cI~*sD zn%HmQ;tRSPFd2S2O6EJ-IhypaI^RmSP2k6-Y%Y(OVkR4Z=EMK$mqSjf*#%xgs*^Nc z%9S?u49W8b9chnIO7Le{M3}C*GvFoyt1B zGZqk^p%A91-NbR{54&)%MUWz4ske*cFw%BUb2i-7KI?9YDbQ&wc6av<7Y(A(s2xgywa@-{YX zLiYFgnG#5d{Eo6nl=;&Ao>82te_i<(nyKO?zIzztnD{rPmC;&-V5YxuD_OYAi=z56 zf^*-!ZW;X@fezu(mP#;V*)CbBEx0 zU;ayK;72G1{b+j6>+$gakrlGcPy)ipt5(RIKcD-Txq(4TAtIKE(o6O`6_Eeh$~+;X zB2c;H;qm0Zd#7hj95MtfV($iM{?hi3aDk`)e}AaHq#J~yO&jgfyc$VD&(#wJRNm<4 zN*q7Ba2;atTLcA^cC|7Kq+l&Wxd`iMrJ z&#=IHAj+Wbyzf}~yQ1WhRGOe^L0ccM2R+AES7&yJ>PUAtzDF9}KDUd(DDiP-sE2d#e|-4M0JC^AJ7?H_L`bulWHr2!Y&p2Ofx zjC4tOzXa`tfBq@9(X#(Y^NjZS4=&F-N}`}$3mM5zq@Kd(I0-F_>ajs8FT15ch|j*O z^WMcOQOd6>1vpR{85t7CvqaHQ_Rx_(2?8n^!rD5e`f0SJ%)%KH-i}P^C_BHP2Lwbv zxj*dOUzMtl;dxI?7MS^APt<)r=6i}*_af}z#Q$)uA)8Zu`g@|@xLrT%DT#=K1AEVu zq4Rsm%lu!cERdTxGcgCsc%EOaWs+#;%sOvDNW{e9;xyfwJfm-G-&e@(KL0}{=+(XW zQ?{fECjukb4`MsQWNw|k43a)M1Y_i%HfnU=j9&wWfM~`RBum;Xk|F46uF`**?sZ_b z|9GLu3y_ZZ$vW;IP(8Nu(?C@qk}&R`0N8$ufEVo^55v^Ry-XatD~tbJJ59m-#^Uet~q^`-}weaV?0JcPbA2 z7%j3gg~*5_fOsLKXvBXVfLu{(?R0zk80=qPl1iHpcOn7JPM+I;a3a zzR!Tf2DXi1NhY-PKFQy4j!P5bBtM!55RefPf0FxfROeAY_W2byhA3$K>hDIZ25yr%DURTae2&QSZa|`D5i8C1$ZO)vI?{V1ky{3Kg={-@HcxK_VXN;lRXktST0>fE!)^%!w4@z}6UlnelNt|_PFq=R{H z_hE4p&kMLbpQe0CX{j7A{DNQ|tURC`7ys2}GQWu1OuH#|{9IGc34IShmi%~s>>aI> zoUJiAuso8fn_SLDwcb4s(Or1-2zzf`N59b z%#f4Yea7vzEVX3AZ&G^?VD)}03_kCC>#>PHs*A!V>xv6w?A^mQX(bgkQ^cnvMv;r; zT{h!PGj%+6=qNTy_vqRHdZ7iMXLPK$Mt#*rcd=DJmVE24+IOjoOOCXc39or(EVRv) zBB$o!zp2EQFJ*q`u1NHA7%lD|_!W{KAben4VjnB9IZRcWy1_(_Uy29kJBV1IS`uIX zcmsHAxO&yN!X^*aS?;CRPI_F8bF1~v2=LhV{YW&|Uy&YjN7tC4{2S>&9j>TG%*YzHp2wPdb@H{5bUPkNC z##b+uMwI)dMb&GiMDF+GRhHhn4n`ZQ3|8)v*C2<`e=CO#a;)a9SiBv>Yq=R>JzS5S zi@K1&r-PYkWDd(#f1WZ>n&|kb?)Z_!$@bm#Ioz09gCRFug17LRGv$pt1vf+ll7W+b z<8ykwAs)}Nj zSRcnT5Y=O%w4am8S6_Vpk1xrLiLQ6$2wqGSK!o&F*VdnDF>PZUsnPP8}GVClcr ze;9Pv^vdBX)lcwQ`4R$<$MYfMwiLi0$E$@vbpOjctt&S zed^1_D0#*U?{?qyCAIF*OCY4VzZGbrZ%D@8)^CIx)Jb?vz6rk$rze#^!<$4a-QP1I z=FN^QZ{gNiBzzyKF2~Hfm zQd^l@yHnS#FVcxG237bErBC}G=M`-muhhMQKa|%(=F4h~s30@N+?G=i?MYv22f2`y zcS^5YB07EaSp2H63=ugR(cdPdaKEj2AqWe*;5UZiGnsuaoh}- zNh9cDMWhm)h%Snlo{5d)((fl`rY=1E3a?H#EE3+~jN`F!Dz$0i3ZNIeDQ+8@9oAb= z`xLe|Rej_Ec%!rL;v(w|MU8_G1xCh8qwQ45IZ;h45=eKfO8k_7Pj#gk`yqj6f6V`jx&8FFsx7B2n zSwStv!||GT*qA>=uPdjW>1py9tv6}=rCZ~#2v#f^U-n-hB>r_3q%)-dkyPD(ntbnF zcEY?va!bNnyY1nN)q3(LLUaExbvM-7QM^tX9S+F!^Vyqj_*&9v z&yf*e&=Mc7G*}@RL|*za-~@YtiXJ{$o)(b|xuzB$r&G%y!mYc=FQ=QOYQxZd-8?&- zjyd8f9jjLOb#$*ydz6Br$e7@;V4RGmu8d5tReXL>cg*umkG{=bt^L; zGQV{@F!XvM$0_E!8u+88I0yuRDx-ezni~F}Ue|ZNg>=20n>zncdOLR5%lBjp8O4e& zCnl9qyx zD!1{6vi-Ng=RKsvx0V*;*&7Rw4s2T5%x$TuDFQP!{a9xsMQ}WOd(kM{8}#X)8O+>$ z>vNVIz85^ZzFuE37S(#!qdDufnr^u<|I8W|)!jT`kY?^U2ytek&4(e~d&F?Z_syK$ zD?6!gdCYf|Je*}b7o<%!F3zyQ%)rb`b?q9fWL4SofC9n>spM*? zYRnyEGj_9)dCq&MpsU)4eb2SWqbco{QDZ!WnMCw$K!jPW*z`F1TvM>)C9*Ptm9hSZ zUMJs{Kbe4eD#JEkH%sk+diwp=KkvSK zJmGE^VGEC%3ZrSfzfvFdvwd4Q*=eNaW6VpBheTb=(>JE7i;x2_<&dHI#|&~IrVFZ1 zF@4G_PV`eNuR>BAU@}bFc&71ZTRo=uk@wX1x8rlj9T~Z>`-^e9nVW*MiQ;Q%viGW% z8cot?F?df;2*oTbMP7W2t$TA5`R8+Ixw+pR_9rT(9XVt*m`8FY)>;zEMN5 zV3@qW9v(6JJkGr+KKafyYDX_CN)rd+{gw1%KJm-|tz6T}&>wkb`e}?^eFF`(IN`WG z!_)yyZ+ZsEuF657XI_X;iy(8~+O-zyMDb(vgrYH=AolsA9@R$EB8z3(89D;;X9R>) zA@?6DQybTBi|8HpS5?l6GWAVz-X1D<5Mq20VZyDjZSwI!-)Jfa&VBJF?^EAi-%xvz z=;K<(nEj`wO=?8}Of>nuEKAM>>@)4@(eMC9e!`$n3Tll*-F0z;B9JKNBkw0?^@JQv z>J7hLSYYRNu2xH<6;&06F*ZkAFgP-}opdiLQu>)N`2B)i7n!>yw%2~{x?oxQ0AeN0 zyu_`+5V;YcNf$4jk3k8VXsA)QMMD*yw9KAcNpRwhFeap3LeFux$5p(G?V7ry{I$6! zYh;A7d2J#_{7IZn?bb~a7i$wQ=?4H$fU)QVl(k|Ti#`@lON}K-DTJ^d5gteD7cTqLN2Qrji zJ#XsKM_!ZTQq#rVIhslPCCC5tuT=7Pt@l<>9#vRAPcL`@-P~*@|BTow;zazK)S4=; z3swkbbE`iZb|_zqfMk5UaCd2_+SFsEMuN4xaKn&tCk_cMoM?E)@H{K*m|cy!HQEYp z8GmudJ(@=8LSzv#z?$)51rK4>hxdHO;bwS?koZCdM9^@Bj=CD8W_r}tg1^X_%sOee zv>#QuFMs6r^~?K1m;|N@&SCU|v%41NnAsvSSXC2e-zvUyer=-n=$V&>$w;T>W^no8 zR_xSpWod~`w|7%=QQ*LF(6UzJh&cnKWufnoEm^n_(y|;-T|mt`m@!dw#%C(7mwqy~ zBBv$j$Y&(k)0{{9?b|)=9~6ao#xUBR+cr{M@50m^yr{V?R53G6=&BEPRLZ;;ax{-` z!PzvQ(}}sYJl#re&LA0UGD`Pzpc5Kfj@XG#Ua>0*%id~W;v~o*WTFp@eE_z}JWswI zs*fMtcx`lJ?w6n>&uUr%7pAdC^~ zWjTARp_a8^$X!^Ww`%VJe|ut;bK?57sUDoI@>11Pb^59VNM%s3D8Rf`1-%iQf~a+-}whQfw? z)TElT>RObIMy=TyQTvQB8s#*iGJ>_uaf=7%uX35mm(2~&8%Q@$^%pyqE)G?v(?%d&V-MLsBTe>5XvJ~m;e&uh3>m_)NOdHQ}5+XqqBEg zqPVM5q;Wj^Y+adO9lPd^Lu?k`9%m;%E>{HG-*(|k*sl-CXC!+ULh4dCo90B$h}tKn#6&kg9P}L^?^CoL^u>+iy>J<(eq!I+XA6{(gHuDAgCnMKw0?!8ub&i8cvyQb1WVc1%aypohu9foi3= zv(y0(P#r`}JQt{M8ObDfysN5Bt=Z{qnbt~fMYTL_mrA`ep-3SVF`}LI=<2(q?{gt5 zEa0b4sZjg7ifw4|xigxFasVV-%q#MguC;@;9>`Gjuj(a*4R&Jf-Pq)K< zIB_SXU!0y_zP0zWx+w8DLcB0^&>+w2N@=5K3du4tG;qgxG5uUkz?n7sTUx(ktpM^} zZ~DG9G3Xvv$L9%qxdKI0-`?2uHJ6}HITF|@{A|d+~5Nb>Q zJhV46`bMe~ZqUa$^gv0@vPID9`#rDY%DRkhD-lQckjYY$V7pq2=-$uuNA}q$h}2H< z!1}_IEQSH^ypV=iB(!Kk-2VkbdkSxMOI1(3$;9RIP0_OlZFzBFlGpE-WBZt*{8u_N z8w%ZzTr`PgKJ6{)mJ^=~_p^C|ttqO0e0gEE$-R*Gc5p%OwbUvJ>$8w|f2BByGr zKUeR>c*roCVaGDfyKkT6U8zXLV3Cfr*{htPp<%~&`;BnOShdBQm}b`QZ1t!d(un8S zxvu15k+O&1MsPwg!mVhPz4NgWX%^q+(=vkN>?=2eT{{}jO|QLQ&+mI(i5gjd?Ve)r zrmuV(GHB+29UEDxHBTz9F&`Wo>KTY&C~XUTRXUMb@lCI@E`fzON)D{k_jcmZ`lhvJ zIOD1IS)CFul$Q5c>g@ZjXPus#v|#>=MeJnwrR}btWFNY z{_4b$O)SK?zKzb!C)&R2{nw@Jv;x`7cPkf0sut^G?d-Ecmi-ElavBdLaz)Jcn_?+9V4%JKQRT zjWBh5mm%0-H)uujz=Bb_YoBmq{rgk#=vJlPoiG>8+95wnG#PNt5nH6yg` zh4M`T)2^)(zrF^vCU`O=esNRUDRyeT!=e2)Qt)}u(N#x3*WK};e;RD0mkSsejMD1N z8s1&|t|uwpGMLJ)fNbtmxv;6!sjOCK0i5&FFd>fSFc~4jqmqDBh?<(2N-zWM!)M%c zA+DR02%l{&TY{V~#L_}%D87G*+YFW}{1ALrp+>TA$eVuXOKOQtyOl}N`@YI} z_ecL6-C~Zs47`5H9NlQSz;2&!r;ygkjl*fzxrOFumSMg4+YeOO8YY{*ERpS@~E z>&gbw>$B%TU{UM#?b4r()fYrYrUfMnCL_Hnb>}*WzKF1wLkWUBiLsN8`22A;u*)41 z&UBDJDKl}+u?0O_!k@1|{>b-%wcvm0qti1obD-Q``YelL{+~yyI)MbC5!w!q{>ulS zp1tIhAz;C_(Omn$ymv_A=*0fb0RH{r?ro5jQMxUBy1R;Bfj^0=pboH=aJg#c*)662GFPW( zj9?7AWM6InOXZxNQB@J4j{Ih&k2a&Z%&YX%eAiV1kQ)B~z4!R4CxGrueR@dFpOz}_ zZa>#oWEsAdFT<2e;(Yb$<I{CHomcNNPy_-*q{=bCLtedm)`JcPh83E>p@F&- zs`X)oTW0v~AwaMJkk}mot53w00GK(szfcrUDYYxJzrDoy@cgx?^{JMYcuRj&T8Ya~ zD5^I<@dBfinQ9yt2iUQW<%fS09pE;8`(ZK`_-`Blq*b#s>eB`X;Lp5pM(I(BljZ6a z;a1W1G)Z*1G}vD&rN<|sPgjedcXsyN^pk6xlR=~md^7`ifN7Qc!sJ3xeVoVAU=yG)FTkfo0ytK(pWTNCV3+Nb z226OQl1jQ%EvW(^btY(t2f#K0Or*p8t0n;eoVtRTYL2xXvT2EH0^r0udfDoi3QQ%} z8*g<16yM%rX}kK1$&QzD>&=`+2~3T0l#+;fx2mNyNuSBBKFj##Sk9J-2x*?GB7n4O z3Z|5@o5wMbeoB1{HuhzW(=E=2$TX4>3lUgzUZ53fJk)(re_?i)4!^z0rjexlE&RI1 z>IA^MZf6U4ts}Zc^cnjMnY(ke;=!g`LRdjLb!Si&t+2ywOTVqybFb|PDvHB<(I(?#nw810pXbjDZXlyC``&AgbEw3$RwhI46lK@s7B{_THAF7#um;2*(Gl{*flG?YEd{upIeiAi+#sBIqzd>D#f zVfl3b^AR#n$XV0~SeUcuAoek{1lfbB3cQ7bU$X#S)7Fq?N$ySkZM(jImZ)C^r+&_uj^ItL=G{)U+Q*IR&on-eybI67X*qy7ylJ=ru#>eC_^x zUIyIHj$WPgRbOv~cv{F=am8nJD3j^=1Sdwn&F6E!=x)3{D<|Yqf?Ki3xvTClRD6-} z+PDv4(HXG)R1r8<{oxDsR7KxFg$MKE!FEAmUywFHSaA+YDjvMB572iUd3gqj()&JI z>yteGXw>kHeiLHKzpk)jSpZB4@xBU(b`!;Gn^!@~K*&%CW z^ZcV<1C(Da#n}1M0k%IeET@gA)TV{H`%stn%`$d%Ty_A!AY<+rG-JbDrK$a38=W5w z+~1VnQ!}~rcHrGf{z34lWy5~|?!)8eC%&iFi;0k^NTQR8(6pg0xA)58hahnHCjWBK+0=Oh#A0&!R_)+@jjSk_x$X4<%cg5L7vD!)6Z%cAs*E*qlk5OIJW*>N;g z3nn~s6l?xvs?_BN8A=N7Q4*iLLZWhO#z&^>(9>h~Jise#`H)iuxS#@Wm1p|tZnei} zo+%s*F5EBi!#KUVcKt3vhK8nlq)`C7rDk3Ij>=z?IL=78)Qo1oOJzN#)nrQHGHbb+ z>0Ssxx{8)dTmBASo+AmQH%)+OoRdECrBr@@y*-pJ=*9Ij^2z#x-8m#@>YvG3M_4Sk zPjuS8TDEk(pQ}63j*0pUIAO7n37{)pATz;r@OS76jQDP}N}Z5RwNG5o_xqmSploqW zGwu^~qS17TkeG*@Sc4!Fz*^cMs+5a`!LNE>>wNYLZ7QLAy>DDXCvjJ$3~a(*)@ZnLNrs6b=*79fFK#Iu z>n;GWg_!Mlshe-iUrz$XBUob|PN!ca`D^E>G(L=M226Z=+R5-Vr8?+!gu*ih)~$FM zCW{bXP#!YC%t-7@16-4kSk3ypU_X@6KNJrp0aU*!C{ogAThxck`0b0*?|%{COykrY z1Nw_))?d&2@c(i;qr(^`Dt|r&5hPP{anB-hvKxAqjKw&RKv@EThoCi3t2kaNabGZG zufNQyD%!&JukCdTQhZ7)h68GAflKMv{rUy?b35h4XrA$vKISpo(Ow4ZwN8IjcOLpFMNddmyT3?Hm^!1ZwjAP@=BYQ-YdsXF!{lFgd0KZD( zS2%7kkJA9}*59fo<*}l-yGte>jz4NPRED~;B7E8f0nu|#m-R`N>yqBsNg|e#$#c08 ztQZ;ziXcyt%j@EkKC(3_4uOGV#J?y4?P&g4V!hH7Fy^;oo-)2oI=sC!)GAczJ+_o} zEdi9ssDYAJh zK~Z-M?vyqG{=MZvRoWkJ{I^6Sji~-`J**VEa1*#o?#oKQpt^XLQ%pSKjr@UUxx)a> z#!EpD@IVoz1$>FX5vDfQQhx<{OFbEBF3 zWBOJxXJyF)nNP%rdwA-6S{$Gy3;?;m$4UbG7evLsg;eLMNoYl^xs=+rrnr++bGiHv zFld+v_%3eCpg^n(_UsEuKwrbn&PV}v^ABT1a&Xfo6nYVAv+_%5FDP6k0_I3y*qwuTBp);?g=V@3ZpdE-P=CjLp2e(!T? zo<4b^it$GP$@<7a6}m#=OG(z|)~Z8d@gaV}S^2C?*-dTW@q2Bwie&j8?FYqgZZHgA zOO){l;J|fv`%7U;HVp24jw-%iUu1GTb}`^2nTknQgluoH91$_A>A=QRyUGw`QGK_EZqkk$8g*N)n93PEU5#~1yH*?9Rob`#%J_*Cuheit9=`8kk> zQFBLuiZk;PWINBbJNl7;Gm~2{>sp2tT_|3PcmK#t)mJ&;BkPiK>lqOtaUmHXMv2#k z?R9DYnyVbT^4VJHPWLb3gUQ4m1c)KmL2%kqV$(9Y*1#BFe{yU(-;>8K9vE-o;#@gJ zjT)<~JzNPmsm5Hjhyxp0H#rUS@i@&;9#G~qG@T*t(9gFKPRi)3ZU5snGf)CipyUz{ z;+%XHAtfLi1tQJP@U%j`Mo>VZHQkoVi4XWf82$T&=I~KV?P6@t-`G`Vmh6iGFVGmt zpukP{{MFk`ZqwiSx3WkXJU?(1!Acd=yyrRaRgZSH%BFssOGACcD&n|hF7b;^?_DR< z$G;>$YSVWE7FropR!&y0)I|epoOqCTn42xE#*K{OHpgZn47ZW$`NnC{V+a!UlGNMY!dGbwbX2(ehPpwB2oW+ibY4 zQP|CP-40n^5?pzz7>*I2|g~Wn=ZJpEMa_6 zGw6LA{TTWEjTBdXGWj<$8E2T5$tMfVt0%`l27?uXRw?oI8Zy!{bsoQ>CF`s=$TJix z0KQnC?-mU?J-K{!yM6S_m!J0=0&_Wy3bD^1 zinjk^?}?%6A53f217!9=P${YUssLJM6LRr((L^o^H^u0``|&U#%lzTH(MfdIkv-b1 zpww~ry$*x-EVJNp(sBPa$*)G18-|Z&_gtiRPuZ_-7OKo zQjgY1y=&TVygQxjtln~Y$qm#rYnN*7Aag*CapH{s{#?#_3vYcw!&1Y0h11*|F%*WM z59!Ok0W++xZ~+ZUl^qAp{eDI|~tZu_j zN1{>LLq&i%)^LFyBn;-_V+c^@cb)HE;9hswJV;h>gWA7Rku~oFkbg-kmd4)GtEECS z>N;klNaZ(;&QsJ}xGo?s?9hLY=R=jVPqTrR9$i7&TcQGp#(O4V_zahS=zk)W zi5DrX#6|iT3*_v=NOi?I`&mbjmCFPvvGtFnj0tN}*l>trao$8VYDBfVb=I#y4Q0*? z%Grze?dY{hHGAUTn^bf&W@EMW50vo8%AW#s#e;(b4#e*gUboB5nG=bY!6^E~%;U-xz0$HeCk z_4Fj)^a%cPLe4E|0486Qr$6#~#CpXC8(@I2>9ngFnU;W2J)y@|zOJ^(@A9y)Bh;b3 z6P1V6{(O^7$_9)`vTMIbEt6t`gr#^8Pp-2*m}^QIBjJ1 zhWpJMi`uFdL3xf25I+?M2E9EdT?iU^^hvXYkm6H3mLJleaEgg+Oo`2?XYS>KVOh#% zB&jW0&Fxz{@)J6aTFe=kdO&b~Kw3V9Z|`irRJqQp5q~nKUa-ZM- zS1r7oJ5iy!)+5g0Kjq-%`&S8d`~MzlkEDysmQy@1+Nr$5+!m;kj9Flj&W z;?F~TRL%FRX7s;f`TYqJ1CFRHy>spP<4_a?U~AUTxAqp;Ke1~EJdz4US z@a}qPb+i*McBS)@Z1{mxbjP&oVh+)$$PY|7OqyYha`5@`2P5hrLk^G0LxfD04lsfX zymU#Rb9qMpuugD;JcR61bldhCm8yKHuMz3l7-+loksxJ5`N9CT5lWD0d@#uho)46n z&Tp%)Q6g7gjfn&CZX6AUwt)T+DKzrxbvoE*W&Upq5$2n>zl~ews1-X{4?SC)9BQ0d;9DseEXo}D+|SBY|4dv&=mNVC4NuywF>Do1;yT0OO8h7g9y zZS#~FY9o~m0Tn}MbRE5Af(qVLYkk%U-yx?YFT%!&k{-5gM{2YiS6&|7oQ6*otLt2C zBk*i!u7;9wR6co0ZRSJMTCi-R=)MJc#f%dZj#X~`_uiV4dDqFfr#2%G*tXka=|6VJ zoJ!I9wsf|GDCw+YY#iq+idM)`io!e7e>*79E@2jhM(D z3E0BV-qOo9t@X2RTf%*^qEHD+74_imZD?5cwxMsCTN)5zvw%4@W2XC2wJ%43H8`wy zaOr*V9m5;5?+SBNQ*C;SEM$bQ!wUV0KTgEDCtp&}cF#>c7DjiCFm;Su*C)3;J<=|rm|1lquBTYd6zyxaZ?f9-duN)E`9h^0ua8Gk zXL7Z1SNb^#vImb)^OGZSi#GNA&u6bB`tfoLS)YwZ8AD>f02DKD7>ofLXh?Oo>SB&;qNR|74Q8?oNu|DB3W!jdwVhx!p(+ z!G8tsaul5za|JuY66vUjZ|;G3dc5q`N#aB=ZnB%lPw&M^V9Mz&@Z|7a9_gN(eA^eJ zh~%s+aC8O0&9FSLujyt_-$5-u_>CBZ#+g3ndmmnCL;j*+ywSBVOMai*XV-ZhR}4f}&qjuzHk} zyRwf?K)Ndy7tytN zs3U{FC6x*%JE>{k~q6mM?ar6=>}BIi@K&SEtzvn z2*D^T<|_jzoFK_Lk9(?426_(P6+a>xC=*a4CtjO1ku@D$ zsjDNsrg61AcN3t26!q1Gb9SCVS`Ht7ehnIP3Dq8|aTVhb^$A$ok63uvB~@xO!inGw zk05*|eqUH>>#Tfz<&l@sXV;6swKr89S%HRIteCEU;$EI;$;sCxPT(<0t3CxxR!j$i zRP`zD+OPfBa=0cJ5;)H$Tm3*gdz*A5h~If`bg3bQ)92y*_FR$UmV3E}|Bc}N#}R{r z-TV%?*%fjzht#e4b1~-w%!QMq zryFH$={X^qVKkZB4|K_zn?vuXg7_`e6d1uSW*R(4g9(|I7}G@EKTPxZr#8#Pro7Ob z2!hetkUwvZBkuLvWJ!Fii9719=+VyWFh=e2D1>cy3SpiTx{BJmy;(Opd;NH%61K7P zOH7%vA_vjuA3x@|#>MZrPQP<5>~h1s?>3pRkv@%hgYBz}m%eNGzN;NO+wf`>J?C-_ z;ciAkdd1F?>Nfx65|-GYQL;*v3E536v@AoF2;`N>Oj2e+)P9HlaEYpaxv0=FT|E zlr~K7KdTYJd)6xS>$$1{?$cLoOWLkfMEh@z+*(dz=hsnz3De2P#xSuHr0-GuzL)(& zE@O;g8fNGDIZVwb51-n39m2b})oP#lP*n;=I}!1-WnHu>v!3;qTcB@2&on>wU{WxT zY!45^lc4wIgdD7%!QXlNLFXWZn7T(EHcXJfSz?6=6u$B*YKC(nuFPH)>~*IsVCp>LxL%brmuQ!eN@uZNm{ag`Z%CK z-h&G^g9@01y)|VD&}H@`C7coEO0^4e_AMFprlkaw@B5Ij#;np$R)`&kZXrICYoE+; zwocVQ`r*88uQFY8*TM3>$9?7gV>Js3y1Z+3P7d~`Z`??V6I_2<{JYk&v?v?8`qv|} z9FAV0{yk9wOx`^!NBaLm%H1lXUW|*{h)9oC;od=S8P;waP~% zOnYkWpIP(x$e<_1x~HxC8`=+G5+lUeO7*L2E0|SDReU?0u=s=^TL?)$b>gaAzV8Q8 zk{@&wJ+X{KeUJjADMS{8NI;=s^Wm~?f;5LuOoe2zxP`PI?MRYT3ZVTj8P@oU zd|`jn3zs9i&i7qF2~MGsp47_d9w7Vm2{um!fLp?^ga5#C$~0k^y_z}LNPe9VRtreP zBBkadkX>-ScS)9DBKO{x-8+R8QOhhl8i2iP?80PPhz0#0w}q?%blLRt$YteS?7jEM zFq$TZy)S!rYO(-@m#>+(_Wjw>0JyE!Wq>&YKQBpjVM^^*hk}EV4dwhcw=`y6@D2v8?8<*0A$&^uL6fzAp5m) zKBCuvF)*w#Wpw^c^@!dIYA~Hs6Z4)RkN)q&f|?7nsq+h8g+exlCIjk^y!C~Rh-^ECTjM-q zVcWvvXYc-h47YCpu~>>Z3cvc_;*`i(0kmT7z%&?|4{OB^8*~Cb*?$+}T`Z zrw2hVZpTXC@(Zfk-!Zv%L!$lt4i+kkosi+L*{5dTqz{AO*eckw=Q|j-<4BPXiww%+ zy{tqllxbNE;HuheGXn&HA3hP3#oGa~yH$d56H_AToWC9Vdx^H4jFPmvSo!1Q@f<)$ zyG^BgYbQ%t$Jn;qtVsmQzi`(XAyZk_wPinA9DUPF`~?$=7%|9n_{&ymO!Q@H=VdK* LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR98/index.html b/previews/PR98/index.html new file mode 100644 index 000000000..53c6413a0 --- /dev/null +++ b/previews/PR98/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                                  ClimaCoupler.jl

                                                  Coupling CliMA Models

                                                  ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                                  • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                                  • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                                  The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                                  Coupler Scheme
                                                  ClimaCoupler.jl allows for independent development of interchangeable component models.
                                                  diff --git a/previews/PR98/search/index.html b/previews/PR98/search/index.html new file mode 100644 index 000000000..75fcc6520 --- /dev/null +++ b/previews/PR98/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                                  Loading search...

                                                    diff --git a/previews/PR98/search_index.js b/previews/PR98/search_index.js new file mode 100644 index 000000000..afa13c380 --- /dev/null +++ b/previews/PR98/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"generated/sea_breeze/ocean_rhs/#Ocean-Model","page":"Ocean Model","title":"Ocean Model","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/#Slab-Ocean-ODE","page":"Ocean Model","title":"Slab Ocean ODE","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"For our ocean component, we solve a simple slab ocean ODE just as we did for the land:","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"rho_o c_o H_o partial_t T_ocn = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"where rho_o = 1025 kg m ^-3, c_o=3850 J K ^-1 kg ^-1, H_o = 100 m are the density, specific heat and depth of the ocean,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Model-Code","page":"Ocean Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"function ocn_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_sfc)/dt = - (F_accumulated) / (h_ocn * ρ_ocn * c_ocn)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack ocn_h, ocn_ρ, ocn_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (ocn_h * ocn_ρ * ocn_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction ocn_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 267.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/#Coupled-Ocean-Wrappers","page":"Ocean Model","title":"Coupled Ocean Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"# Ocean Simulation - Later to live in Oceananigans\nstruct OceanSimulation <: ClimaCoupler.AbstractOceanSimulation\n integrator::Any\nend\n\nfunction OceanSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n ocn_prob = ODEProblem(ocn_rhs!, Y_init, (t_start, t_end), p)\n ocn_integ = init(ocn_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return OceanSimulation(ocn_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, ocean::OceanSimulation)\n coupler_put!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc, ocean)\nend\n\nfunction ClimaCoupler.coupler_pull!(ocean::OceanSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(ocean.integrator.p.F_sfc, coupler, :F_sfc, ocean)\n ocean.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"","category":"page"},{"location":"generated/sea_breeze/ocean_rhs/","page":"Ocean Model","title":"Ocean Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Sea-Breeze","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Overview","page":"Coupled Sea Breeze","title":"Overview","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This sea breeze simulation consists of an atmosphere above ocean and land thermal slabs. The difference in heating between the land and ocean components drives circulation: cool ocean air flows towards the land at the surface while warm air over land rises and flows over the ocean.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In this tutorial we demonstrate the coupling of three component models (atmosphere, ocean, and land) to drive the sea breeze. The primary parts of the ClimaCoupler interface are used and discussed.","category":"page"},{"location":"generated/sea_breeze/run/#Model-Initialization","page":"Coupled Sea Breeze","title":"Model Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/#Component-Models","page":"Coupled Sea Breeze","title":"Component Models","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component models are the building blocks of coupled models. They are often developed independently from one another and can be executed by themselves as \"standalone\" simulations. The coupler is used to combine these components into coupled simulations. Importantly, coupled simulations can re-use tendency methods developed for standalone simulations, maximizing code reuse and minimizing the necessary code that must be specialized for a coupled run–only special boundary conditions must be written. This is achieved by multiple dispatch, where methods that deal with boundaries dispatch off of a coupled boundary type. Here, the atmosphere has special boundary conditions for coupling while the ocean and land tendencies are unaltered. See the atmospheric model page for more details.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"In a more mature CliMA ecosystem, the following include statements would be replaced by using statements for the relevant component packages.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"include(\"atmos_rhs.jl\")\ninclude(\"ocean_rhs.jl\")\ninclude(\"land_rhs.jl\")\n\n# model parameters\nconst atm_T_ini = FT(270.0)\nconst MSLP = FT(1e5)\nconst grav = FT(9.8)\nconst R_d = FT(287.058)\nconst γ = FT(1.4)\nconst C_p = FT(R_d * γ / (γ - 1))\nconst C_v = FT(R_d / (γ - 1))\nconst R_m = R_d\ncpl_parameters = (\n # atmos parameters\n atm_μ = FT(0.0001), # diffusion coefficient\n atm_T_top = FT(280.0), # fixed temperature at the top of the domain_atm\n atm_T_ini = atm_T_ini, # initial condition of at temperature (isothermal) [K]\n MSLP = MSLP, # mean sea level pressure\n grav = grav, # gravitational constant\n R_d = R_d, # R dry (gas constant / mol mass dry air)\n γ = γ, # heat capacity ratio\n C_p = C_p, # heat capacity at constant pressure\n C_v = C_v, # heat capacity at constant volume\n R_m = R_m, # moist R, assumed to be dry\n # land slab parameters\n lnd_h = FT(0.5), # depth of slab layer [m]\n lnd_ρ = FT(1500), # density [kg m^-3]\n lnd_c = FT(800), # specific heat [J K^-1 kg^-1]\n lnd_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # ocean slab parameters\n ocn_h = FT(0.5), # depth of slab layer [m]\n ocn_ρ = FT(1025), # density [kg m^-3]\n ocn_c = FT(3850), # specific heat [J K^-1 kg^-1]\n ocn_T_ini = FT(260.0), # initial condition of at temperature (isothermal) [K]\n # coupling parameters\n C_H = FT(0.0015),\n)\n\n# DSS callback\nfunction make_dss_func()\n function _dss!(x::Fields.Field)\n Spaces.weighted_dss!(x)\n end\n function _dss!(::Any)\n nothing\n end\n dss_func(Y, t, integrator) = foreach(_dss!, Fields._values(Y))\n return dss_func\nend\ndss_func = make_dss_func()\ndss_callback = FunctionCallingCallback(dss_func, func_start = true)","category":"page"},{"location":"generated/sea_breeze/run/#Initialization","page":"Coupled Sea Breeze","title":"Initialization","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The coupled simulation synchronizes the component models at a coupling time step, Δt_cpl. Within that step, components may substep - each component specifies a number of substeps to take within Δt_cpl: atm_nsteps, ocn_nsteps, lnd_nsteps.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Component model states are initialized via the initialization methods each component would use in standalone mode. These states will be modified to reflect the full coupled system before executing the simulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"@info \"Init Models and Maps\"\n\nt_start, t_end = (0.0, 1.0)\nΔt_coupled = 0.1\nsaveat = 1e2\natm_nsteps, ocn_nsteps, lnd_nsteps = (5, 1, 1)\n\n# Initialize Models\natm_Y_default, atm_bc, atm_domain = atm_init(\n xmin = -500,\n xmax = 500,\n zmin = 0,\n zmax = 1000,\n npoly = 4,\n helem = 20,\n velem = 20,\n bc = (ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),),\n)\n\nocn_Y_default, ocn_domain = ocn_init(xmin = -500, xmax = 0, helem = 10, npoly = 0)\n\nlnd_Y_default, lnd_domain = lnd_init(xmin = 0, xmax = 500, helem = 10, npoly = 0)","category":"page"},{"location":"generated/sea_breeze/run/#Remapping","page":"Coupled Sea Breeze","title":"Remapping","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because models may live on different grids, remapping is necessary at the boundaries. Maps between coupled components must be constructed for each interacting pair. Remapping utilities are imported from ClimaCore.Operators.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_boundary = Spaces.level(atm_domain.hv_face_space, PlusHalf(0))\n\nmaps = (\n atmos_to_ocean = Operators.LinearRemap(ocn_domain, atm_boundary),\n atmos_to_land = Operators.LinearRemap(lnd_domain, atm_boundary),\n ocean_to_atmos = Operators.LinearRemap(atm_boundary, ocn_domain),\n land_to_atmos = Operators.LinearRemap(atm_boundary, lnd_domain),\n)\n\n# initialize coupling fields\natm_T_sfc =\n Operators.remap(maps.ocean_to_atmos, ocn_Y_default.T_sfc) .+\n Operators.remap(maps.land_to_atmos, lnd_Y_default.T_sfc) # masked arrays; regrid to atm grid\natm_F_sfc = Fields.zeros(atm_boundary)\nocn_F_sfc = Fields.zeros(ocn_domain)\nlnd_F_sfc = Fields.zeros(lnd_domain)","category":"page"},{"location":"generated/sea_breeze/run/#Simulations","page":"Coupled Sea Breeze","title":"Simulations","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Each component is wrapped as a Simulation, which contains both the model (tendency) and the time-stepping information (solver, step size, etc). Simulations are the standard structures that the coupler works with, enabling dispatch of coupler methods. Here, we create three simulations: AtmosSimulation, OceanSimulation, and LandSimulation.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"atm_Y = Fields.FieldVector(Yc = atm_Y_default.Yc, ρw = atm_Y_default.ρw, F_sfc = atm_F_sfc)\natm_p = (cpl_p = cpl_parameters, T_sfc = atm_T_sfc, bc = atm_bc)\natmos = AtmosSimulation(atm_Y, t_start, Δt_coupled / atm_nsteps, t_end, SSPRK33(), atm_p, saveat, dss_callback)\n\nocn_Y = Fields.FieldVector(T_sfc = ocn_Y_default.T_sfc)\nocn_p = (cpl_parameters, F_sfc = ocn_F_sfc)\nocean = OceanSimulation(ocn_Y, t_start, Δt_coupled / ocn_nsteps, t_end, SSPRK33(), ocn_p, saveat)\n\nlnd_Y = Fields.FieldVector(T_sfc = lnd_Y_default.T_sfc)\nlnd_p = (cpl_parameters, F_sfc = lnd_F_sfc)\nland = LandSimulation(lnd_Y, t_start, Δt_coupled / lnd_nsteps, t_end, SSPRK33(), lnd_p, saveat)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Additionally, we create a coupled simulation that contains the component simulations and the coupled time-stepping information.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"struct AOLCoupledSimulation{\n A <: AtmosSimulation,\n O <: OceanSimulation,\n L <: LandSimulation,\n C <: ClimaCoupler.CouplerState,\n} <: ClimaCoupler.AbstractCoupledSimulation\n # Atmosphere Simulation\n atmos::A\n # Ocean Simulation\n ocean::O\n # Land Simulation\n land::L\n # Coupler storage\n coupler::C\nend","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"step! is a key method within the Simulations interface. It advances a simulation to the specified t_stop, with that simulation advancing by its own internal step size to reach the specified time. Each simulation type should specify its own step method, allowing components to have different time integration backends. Here, all components are using OrdinaryDiffEq integrators and can share the same step! method.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function step!(sim::ClimaCoupler.AbstractSimulation, t_stop)\n Δt = t_stop - sim.integrator.t\n step!(sim.integrator, Δt, true)\nend","category":"page"},{"location":"generated/sea_breeze/run/#The-Coupler","page":"Coupled Sea Breeze","title":"The Coupler","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"The CouplerState is a coupling struct used to store pointers or copies of the shared boundary information. All components are coupled by updating or accessing data in this CouplerState; component models do not directly interface with one another, only through the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"After creating the CouplerState object, coupled fields can be registered index the coupler via the coupler_add_field! method. This field is then accessible by coupler_get methods and can be updated via the coupler_put! methods.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Similarly, the coupler_add_map! method registers remapping operators in the coupler. To provide automatic remapping, there is a strict name convention for remap operators: a map from SimulationA to SimulationB (where ClimaCoupler.name returns :simA and :simB, respectively) must be named simA_to_simB so that the correct operator can be used.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the models are coupled through heat transfer at the surface. This heat flux is computed by a bulk formula:","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_sfc = c_p rho_1 C_H u_1 (theta_sfc - theta_atm1)","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where theta_sfc is the potential temperature at the land or ocean surface, theta_atm1 is the potential temperature at the lowest atmospheric level, c_p is the specific heat, C_H = 00015 is the bulk transfer coefficient for sensible heat, and u_1 is the near-surface atmospheric wind speed. We assume that the potential temperature is defined with respect to the surface pressure, so that theta_sfc = T_sfc.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"coupler = CouplerState(Δt_coupled)\ncoupler_add_field!(coupler, :T_sfc_ocean, ocean.integrator.u.T_sfc; write_sim = ocean)\ncoupler_add_field!(coupler, :T_sfc_land, land.integrator.u.T_sfc; write_sim = land)\ncoupler_add_field!(coupler, :F_sfc, atmos.integrator.u.F_sfc; write_sim = atmos)\nfor (name, map) in pairs(maps)\n coupler_add_map!(coupler, name, map)\nend\n\nsim = AOLCoupledSimulation(atmos, ocean, land, coupler)","category":"page"},{"location":"generated/sea_breeze/run/#Coupled-Time-Integration","page":"Coupled Sea Breeze","title":"Coupled Time Integration","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Finally, the execution sequence of the component models must be specified. This is currently done explicitly with a combination of step!, coupler_pull!, and coupler_push! methods. The coupler_pull! and coupler_push! methods receive and send coupled field info from the coupler, respectively. They must be written for each component simulation, and are simply collections of coupler_get and coupler_put! methods for each component.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Here, the atmosphere steps forward first and then sends updated fields to the coupler. The ocean and land (which are not coupled to each other) then retreive the updated coupled information, advance and send their own updates to the coupler.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Because the models exchange fluxes only at the coupled timestep, the surface flux is accumulated over the coupled time-step coupling time step, Δt_cpl","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"F_integ = int_Delta t_coupler F_sfc dt","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"where F_integ has units of J m^-2.","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"function cpl_run(simulation::AOLCoupledSimulation)\n @info \"Run model\"\n @unpack atmos, ocean, land, coupler = simulation\n Δt_coupled = coupler.Δt_coupled\n # coupler stepping\n for t in ((t_start + Δt_coupled):Δt_coupled:t_end)\n # Atmos\n coupler_pull!(atmos, coupler)\n step!(atmos, t)\n coupler_push!(coupler, atmos)\n\n # Ocean\n coupler_pull!(ocean, coupler)\n step!(ocean, t)\n coupler_push!(coupler, ocean)\n\n # Land\n coupler_pull!(land, coupler)\n step!(land, t)\n coupler_push!(coupler, land)\n end\n @info \"Simulation Complete\"\nend\n\n# Run simulation\ncpl_run(sim)","category":"page"},{"location":"generated/sea_breeze/run/#References","page":"Coupled Sea Breeze","title":"References","text":"","category":"section"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"Antonelli & Rotunno 2007","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"","category":"page"},{"location":"generated/sea_breeze/run/","page":"Coupled Sea Breeze","title":"Coupled Sea Breeze","text":"This page was generated using Literate.jl.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Atmospheric-Model","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/#Atmosphere-Conservation-Equations","page":"Atmospheric Model","title":"Atmosphere Conservation Equations","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Density:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rhopartial t + nabla cdot (rho vecu)= S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Momentum (flux form):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho vecupartial t + nabla cdot (rho vecu otimes vecu + pI)= nabla cdot (rho tau) - rho g + F_B()","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Potential temperature:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho thetapartial t + nabla cdot (rho theta vecu) = nabla cdot (kappa rho nabla theta)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Total Energy (possibly replace potential temperature equation with total energy conservation):","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho e_totpartial t + nabla cdot ((rho e_tot + p )vecu) = nabla cdot (kappa rho nabla h_tot)","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"where h_tot is the total specific enthalpy given by internal and potential energy contributions.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tracer transport:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"fracpartial rho chipartial t + nabla cdot (rho chi vecu) = nabla cdot (kappa rho nabla chi) + S(chi )","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Diffusion (Constant Viscosity): The simplest model to represent diffusive processes is a constant-viscosity model, with prescribed kinematic viscosity nu such that the stress tensor can be modelled by","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"rhotau = -2rhonunabla u","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Smagorinsky Closure: The Smagorinsky closure is an eddy-viscosity model that captures the effect of energy transfer to the smallest scales of motion in the flow.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\nrhotau = -2rhonuvecS \nvecS = frac12((nabla u) + (nabla u)^T) \nnu = (C_sDelta_xyz)^2sqrt2S_ijS_ij\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"with Delta_xyz the grid lengthscale (sometimes approximated as a geometric average Delta = (Delta_xDelta_yDelta_z)^13), nu is a spatially varying kinematic viscosity that depends on the local shear, vecS the symmetric rate-of-strain tensor, tau the diffusive momentum flux tensor. In stratified flows, we can apply a correction to the eddy viscosity to account for buoyancy effects. Thermal diffusivities are related to the modelled eddy-viscosity through the turbulent Prandtl number which takes a typical value of Pr_t= 13 such that kappa_2 = nuPr_t.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Tendencies for fourth-order hyperdiffusion are included in the rhs! construction, but the coefficient kappa_4 is 0 in this demonstrative case. Hyperdiffusive tendencies are typically included as a scale-selective diffusion mechanism for high-frequency noise (e.g. stabilization in GCMs).","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Consider components of the viscous stress tensor in three dimensions:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\ntau_xx = 2nu fracpartial upartial x \n\ntau_yy = 2nu fracpartial vpartial y \n\ntau_zz = 2nu fracpartial wpartial z \n\ntau_xy = nu Big(fracpartial upartial y + fracpartial vpartial xBig) \n\ntau_xz = nu Big(fracpartial upartial z + fracpartial wpartial xBig) \n\ntau_yz = nu Big(fracpartial vpartial z + fracpartial wpartial yBig)\nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Assume terms in the y-direction are neglected (2-dimensional simplicfication). The contributions to the momentum equation are then given by:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"beginaligned\n(rho u) partial_x (rho tau_xx) + partial_z(rhotau_xz) = partial_x Big(2nu fracpartial upartial xBig) + partial_zBig(nu fracpartial upartial zBig) + partial_zBig(nu fracpartial wpartial xBig) \n(rho w) partial_x (rho tau_zx)+ partial_z(rhotau_zz) = partial_xBig(nu fracpartial upartial zBig) + partial_xBig(nu fracpartial wpartial xBig) + partial_zBig(2nufracpartial wpartial z Big) \nendaligned","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Which can be interpreted as, for horizontal-momentum:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nVertical divergence of vertical gradients of cell-centered variables u\nVertical divergence of horizontal gradients of cell-face variables w","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"and for vertical-momentum, as:","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"Horizontal divergence of vertical gradients of cell-centered variables u\nHorizontal divergence of horizontal gradients of cell-face variables w\nVertical divergence of vertical gradients of cell-face variables w.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Model-Code","page":"Atmospheric Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"push!(LOAD_PATH, joinpath(@__DIR__, \"..\", \"..\", \"..\"))\n\nusing Test\nusing StaticArrays, IntervalSets, LinearAlgebra, UnPack\n\nimport ClimaCore: ClimaCore, slab, Spaces, Domains, Meshes, Geometry, Topologies, Spaces, Fields, Operators\nusing ClimaCore.Geometry\nusing ClimaCore.Utilities: PlusHalf\n\nusing Logging: global_logger\nusing TerminalLoggers: TerminalLogger\nglobal_logger(TerminalLogger())\n\nusing ClimaCoupler\n\n# set up function space\nfunction hvspace_2D(xlim = (-π, π), zlim = (0, 4π), helem = 20, velem = 20, npoly = 1)\n FT = Float64\n vertdomain = Domains.IntervalDomain(\n Geometry.ZPoint{FT}(zlim[1]),\n Geometry.ZPoint{FT}(zlim[2]);\n boundary_tags = (:bottom, :top),\n )\n vertmesh = Meshes.IntervalMesh(vertdomain, nelems = velem)\n vert_center_space = Spaces.CenterFiniteDifferenceSpace(vertmesh)\n\n horzdomain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n horzmesh = Meshes.IntervalMesh(horzdomain; nelems = helem)\n horztopology = Topologies.IntervalTopology(horzmesh)\n\n quad = Spaces.Quadratures.GLL{npoly + 1}()\n horzspace = Spaces.SpectralElementSpace1D(horztopology, quad)\n\n hv_center_space = Spaces.ExtrudedFiniteDifferenceSpace(horzspace, vert_center_space)\n hv_face_space = Spaces.FaceExtrudedFiniteDifferenceSpace(hv_center_space)\n return (hv_center_space, hv_face_space)\nend\n\nfunction pressure(ρθ)\n if ρθ >= 0\n return MSLP * (R_d * ρθ / MSLP)^γ\n else\n return NaN\n end\nend\n\nΦ(z) = grav * z\n\nabstract type BCtag end\nstruct ZeroFlux <: BCtag end\n\nbc_divF2C_bottom!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\nbc_divF2C_top!(::ZeroFlux, dY, Y, p, t) = Operators.SetValue(Geometry.WVector(0.0))\n\nfunction init_sea_breeze_2d(x, z)\n θ₀ = atm_T_ini\n cp_d = C_p\n cv_d = C_v\n p₀ = MSLP\n g = grav\n γ = cp_d / cv_d\n z_c = 100.0\n θ_b = atm_T_ini\n θ_p = z < z_c ? rand() - 0.5 : 0.0 # potential temperature perturbation\n θ = θ_b + θ_p # potential temperature\n π_exn = 1.0 - g * z / cp_d / θ # exner function\n T = π_exn * θ # temperature\n p = p₀ * π_exn^(cp_d / R_d) # pressure\n ρ = p / R_d / T # density\n ρθ = ρ * θ # potential temperature density\n return (ρ = ρ, ρθ = ρθ, ρuₕ = ρ * Geometry.UVector(0.0))\nend\n\nfunction atm_rhs!(dY, Y, params, t)\n ρw = Y.ρw\n Yc = Y.Yc\n dYc = dY.Yc\n dρw = dY.ρw\n\n center_coords = Fields.coordinate_field(axes(Yc))\n\n # spectral horizontal operators\n hdiv = Operators.Divergence()\n hgrad = Operators.Gradient()\n hwdiv = Operators.WeakDivergence()\n hwgrad = Operators.WeakGradient()\n\n # vertical FD operators with BC's\n vdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n vvdivc2f = Operators.DivergenceC2F(\n bottom = Operators.SetDivergence(Geometry.WVector(0.0)),\n top = Operators.SetDivergence(Geometry.WVector(0.0)),\n )\n uvdivf2c = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0) ⊗ Geometry.UVector(0.0)),\n )\n If = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n Ic = Operators.InterpolateF2C()\n ∂ = Operators.DivergenceF2C(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n ∂f = Operators.GradientC2F()\n ∂c = Operators.GradientF2C()\n B = Operators.SetBoundaryOperator(\n bottom = Operators.SetValue(Geometry.WVector(0.0)),\n top = Operators.SetValue(Geometry.WVector(0.0)),\n )\n\n ∇_z_ρθ = Operators.DivergenceF2C(\n bottom = bc_divF2C_bottom!(params.bc.ρθ.bottom, dY, Y, params, t),\n top = bc_divF2C_top!(params.bc.ρθ.top, dY, Y, params, t),\n )\n\n uₕ = @. Yc.ρuₕ / Yc.ρ\n w = @. ρw / If(Yc.ρ)\n wc = @. Ic(ρw) / Yc.ρ\n p = @. pressure(Yc.ρθ)\n θ = @. Yc.ρθ / Yc.ρ\n Yfρ = @. If(Yc.ρ)\n\n ### HYPERVISCOSITY\n # 1) compute hyperviscosity coefficients\n @. dYc.ρθ = hwdiv(hgrad(θ))\n @. dYc.ρuₕ = hwdiv(hgrad(uₕ))\n @. dρw = hwdiv(hgrad(w))\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n\n κ₄ = 0.0 # m^4/s\n @. dYc.ρθ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρθ))\n @. dYc.ρuₕ = -κ₄ * hwdiv(Yc.ρ * hgrad(dYc.ρuₕ))\n @. dρw = -κ₄ * hwdiv(Yfρ * hgrad(dρw))\n\n # density\n @. dYc.ρ = -∂(ρw)\n @. dYc.ρ -= hdiv(Yc.ρuₕ)\n\n # potential temperature\n @. dYc.ρθ += -(∇_z_ρθ(ρw * If(Yc.ρθ / Yc.ρ)))\n @. dYc.ρθ -= hdiv(uₕ * Yc.ρθ)\n\n # horizontal momentum\n Ih = Ref(Geometry.Axis2Tensor((Geometry.UAxis(), Geometry.UAxis()), @SMatrix [1.0]))\n @. dYc.ρuₕ += -uvdivf2c(ρw ⊗ If(uₕ))\n @. dYc.ρuₕ -= hdiv(Yc.ρuₕ ⊗ uₕ + p * Ih)\n\n # vertical momentum\n @. dρw +=\n B(Geometry.transform(Geometry.WAxis(), -(∂f(p)) - If(Yc.ρ) * ∂f(Φ(center_coords.z))) - vvdivc2f(Ic(ρw ⊗ w)))\n uₕf = @. If(Yc.ρuₕ / Yc.ρ) # requires boundary conditions\n @. dρw -= hdiv(uₕf ⊗ ρw)\n\n # DIFFUSION\n κ₂ = 5.0 # m^2/s\n # 1a) horizontal div of horizontal grad of horiz momentun\n @. dYc.ρuₕ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρuₕ / Yc.ρ)))\n # 1b) vertical div of vertical grad of horiz momentun\n @. dYc.ρuₕ += uvdivf2c(κ₂ * (Yfρ * ∂f(Yc.ρuₕ / Yc.ρ)))\n\n # 1c) horizontal div of horizontal grad of vert momentum\n @. dρw += hwdiv(κ₂ * (Yfρ * hgrad(ρw / Yfρ)))\n # 1d) vertical div of vertical grad of vert momentun\n @. dρw += vvdivc2f(κ₂ * (Yc.ρ * ∂c(ρw / Yfρ)))\n\n # 2a) horizontal div of horizontal grad of potential temperature\n @. dYc.ρθ += hwdiv(κ₂ * (Yc.ρ * hgrad(Yc.ρθ / Yc.ρ)))\n # 2b) vertical div of vertial grad of potential temperature\n @. dYc.ρθ += ∇_z_ρθ(κ₂ * (Yfρ * ∂f(Yc.ρθ / Yc.ρ)))\n\n Spaces.weighted_dss!(dYc)\n Spaces.weighted_dss!(dρw)\n return dY\nend\n\n# init simulation\nfunction atm_init(; xmin = -500, xmax = 500, zmin = 0, zmax = 1000, npoly = 3, helem = 20, velem = 20, bc = nothing)\n\n # construct domain spaces\n hv_center_space, hv_face_space = hvspace_2D((xmin, xmax), (zmin, zmax), helem, velem, npoly) # [m]\n center_coords = Fields.coordinate_field(hv_center_space)\n face_coords = Fields.coordinate_field(hv_face_space)\n domain = (hv_center_space = hv_center_space, hv_face_space = hv_face_space)\n\n # initialize prognostic variables\n Yc = map(center_coords) do coord\n sea_breeze = init_sea_breeze_2d(coord.x, coord.z)\n sea_breeze\n end\n\n ρw = map(face_coords) do coord\n Geometry.WVector(0.0)\n end\n\n Y = Fields.FieldVector(Yc = Yc, ρw = ρw)\n\n # select boundary conditions\n if bc === nothing\n bc = (\n ρθ = (bottom = CoupledFlux(), top = ZeroFlux()),\n ρu = nothing, # for now BCs are hard coded, except for ρθ\n )\n end\n\n return Y, bc, domain\nend\n\nusing OrdinaryDiffEq\nfunction atm_run!(Y, bc, domain)\n dYdt = similar(Y)\n params = (aux_params = 0.0, T_sfc = 1.0, bc = bc, domain = domain)\n atm_rhs!(dYdt, Y, params, 0.0)\n prob = ODEProblem(atm_rhs!, Y, (0.0, 250.0), params)\n Δt = 0.025\n sol = solve(prob, SSPRK33(), dt = Δt, saveat = 1.0, progress = true, progress_message = (dt, u, params, t) -> t)\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Atmos-Wrappers","page":"Atmospheric Model","title":"Coupled Atmos Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"# Atmos Simulation - later to live in ClimaAtmos\nstruct AtmosSimulation <: ClimaCoupler.AbstractAtmosSimulation\n integrator::Any\nend\n\nfunction AtmosSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n atm_prob = ODEProblem(atm_rhs!, Y_init, (t_start, t_end), p)\n\n atm_integ = init(\n atm_prob,\n timestepper,\n dt = dt,\n saveat = saveat,\n progress = true,\n progress_message = (dt, u, params, t) -> t,\n callback = callbacks,\n )\n\n return AtmosSimulation(atm_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, atmos::AtmosSimulation)\n coupler_put!(coupler, :F_sfc, atmos.integrator.u.F_sfc, atmos)\nend\n\nfunction ClimaCoupler.coupler_pull!(atmos::AtmosSimulation, coupler::ClimaCoupler.CouplerState)\n # reset flux accumulator\n atmos.integrator.u.F_sfc .= 0.0 # reset surface flux to be accumulated\n\n T_sfc_ocean = coupler_get(coupler, :T_sfc_ocean, atmos)\n T_sfc_land = coupler_get(coupler, :T_sfc_land, atmos)\n atmos.integrator.p.T_sfc .= T_sfc_land .+ T_sfc_ocean\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/#Coupled-Boundary-Conditions","page":"Atmospheric Model","title":"Coupled Boundary Conditions","text":"","category":"section"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"The standalone atmosphere model uses two boundary condition methods in its tendency: bc_divF2C_bottom! and bc_divF2C_top!. Since the bottom boundary is coupled, bc_divF2C_bottom! must be altered when running in coupled mode to properly calculate and accumulate the boundary flux from the ocean and land components.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"To solve this, a CoupledFlux boundary tag is set for the bottom boundary during initialization. Then, a new method of bc_divF2C_bottom! is written to dispatch on the CoupledFlux boundary tag. This method can then compute the flux appropriately.","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"struct CoupledFlux <: BCtag end\nfunction bc_divF2C_bottom!(::CoupledFlux, dY, Y, p, t)\n # flux calculation\n Yc = Y.Yc\n uₕ = Yc.ρuₕ ./ Yc.ρ\n ρw = Y.ρw\n If2c = Operators.InterpolateF2C()\n Ic2f = Operators.InterpolateC2F(bottom = Operators.Extrapolate(), top = Operators.Extrapolate())\n w = If2c.(ρw) ./ Yc.ρ\n cuv = @. Geometry.UWVector(uₕ)\n windspeed = @. norm(cuv)\n windspeed_boundary = Fields.level(windspeed, 1)\n θ_boundary = Fields.level(Yc.ρθ ./ Yc.ρ, 1)\n ρ_boundary = Fields.level(Yc.ρ, 1)\n\n # build atmos face fields on surface boundary space to enable broadcasting\n windspeed_boundary = Fields.Field(Fields.field_values(windspeed_boundary), axes(p.T_sfc))\n θ_boundary = Fields.Field(Fields.field_values(θ_boundary), axes(p.T_sfc))\n ρ_boundary = Fields.Field(Fields.field_values(ρ_boundary), axes(p.T_sfc))\n\n λ = @. p.cpl_p.C_p * p.cpl_p.C_H * ρ_boundary * windspeed_boundary\n dθ = @. θ_boundary - p.T_sfc\n heat_flux = @. -λ * dθ\n @. dY.F_sfc += heat_flux # accumulation\n\n return Operators.SetValue(Geometry.WVector.(heat_flux))\nend","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"","category":"page"},{"location":"generated/sea_breeze/atmos_rhs/","page":"Atmospheric Model","title":"Atmospheric Model","text":"This page was generated using Literate.jl.","category":"page"},{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_add_map!\n ClimaCoupler.coupler_push!\n ClimaCoupler.coupler_pull!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get\n ClimaCoupler.coupler_get!","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"mutable struct CouplerState{FT, CF, RO}\n\nType for holding coupled fields. \n\nThis is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\nFields:\n\ncoupled_fields\nA dictionary of fields added to the coupler\nremap_operators\nA dictionary of remap operators between components\nΔt_coupled\nThe coupled timestep size\n\nContructors:\n\nCouplerState(coupled_fields, remap_operators, Δt_coupled)\n\ndefined at /home/runner/work/ClimaCoupler.jl/ClimaCoupler.jl/src/CouplerState/coupler_state.jl:29.\n\nCouplerState(Δt_coupled)\n\ndefined at /home/runner/work/ClimaCoupler.jl/ClimaCoupler.jl/src/CouplerState/coupler_state.jl:42.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler,\n fieldname,\n fieldvalue;\n write_sim,\n metadata\n)\n\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\nwrite_sim: the simulation can write to this field in the coupler.\nmetadata: a catch-all storage for any metadata associated with the field.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_add_map!","page":"Coupler State","title":"ClimaCoupler.coupler_add_map!","text":"coupler_add_map!(coupler, map_name, map)\n\n\nAdd a map to the coupler that is accessible with key mapname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nmapname: key to access the map in the coupler's map list.\nmap: a remap operator.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_push!","page":"Coupler State","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler, sim)\n\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_pull!","page":"Coupler State","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(sim, coupler)\n\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler, fieldname, fieldvalue, source_sim)\n\n\nSets coupler field fieldname to fieldvalue.\n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: the field being stored.\nsource_sim: the simulation that fieldvalue belongs to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler, fieldname)\n\n\nRetrieve coupler field fieldname without remapping.\n\nArguments\n\ncoupler: coupler object being accessed.\nfieldname: key to access the field in the coupler.\n\n\n\n\n\ncoupler_get(coupler, fieldname, target_sim)\n\n\nRetrieve coupler field fieldname and remap to target_sim's boundary space.\n\nArguments\n\ncoupler: coupler object being accessed.\nfieldname: key to access the field in the coupler.\ntarget_sim: the simulation that target_field belongs to.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get!","page":"Coupler State","title":"ClimaCoupler.coupler_get!","text":"coupler_get!(target_field, coupler, fieldname, target_sim)\n\n\nRetrieve coupler field fieldname, remap and store in target_field.\n\nArguments\n\ntarget_field: the field to be updated by the coupler.\ncoupler: coupler object being accessed.\nfieldname: key to access the field in the coupler.\ntarget_sim: the simulation that target_field belongs to.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Simulations-and-Timestepping","page":"Simulations & Timestepping","title":"Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/#Simulations-Interface","page":"Simulations & Timestepping","title":"Simulations Interface","text":"","category":"section"},{"location":"timestepping/","page":"Simulations & Timestepping","title":"Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution through the use of Simulations. A Simulation wraps a physical model and its time integrator; it contains all necessary information to execute a model run. Component models subtype ClimaCoupler.AbstractSimulation so that coupling methods can be implmented and dispatch by model type. Component Simulations are collected in a CoupledSimulation along with the coupler itself. This is the full coupled modeling system. ","category":"page"},{"location":"timestepping/","page":"Simulations & Timestepping","title":"Simulations & Timestepping","text":"When coupling, component models must implement three methods:","category":"page"},{"location":"timestepping/","page":"Simulations & Timestepping","title":"Simulations & Timestepping","text":"step!: advances the component model by a specified step size\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Simulations & Timestepping","title":"Simulations & Timestepping","text":"These methods hide each components backend implementations (for timestepping or field access) from the coupler, allowing heterogeneity in model backends and the standardization of some coupled timestepping schemes. However, like any other simulation, a CoupledSimulation may also implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Simulations & Timestepping","title":"Simulations & Timestepping","text":"ClimaCoupler.AbstractSimulation\nClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!","category":"page"},{"location":"timestepping/#ClimaCoupler.AbstractSimulation","page":"Simulations & Timestepping","title":"ClimaCoupler.AbstractSimulation","text":"abstract type AbstractSimulation\n\nAbstractSimulation\n\nAn abstract type representing a model simulation.\n\nFields:\n\nContructors:\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.CoupledSimulation","page":"Simulations & Timestepping","title":"ClimaCoupler.CoupledSimulation","text":"struct CoupledSimulation{CS, S, CPL, L, C} <: ClimaCoupler.AbstractCoupledSimulation\n\nA collection of coupled component simulations.\n\nFields:\n\ncoupler_solver\nThe coupled time-stepping scheme\nsimulations\nThe component simulations\ncoupler\nThe coupler\nlogger\nDiagnostic logger\nclock\nClock\n\nContructors:\n\nCoupledSimulation(\n coupler_solver,\n simulations,\n coupler,\n logger,\n clock\n)\n\ndefined at /home/runner/work/ClimaCoupler.jl/ClimaCoupler.jl/src/CoupledSimulations/coupled_simulation.jl:26.\n\n\n\n\n\n","category":"type"},{"location":"timestepping/#ClimaCoupler.run!","page":"Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(sim)\n\n\nrun!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\n\nstep!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"generated/sea_breeze/land_rhs/#Land-Model","page":"Land Model","title":"Land Model","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/#Slab-Land-ODE","page":"Land Model","title":"Slab Land ODE","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"For our land component, we solve a simple slab land ODE:","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"rho_l c_l H_l partial_t T_lnd = - F_integ Delta t_coupler","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"where rho_l = 1500 kg m ^-3, c_l=800 J K ^-1 kg ^-1, H_l=1 m are the density, specific heat and depth of the land slab,\nand F_integ is the integrated surface fluxes in time.","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Model-Code","page":"Land Model","title":"Model Code","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"function lnd_rhs!(du, u, (parameters, F_accumulated), t)\n \"\"\"\n Slab layer equation\n d(T_lnd)/dt = - (F_accumulated + G) / (h_lnd * ρ_lnd * c_lnd)\n where\n F_accumulated = F_integrated / Δt_coupler\n \"\"\"\n @unpack lnd_h, lnd_ρ, lnd_c = parameters\n @unpack T_sfc = du\n\n @. T_sfc = (-F_accumulated) / (lnd_h * lnd_ρ * lnd_c)\nend\n\n# set up domain\nfunction hspace_1D(xlim = (-π, π), npoly = 0, helem = 10)\n FT = Float64\n\n domain = Domains.IntervalDomain(Geometry.XPoint{FT}(xlim[1]) .. Geometry.XPoint{FT}(xlim[2]), periodic = true)\n mesh = Meshes.IntervalMesh(domain; nelems = helem)\n topology = Topologies.IntervalTopology(mesh)\n\n # Finite Volume Approximation: Gauss-Lobatto with 1pt per element\n quad = Spaces.Quadratures.GL{npoly + 1}()\n space = Spaces.SpectralElementSpace1D(topology, quad)\n\n return space\nend\n\n# init simulation\nfunction lnd_init(; xmin = -1000, xmax = 1000, helem = 20, npoly = 0)\n\n # construct domain spaces - get only surface layer (NB: z should be zero, not z = first central height)\n space = hspace_1D((xmin, xmax), npoly, helem)\n coords = Fields.coordinate_field(space)\n domain = space\n\n # initial condition\n T_sfc = map(coords) do coord\n T_sfc = 273.0\n end\n\n # prognostic variable\n Y = Fields.FieldVector(T_sfc = T_sfc)\n\n return Y, domain\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/#Coupled-Land-Wrappers","page":"Land Model","title":"Coupled Land Wrappers","text":"","category":"section"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"# Land Simulation - later to live in ClimaLSM\nstruct LandSimulation <: ClimaCoupler.AbstractLandSimulation\n integrator::Any\nend\n\nfunction LandSimulation(Y_init, t_start, dt, t_end, timestepper, p, saveat, callbacks = CallbackSet())\n lnd_prob = ODEProblem(lnd_rhs!, Y_init, (t_start, t_end), p)\n lnd_integ = init(lnd_prob, timestepper, dt = dt, saveat = saveat, callback = callbacks)\n return LandSimulation(lnd_integ)\nend\n\nfunction ClimaCoupler.coupler_push!(coupler::ClimaCoupler.CouplerState, land::LandSimulation)\n coupler_put!(coupler, :T_sfc_land, land.integrator.u.T_sfc, land)\nend\n\nfunction ClimaCoupler.coupler_pull!(land::LandSimulation, coupler::ClimaCoupler.CouplerState)\n coupler_get!(land.integrator.p.F_sfc, coupler, :F_sfc, land)\n land.integrator.p.F_sfc ./= coupler.Δt_coupled\nend","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"","category":"page"},{"location":"generated/sea_breeze/land_rhs/","page":"Land Model","title":"Land Model","text":"This page was generated using Literate.jl.","category":"page"}] +} diff --git a/previews/PR98/siteinfo.js b/previews/PR98/siteinfo.js new file mode 100644 index 000000000..79840ecbe --- /dev/null +++ b/previews/PR98/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR98"; diff --git a/previews/PR98/timestepping/index.html b/previews/PR98/timestepping/index.html new file mode 100644 index 000000000..7d0b0b393 --- /dev/null +++ b/previews/PR98/timestepping/index.html @@ -0,0 +1,10 @@ + +Simulations & Timestepping · ClimaCoupler.jl

                                                    Simulations & Timestepping

                                                    Simulations Interface

                                                    ClimaCoupler.jl organizes coupled models and their execution through the use of Simulations. A Simulation wraps a physical model and its time integrator; it contains all necessary information to execute a model run. Component models subtype ClimaCoupler.AbstractSimulation so that coupling methods can be implmented and dispatch by model type. Component Simulations are collected in a CoupledSimulation along with the coupler itself. This is the full coupled modeling system.

                                                    When coupling, component models must implement three methods:

                                                    • step!: advances the component model by a specified step size
                                                    • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                                    • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.

                                                    These methods hide each components backend implementations (for timestepping or field access) from the coupler, allowing heterogeneity in model backends and the standardization of some coupled timestepping schemes. However, like any other simulation, a CoupledSimulation may also implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                                    ClimaCoupler.CoupledSimulationType
                                                    struct CoupledSimulation{CS, S, CPL, L, C} <: ClimaCoupler.AbstractCoupledSimulation

                                                    A collection of coupled component simulations.

                                                    Fields:

                                                    • coupler_solver

                                                      The coupled time-stepping scheme

                                                    • simulations

                                                      The component simulations

                                                    • coupler

                                                      The coupler

                                                    • logger

                                                      Diagnostic logger

                                                    • clock

                                                      Clock

                                                    Contructors:

                                                    CoupledSimulation(
                                                    +    coupler_solver,
                                                    +    simulations,
                                                    +    coupler,
                                                    +    logger,
                                                    +    clock
                                                    +)

                                                    defined at /home/runner/work/ClimaCoupler.jl/ClimaCoupler.jl/src/CoupledSimulations/coupled_simulation.jl:26.

                                                    source
                                                    ClimaCoupler.run!Function
                                                    run!(sim)
                                                    +
                                                    run!(::CoupledSimulation)

                                                    A simple outer timestepping loop for coupled system runs.

                                                    This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                                    source
                                                    ClimaCoupler.step!Function
                                                    step!(sim, dt)
                                                    +
                                                    step!(sim, dt)

                                                    Advances a simulation by dt.

                                                    Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                                    source
                                                    diff --git a/previews/PR99/assets/documenter.js b/previews/PR99/assets/documenter.js new file mode 100644 index 000000000..15dc682b9 --- /dev/null +++ b/previews/PR99/assets/documenter.js @@ -0,0 +1,264 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($, hljs) { +$(document).ready(function() { + hljs.initHighlighting(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR99/assets/logo.svg b/previews/PR99/assets/logo.svg new file mode 100644 index 000000000..054c4562c --- /dev/null +++ b/previews/PR99/assets/logo.svg @@ -0,0 +1,184 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR99/assets/search.js b/previews/PR99/assets/search.js new file mode 100644 index 000000000..71ebd87ed --- /dev/null +++ b/previews/PR99/assets/search.js @@ -0,0 +1,251 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.6/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
                                                  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR99/assets/themes/documenter-dark.css b/previews/PR99/assets/themes/documenter-dark.css new file mode 100644 index 000000000..f866234ff --- /dev/null +++ b/previews/PR99/assets/themes/documenter-dark.css @@ -0,0 +1,7642 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close, .is-unselectable, html.theme--documenter-dark .button, html.theme--documenter-dark .file, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after, html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .box:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .delete, html.theme--documenter-dark .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .delete::after, html.theme--documenter-dark .modal-close::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:focus, html.theme--documenter-dark .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .delete:active, html.theme--documenter-dark .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete, html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.delete, html.theme--documenter-dark .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.delete, html.theme--documenter-dark .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .button.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, html.theme--documenter-dark .modal, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .button, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .button:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .is-active.button, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis { + outline: none; } + html.theme--documenter-dark .button[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], + fieldset[disabled] html.theme--documenter-dark .button, + html.theme--documenter-dark fieldset[disabled] .button, + fieldset[disabled] html.theme--documenter-dark .input, + html.theme--documenter-dark fieldset[disabled] .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + html.theme--documenter-dark fieldset[disabled] .textarea, + fieldset[disabled] html.theme--documenter-dark .select select, + html.theme--documenter-dark .select fieldset[disabled] select, + fieldset[disabled] html.theme--documenter-dark .file-cta, + html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, + fieldset[disabled] html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
                                                    that is identified by id #documenter. + */ + /* a11y-dark theme */ + /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */ + /* @author: ericwbailey */ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #e74c3c; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + html.theme--documenter-dark hr { + background-color: #282f2f; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + html.theme--documenter-dark img { + height: auto; + max-width: 100%; } + html.theme--documenter-dark input[type="checkbox"], + html.theme--documenter-dark input[type="radio"] { + vertical-align: baseline; } + html.theme--documenter-dark small { + font-size: 0.875em; } + html.theme--documenter-dark span { + font-style: inherit; + font-weight: inherit; } + html.theme--documenter-dark strong { + color: #f2f2f2; + font-weight: 700; } + html.theme--documenter-dark fieldset { + border: none; } + html.theme--documenter-dark pre { + -webkit-overflow-scrolling: touch; + background-color: #282f2f; + color: #fff; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + html.theme--documenter-dark .button.is-white.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-white.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-black.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + html.theme--documenter-dark .button.is-black.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark, + fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], + fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .table td.is-black, + html.theme--documenter-dark .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + html.theme--documenter-dark .table thead td, + html.theme--documenter-dark .table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .table tfoot { + background-color: transparent; } + html.theme--documenter-dark .table tfoot td, + html.theme--documenter-dark .table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .table tbody { + background-color: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag:not(body).is-white, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-white, html.theme--documenter-dark .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .tag:not(body).is-black, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-black, html.theme--documenter-dark .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .tag:not(body).is-light, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-light, html.theme--documenter-dark .content kbd:not(body).is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag:not(body).is-dark, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-dark, html.theme--documenter-dark .content kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag:not(body).is-primary, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body), html.theme--documenter-dark .content kbd:not(body).is-primary { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-link, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-link, html.theme--documenter-dark .content kbd:not(body).is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-info, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-info, html.theme--documenter-dark .content kbd:not(body).is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-success, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-success, html.theme--documenter-dark .content kbd:not(body).is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-warning, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-warning, html.theme--documenter-dark .content kbd:not(body).is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-danger, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-danger, html.theme--documenter-dark .content kbd:not(body).is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag:not(body).is-normal, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-normal, html.theme--documenter-dark .content kbd:not(body).is-normal { + font-size: 0.85em; } + html.theme--documenter-dark .tag:not(body).is-medium, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-medium, html.theme--documenter-dark .content kbd:not(body).is-medium { + font-size: 15px; } + html.theme--documenter-dark .tag:not(body).is-large, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-large, html.theme--documenter-dark .content kbd:not(body).is-large { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body).is-delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete, html.theme--documenter-dark .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before, html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag:not(body).is-delete::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::before, html.theme--documenter-dark .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag:not(body).is-delete::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete::after, html.theme--documenter-dark .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag:not(body).is-delete:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, html.theme--documenter-dark .content kbd:not(body).is-delete:hover, html.theme--documenter-dark .tag:not(body).is-delete:focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, html.theme--documenter-dark .content kbd:not(body).is-delete:focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag:not(body).is-delete:active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-delete:active, html.theme--documenter-dark .content kbd:not(body).is-delete:active { + background-color: #111414; } + html.theme--documenter-dark .tag:not(body).is-rounded, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body).is-rounded, html.theme--documenter-dark .content kbd:not(body).is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea, html.theme--documenter-dark .select select { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .select select.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .select select.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .select select[disabled], + fieldset[disabled] html.theme--documenter-dark .input, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + fieldset[disabled] html.theme--documenter-dark .textarea, + fieldset[disabled] html.theme--documenter-dark .select select { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .select select[disabled]::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .select select[disabled]:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, + fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly], html.theme--documenter-dark .textarea[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white, html.theme--documenter-dark .is-white.textarea { + border-color: white; } + html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white.is-active, html.theme--documenter-dark .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black, html.theme--documenter-dark .is-black.textarea { + border-color: #0a0a0a; } + html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black.is-active, html.theme--documenter-dark .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light, html.theme--documenter-dark .is-light.textarea { + border-color: #ecf0f1; } + html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light.is-active, html.theme--documenter-dark .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark .content kbd.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea { + border-color: #282f2f; } + html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink { + border-color: #375a7f; } + html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link, html.theme--documenter-dark .is-link.textarea { + border-color: #1abc9c; } + html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link.is-active, html.theme--documenter-dark .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info, html.theme--documenter-dark .is-info.textarea { + border-color: #024c7d; } + html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info.is-active, html.theme--documenter-dark .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success, html.theme--documenter-dark .is-success.textarea { + border-color: #008438; } + html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success.is-active, html.theme--documenter-dark .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning, html.theme--documenter-dark .is-warning.textarea { + border-color: #ad8100; } + html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, html.theme--documenter-dark .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger, html.theme--documenter-dark .is-danger.textarea { + border-color: #9e1b0d; } + html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, html.theme--documenter-dark .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .is-small.textarea { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium, html.theme--documenter-dark .is-medium.textarea { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large, html.theme--documenter-dark .is-large.textarea { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth, html.theme--documenter-dark .is-fullwidth.textarea { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline, html.theme--documenter-dark .is-inline.textarea { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .checkbox, html.theme--documenter-dark .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .checkbox input, html.theme--documenter-dark .radio input { + cursor: pointer; } + html.theme--documenter-dark .checkbox:hover, html.theme--documenter-dark .radio:hover { + color: #8c9b9d; } + html.theme--documenter-dark .checkbox[disabled], html.theme--documenter-dark .radio[disabled], + fieldset[disabled] html.theme--documenter-dark .checkbox, + fieldset[disabled] html.theme--documenter-dark .radio { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, + fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered { + border-color: #f2f2f2; } + html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + html.theme--documenter-dark .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select { + border-color: #0a0a0a; } + html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered { + border-color: black; } + html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + html.theme--documenter-dark .select.is-light:not(:hover)::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select { + border-color: #ecf0f1; } + html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered { + border-color: #dde4e6; } + html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select { + border-color: #282f2f; } + html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered { + border-color: #1d2122; } + html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select { + border-color: #375a7f; } + html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #2f4d6d; } + html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .select.is-link:not(:hover)::after { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select { + border-color: #1abc9c; } + html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered { + border-color: #17a689; } + html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select.is-info:not(:hover)::after { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select { + border-color: #024c7d; } + html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered { + border-color: #023d64; } + html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .select.is-success:not(:hover)::after { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select { + border-color: #008438; } + html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered { + border-color: #006b2d; } + html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .select.is-warning:not(:hover)::after { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select { + border-color: #ad8100; } + html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered { + border-color: #946e00; } + html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .select.is-danger:not(:hover)::after { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select { + border-color: #9e1b0d; } + html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered { + border-color: #86170b; } + html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + html.theme--documenter-dark .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning .file-cta { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger .file-cta { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.4em; } + html.theme--documenter-dark .file.has-name.is-empty .file-name { + display: none; } + html.theme--documenter-dark .file.is-boxed .file-label { + flex-direction: column; } + html.theme--documenter-dark .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + html.theme--documenter-dark .file.is-boxed .file-name { + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .file.is-boxed .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + html.theme--documenter-dark .file.is-boxed.has-name .file-cta { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.4em; + border-width: 0 1px 1px; } + html.theme--documenter-dark .file.is-centered { + justify-content: center; } + html.theme--documenter-dark .file.is-fullwidth .file-label { + width: 100%; } + html.theme--documenter-dark .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + html.theme--documenter-dark .file.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .file.is-right .file-cta { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-focused:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-focused:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon, + html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.4em; } + html.theme--documenter-dark .level img { + display: inline-block; + vertical-align: top; } + html.theme--documenter-dark .level.is-mobile { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left, + html.theme--documenter-dark .level.is-mobile .level-right { + display: flex; } + html.theme--documenter-dark .level.is-mobile .level-left + .level-right { + margin-top: 0; } + html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level { + display: flex; } + html.theme--documenter-dark .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + html.theme--documenter-dark .level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + html.theme--documenter-dark .level-item .title, + html.theme--documenter-dark .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + html.theme--documenter-dark .level-left, + html.theme--documenter-dark .level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .level-left .level-item.is-flexible, + html.theme--documenter-dark .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left .level-item:not(:last-child), + html.theme--documenter-dark .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + html.theme--documenter-dark .menu-label:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .menu-label:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .message { + background-color: #282f2f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.4em; + border-style: solid; + border-width: 0 0 0 4px; + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .message-body code, + html.theme--documenter-dark .message-body pre { + background-color: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + html.theme--documenter-dark .navbar { + background-color: #375a7f; + min-height: 4rem; + position: relative; + z-index: 30; } + html.theme--documenter-dark .navbar.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link { + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #1abc9c; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #1abc9c; + padding-bottom: calc(0.5rem - 3px); } + html.theme--documenter-dark .navbar-content { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after { + border-color: #fff; + margin-top: -0.375em; + right: 1.125em; } + html.theme--documenter-dark .navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + html.theme--documenter-dark .navbar-divider { + background-color: rgba(0, 0, 0, 0.2); + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar > .container { + display: block; } + html.theme--documenter-dark .navbar-brand .navbar-item, + html.theme--documenter-dark .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-link::after { + display: none; } + html.theme--documenter-dark .navbar-menu { + background-color: #375a7f; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + html.theme--documenter-dark .navbar-menu.is-active { + display: block; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-touch { + top: 0; } + html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 4rem); + overflow: auto; } + html.theme--documenter-dark html.has-navbar-fixed-top-touch, + html.theme--documenter-dark body.has-navbar-fixed-top-touch { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-touch, + html.theme--documenter-dark body.has-navbar-fixed-bottom-touch { + padding-bottom: 4rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar, + html.theme--documenter-dark .navbar-menu, + html.theme--documenter-dark .navbar-start, + html.theme--documenter-dark .navbar-end { + align-items: stretch; + display: flex; } + html.theme--documenter-dark .navbar { + min-height: 4rem; } + html.theme--documenter-dark .navbar.is-spaced { + padding: 1rem 2rem; } + html.theme--documenter-dark .navbar.is-spaced .navbar-start, + html.theme--documenter-dark .navbar.is-spaced .navbar-end { + align-items: center; } + html.theme--documenter-dark .navbar.is-spaced a.navbar-item, + html.theme--documenter-dark .navbar.is-spaced .navbar-link { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus, + html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover, + html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed { + border-radius: 8px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + html.theme--documenter-dark .navbar-dropdown.is-right { + left: auto; + right: 0; } + html.theme--documenter-dark .navbar-divider { + display: block; } + html.theme--documenter-dark .navbar > .container .navbar-brand, + html.theme--documenter-dark .container > .navbar .navbar-brand { + margin-left: -.75rem; } + html.theme--documenter-dark .navbar > .container .navbar-menu, + html.theme--documenter-dark .container > .navbar .navbar-menu { + margin-right: -.75rem; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .navbar.is-fixed-top-desktop { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top-desktop, + html.theme--documenter-dark body.has-navbar-fixed-top-desktop { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop, + html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop { + padding-bottom: 4rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-top, + html.theme--documenter-dark body.has-spaced-navbar-fixed-top { + padding-top: 6rem; } + html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom, + html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom { + padding-bottom: 6rem; } + html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link.is-active { + color: #1abc9c; } + html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover), + html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link { + background-color: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .tabs.is-boxed a:hover { + background-color: #282f2f; + border-bottom-color: #5e6d6f; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + html.theme--documenter-dark .columns.is-centered { + justify-content: center; } + html.theme--documenter-dark .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + html.theme--documenter-dark .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + html.theme--documenter-dark .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .columns.is-gapless:last-child { + margin-bottom: 0; } + html.theme--documenter-dark .columns.is-mobile { + display: flex; } + html.theme--documenter-dark .columns.is-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-desktop { + display: flex; } } + html.theme--documenter-dark .columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + html.theme--documenter-dark .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + html.theme--documenter-dark .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + html.theme--documenter-dark .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + html.theme--documenter-dark .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + html.theme--documenter-dark .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + html.theme--documenter-dark .tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + html.theme--documenter-dark .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.33333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.66667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.33333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.66667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.33333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.66667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.33333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.66667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-white strong { + color: inherit; } + html.theme--documenter-dark .hero.is-white .title { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + html.theme--documenter-dark .hero.is-white .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-white .navbar-menu { + background-color: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-black strong { + color: inherit; } + html.theme--documenter-dark .hero.is-black .title { + color: white; } + html.theme--documenter-dark .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-black .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + html.theme--documenter-dark .hero.is-black .navbar-item, + html.theme--documenter-dark .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-black .navbar-link:hover, + html.theme--documenter-dark .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus { + box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); } + html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover { + background-color: white; } + html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus { + border-color: white; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); } + html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover { + background-color: #1d1d1d; } + html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus { + border-color: #0a0a0a; + box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); } + html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover { + background-color: white; } + html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus { + border-color: #ecf0f1; + box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); } + html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover { + background-color: #3a4344; } + html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus { + border-color: #282f2f; + box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); } + html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover { + background-color: #436d9a; } + html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus { + border-color: #375a7f; + box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); } + html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover { + background-color: #1fdeb8; } + html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus { + border-color: #1abc9c; + box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); } + html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover { + background-color: #0363a3; } + html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus { + border-color: #024c7d; + box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); } + html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover { + background-color: #00aa48; } + html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus { + border-color: #008438; + box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); } + html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover { + background-color: #d39e00; } + html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus { + border-color: #ad8100; + box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); } + html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover { + background-color: #c12110; } + html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus { + border-color: #9e1b0d; + box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); } + html.theme--documenter-dark .label { + color: #dbdee0; } + html.theme--documenter-dark .button, + html.theme--documenter-dark .control.has-icons-left .icon, + html.theme--documenter-dark .control.has-icons-right .icon, + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .select, + html.theme--documenter-dark .select select, + html.theme--documenter-dark .textarea { + height: 2.5em; } + + html.theme--documenter-dark .input, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark .textarea { + transition: all 200ms ease; + box-shadow: none; + border-width: 1px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .select:after, + html.theme--documenter-dark .select select { + border-width: 1px; } + html.theme--documenter-dark .control.has-addons .button, + html.theme--documenter-dark .control.has-addons .input, + html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input, + html.theme--documenter-dark .control.has-addons .select { + margin-right: -1px; } + html.theme--documenter-dark .notification { + background-color: #343c3d; } + html.theme--documenter-dark .card { + box-shadow: none; + border: 1px solid #343c3d; + background-color: #282f2f; + border-radius: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-footer { + background-color: rgba(18, 18, 18, 0.2); } + html.theme--documenter-dark .card .card-footer, + html.theme--documenter-dark .card .card-footer-item { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .notification.is-white a:not(.button) { + color: #0a0a0a; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-black a:not(.button) { + color: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .docstring > section > a.docs-sourcelink, html.theme--documenter-dark .content kbd { + border-radius: 0.4em; } + html.theme--documenter-dark .menu-list a { + transition: all 300ms ease; } + html.theme--documenter-dark .modal-card-body { + background-color: #282f2f; } + html.theme--documenter-dark .modal-card-foot, + html.theme--documenter-dark .modal-card-head { + border-color: #343c3d; } + html.theme--documenter-dark .message-header { + font-weight: 700; + background-color: #343c3d; + color: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.4em; } + html.theme--documenter-dark .navbar.is-transparent { + background: none; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .navbar .navbar-menu { + background-color: #375a7f; + border-radius: 0 0 0.4em 0.4em; } } + html.theme--documenter-dark .hero .navbar, + html.theme--documenter-dark body > .navbar { + border-radius: 0; } + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-previous { + border-width: 1px; } + html.theme--documenter-dark .panel-block, + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs { + border-width: 1px; } + html.theme--documenter-dark .panel-block:first-child, + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child { + border-top-width: 1px; } + html.theme--documenter-dark .panel-heading { + font-weight: 700; } + html.theme--documenter-dark .panel-tabs a { + border-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #17a689; } + html.theme--documenter-dark .panel-block:hover { + color: #1dd2af; } + html.theme--documenter-dark .panel-block:hover .panel-icon { + color: #1dd2af; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #17a689; } + html.theme--documenter-dark .tabs a { + border-bottom-width: 1px; + margin-bottom: -1px; } + html.theme--documenter-dark .tabs ul { + border-bottom-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed a { + border-width: 1px; } + html.theme--documenter-dark .tabs.is-boxed li.is-active a { + background-color: #1f2424; } + html.theme--documenter-dark .tabs.is-toggle li a { + border-width: 1px; + margin-bottom: 0; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-info { + background-color: #282f2f; + border-color: #024c7d; } + html.theme--documenter-dark .admonition.is-info > .admonition-header { + background-color: #024c7d; } + html.theme--documenter-dark .admonition.is-success { + background-color: #282f2f; + border-color: #008438; } + html.theme--documenter-dark .admonition.is-success > .admonition-header { + background-color: #008438; } + html.theme--documenter-dark .admonition.is-warning { + background-color: #282f2f; + border-color: #ad8100; } + html.theme--documenter-dark .admonition.is-warning > .admonition-header { + background-color: #ad8100; } + html.theme--documenter-dark .admonition.is-danger { + background-color: #282f2f; + border-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-danger > .admonition-header { + background-color: #9e1b0d; } + html.theme--documenter-dark .admonition.is-compat { + background-color: #282f2f; + border-color: #137886; } + html.theme--documenter-dark .admonition.is-compat > .admonition-header { + background-color: #137886; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 1em 1.25em; } + html.theme--documenter-dark .admonition-body pre { + background-color: #282f2f; } + html.theme--documenter-dark .admonition-body code { + background-color: rgba(255, 255, 255, 0.05); } + html.theme--documenter-dark .docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > section:last-child { + border-bottom: none; } + html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + html.theme--documenter-dark .documenter-example-output { + background-color: #1f2424; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; + padding: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #171717; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar { + left: 0; + top: 0; } } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #5e6d6f; + display: none; + padding: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #5e6d6f; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs { + display: block; + overflow-x: auto; + background: #2b2b2b; + color: #f8f8f2; + padding: 0.5em; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-builtin-name, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR99/assets/themes/documenter-light.css b/previews/PR99/assets/themes/documenter-light.css new file mode 100644 index 000000000..57fdf947d --- /dev/null +++ b/previews/PR99/assets/themes/documenter-light.css @@ -0,0 +1,7630 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.delete, .modal-close, .is-unselectable, .button, .file, .breadcrumb, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .tabs { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .tabs:not(:last-child), .admonition:not(:last-child) { + margin-bottom: 1.5rem; } + +.delete, .modal-close { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .delete::before, .modal-close::before, .delete::after, .modal-close::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .delete::before, .modal-close::before { + height: 2px; + width: 50%; } + .delete::after, .modal-close::after { + height: 50%; + width: 2px; } + .delete:hover, .modal-close:hover, .delete:focus, .modal-close:focus { + background-color: rgba(10, 10, 10, 0.3); } + .delete:active, .modal-close:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete, .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.delete, .is-medium.modal-close { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.delete, .is-large.modal-close { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.button.is-loading::after, .loader, .select.is-loading::after, .control.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.is-overlay, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .modal, .modal-background, .hero-video { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.button, .input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select, .file-cta, +.file-name, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .button:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .file-cta:focus, + .file-name:focus, .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .is-focused.button, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta, + .is-focused.file-name, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .button:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .file-cta:active, + .file-name:active, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .is-active.button, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active, .is-active.file-cta, + .is-active.file-name, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis { + outline: none; } + .button[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled], + .file-name[disabled], .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], + fieldset[disabled] .button, + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select, + fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, + fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + +a { + color: #2e63b8; + cursor: pointer; + text-decoration: none; } + a strong { + color: currentColor; } + a:hover { + color: #363636; } + +code { + background-color: rgba(0, 0, 0, 0.05); + color: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + border: none; + display: block; + height: 2px; + margin: 1.5rem 0; } + +img { + height: auto; + max-width: 100%; } + +input[type="checkbox"], +input[type="radio"] { + vertical-align: baseline; } + +small { + font-size: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.75rem !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 1rem !important; } + .is-size-7-mobile { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 1rem !important; } + .is-size-7-tablet { + font-size: 0.75rem !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 1rem !important; } + .is-size-7-touch { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 1rem !important; } + .is-size-7-desktop { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 1rem !important; } + .is-size-7-widescreen { + font-size: 0.75rem !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 1rem !important; } + .is-size-7-fullhd { + font-size: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #0f81cc !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #7a7a7a !important; } + +.has-background-grey { + background-color: #7a7a7a !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "Roboto Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #2e63b8; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], + fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:hover, .button.is-white.is-hovered { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus, .button.is-white.is-focused { + border-color: transparent; + color: #0a0a0a; } + .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .button.is-white:active, .button.is-white.is-active { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .button.is-white[disabled], + fieldset[disabled] .button.is-white { + background-color: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], + fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused { + background-color: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-white.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-white.is-inverted.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .button.is-black:active, .button.is-black.is-active { + background-color: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], + fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-black.is-inverted[disabled], + fieldset[disabled] .button.is-black.is-inverted { + background-color: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + color: #0a0a0a; } + .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .button.is-black.is-outlined.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent white white !important; } + .button.is-black.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-outlined { + background-color: transparent; + border-color: #0a0a0a; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused { + background-color: white; + color: #0a0a0a; } + .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-black.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-black.is-inverted.is-outlined { + background-color: transparent; + border-color: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], + fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], + fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], + fieldset[disabled] .button.is-dark, + fieldset[disabled] .content kbd.button, + .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], + fieldset[disabled] .button.is-dark.is-inverted, + fieldset[disabled] .content kbd.button.is-inverted, + .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined, .content kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-outlined, + fieldset[disabled] .content kbd.button.is-outlined, + .content fieldset[disabled] kbd.button.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-dark.is-inverted.is-outlined, + fieldset[disabled] .content kbd.button.is-inverted.is-outlined, + .content fieldset[disabled] kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary, + fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted, + fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], + fieldset[disabled] .button.is-primary.is-inverted.is-outlined, + fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], + fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], + fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], + fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], + fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], + fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], + fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], + fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], + fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], + fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], + fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], + fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], + fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #7a7a7a; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } + +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + font-weight: 600; + line-height: 1.125; } + +.content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + .content h1:not(:first-child) { + margin-top: 1em; } + +.content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + .content h2:not(:first-child) { + margin-top: 1.1428em; } + +.content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + .content h3:not(:first-child) { + margin-top: 1.3333em; } + +.content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + +.content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + +.content h6 { + font-size: 1em; + margin-bottom: 1em; } + +.content blockquote { + background-color: whitesmoke; + border-left: 5px solid #dbdbdb; + padding: 1.25em 1.5em; } + +.content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + .content ol:not([type]) { + list-style-type: decimal; } + .content ol:not([type]).is-lower-alpha { + list-style-type: lower-alpha; } + .content ol:not([type]).is-lower-roman { + list-style-type: lower-roman; } + .content ol:not([type]).is-upper-alpha { + list-style-type: upper-alpha; } + .content ol:not([type]).is-upper-roman { + list-style-type: upper-roman; } + +.content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + .content ul ul ul { + list-style-type: square; } + +.content dd { + margin-left: 2em; } + +.content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + .content figure:not(:first-child) { + margin-top: 2em; } + .content figure:not(:last-child) { + margin-bottom: 2em; } + .content figure img { + display: inline-block; } + .content figure figcaption { + font-style: italic; } + +.content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0.7rem 0.5rem; + white-space: pre; + word-wrap: normal; } + +.content sup, +.content sub { + font-size: 75%; } + +.content table { + width: 100%; } + .content table td, + .content table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .content table th { + color: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .content table tbody tr:last-child td, + .content table tbody tr:last-child th { + border-bottom-width: 0; } + +.content .tabs li + li { + margin-top: 0; } + +.content.is-small, #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.75rem; } + .progress.is-medium { + height: 1.25rem; } + .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + +.table { + background-color: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .table th:not([align]) { + text-align: left; } + .table tr.is-selected { + background-color: #4eb5de; + color: #fff; } + .table tr.is-selected a, + .table tr.is-selected strong { + color: currentColor; } + .table tr.is-selected td, + .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + .table thead { + background-color: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .table tbody tr:last-child td, + .table tbody tr:last-child th { + border-bottom-width: 0; } + .table.is-bordered td, + .table.is-bordered th { + border-width: 1px; } + .table.is-bordered tr:last-child td, + .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + .table.is-fullwidth { + width: 100%; } + .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #fafafa; } + .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .docstring > section > a.docs-sourcelink, .tags .content kbd, .content .tags kbd { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .docstring > section > a.docs-sourcelink, .tags.is-centered .content kbd, .content .tags.is-centered kbd { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .docstring > section > a.docs-sourcelink, .tags.has-addons .content kbd, .content .tags.has-addons kbd { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete, .content kbd:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag:not(body).is-white, .docstring > section > a.docs-sourcelink:not(body).is-white, .content kbd:not(body).is-white { + background-color: white; + color: #0a0a0a; } + .tag:not(body).is-black, .docstring > section > a.docs-sourcelink:not(body).is-black, .content kbd:not(body).is-black { + background-color: #0a0a0a; + color: white; } + .tag:not(body).is-light, .docstring > section > a.docs-sourcelink:not(body).is-light, .content kbd:not(body).is-light { + background-color: whitesmoke; + color: #363636; } + .tag:not(body).is-dark, .docstring > section > a.docs-sourcelink:not(body).is-dark, .content kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag:not(body).is-primary, .docstring > section > a.docs-sourcelink:not(body), .content kbd:not(body).is-primary { + background-color: #4eb5de; + color: #fff; } + .tag:not(body).is-link, .docstring > section > a.docs-sourcelink:not(body).is-link, .content kbd:not(body).is-link { + background-color: #2e63b8; + color: #fff; } + .tag:not(body).is-info, .docstring > section > a.docs-sourcelink:not(body).is-info, .content kbd:not(body).is-info { + background-color: #209cee; + color: #fff; } + .tag:not(body).is-success, .docstring > section > a.docs-sourcelink:not(body).is-success, .content kbd:not(body).is-success { + background-color: #22c35b; + color: #fff; } + .tag:not(body).is-warning, .docstring > section > a.docs-sourcelink:not(body).is-warning, .content kbd:not(body).is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag:not(body).is-danger, .docstring > section > a.docs-sourcelink:not(body).is-danger, .content kbd:not(body).is-danger { + background-color: #da0b00; + color: #fff; } + .tag:not(body).is-normal, .docstring > section > a.docs-sourcelink:not(body).is-normal, .content kbd:not(body).is-normal { + font-size: 0.75rem; } + .tag:not(body).is-medium, .docstring > section > a.docs-sourcelink:not(body).is-medium, .content kbd:not(body).is-medium { + font-size: 1rem; } + .tag:not(body).is-large, .docstring > section > a.docs-sourcelink:not(body).is-large, .content kbd:not(body).is-large { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag:not(body).is-delete, .docstring > section > a.docs-sourcelink:not(body).is-delete, .content kbd:not(body).is-delete { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before, .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag:not(body).is-delete::before, .docstring > section > a.docs-sourcelink:not(body).is-delete::before, .content kbd:not(body).is-delete::before { + height: 1px; + width: 50%; } + .tag:not(body).is-delete::after, .docstring > section > a.docs-sourcelink:not(body).is-delete::after, .content kbd:not(body).is-delete::after { + height: 50%; + width: 1px; } + .tag:not(body).is-delete:hover, .docstring > section > a.docs-sourcelink:not(body).is-delete:hover, .content kbd:not(body).is-delete:hover, .tag:not(body).is-delete:focus, .docstring > section > a.docs-sourcelink:not(body).is-delete:focus, .content kbd:not(body).is-delete:focus { + background-color: #e8e8e8; } + .tag:not(body).is-delete:active, .docstring > section > a.docs-sourcelink:not(body).is-delete:active, .content kbd:not(body).is-delete:active { + background-color: #dbdbdb; } + .tag:not(body).is-rounded, .docstring > section > a.docs-sourcelink:not(body).is-rounded, .content kbd:not(body).is-rounded, #documenter .docs-sidebar form.docs-search > input.tag:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .docstring > section > a.docs-sourcelink, .title .content kbd, .content .title kbd, + .subtitle .tag, + .subtitle .docstring > section > a.docs-sourcelink, + .subtitle .content kbd, + .content .subtitle kbd { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea, .select select { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, .textarea::-moz-placeholder, .select select::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .select select::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, .textarea:-moz-placeholder, .select select:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, .textarea:-ms-input-placeholder, .select select:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .textarea:hover, .select select:hover, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered, .is-hovered.textarea, .select select.is-hovered { + border-color: #b5b5b5; } + .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .textarea:focus, .select select:focus, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.textarea, .select select.is-focused, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .textarea:active, .select select:active, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.textarea, .select select.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .textarea[disabled], .select select[disabled], + fieldset[disabled] .input, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, + fieldset[disabled] .textarea, + fieldset[disabled] .select select, + .select fieldset[disabled] select { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #7a7a7a; } + .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .select select[disabled]::-moz-placeholder, + fieldset[disabled] .input::-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder, + fieldset[disabled] .textarea::-moz-placeholder, + fieldset[disabled] .select select::-moz-placeholder, + .select fieldset[disabled] select::-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .select select[disabled]::-webkit-input-placeholder, + fieldset[disabled] .input::-webkit-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder, + fieldset[disabled] .textarea::-webkit-input-placeholder, + fieldset[disabled] .select select::-webkit-input-placeholder, + .select fieldset[disabled] select::-webkit-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .select select[disabled]:-moz-placeholder, + fieldset[disabled] .input:-moz-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder, + fieldset[disabled] .textarea:-moz-placeholder, + fieldset[disabled] .select select:-moz-placeholder, + .select fieldset[disabled] select:-moz-placeholder { + color: rgba(122, 122, 122, 0.3); } + .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .select select[disabled]:-ms-input-placeholder, + fieldset[disabled] .input:-ms-input-placeholder, + fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, + #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder, + fieldset[disabled] .textarea:-ms-input-placeholder, + fieldset[disabled] .select select:-ms-input-placeholder, + .select fieldset[disabled] select:-ms-input-placeholder { + color: rgba(122, 122, 122, 0.3); } + +.input, #documenter .docs-sidebar form.docs-search > input, .textarea { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly], .textarea[readonly] { + box-shadow: none; } + .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white, .is-white.textarea { + border-color: white; } + .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.textarea:focus, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-focused, .is-white.is-focused.textarea, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.textarea:active, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-white.is-active, .is-white.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black, .is-black.textarea { + border-color: #0a0a0a; } + .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.textarea:focus, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-focused, .is-black.is-focused.textarea, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.textarea:active, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-black.is-active, .is-black.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light, .is-light.textarea { + border-color: whitesmoke; } + .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.textarea:focus, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-focused, .is-light.is-focused.textarea, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.textarea:active, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-light.is-active, .is-light.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .is-dark.input, .content kbd.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .is-dark.textarea, .content kbd.textarea { + border-color: #363636; } + .is-dark.input:focus, .content kbd.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.is-focused.input, .content kbd.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-focused, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.input:active, .content kbd.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.is-active.input, .content kbd.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-dark.is-active, .is-dark.is-active.textarea, .content kbd.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .is-primary.input, .docstring > section > a.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary, .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink { + border-color: #4eb5de; } + .is-primary.input:focus, .docstring > section > a.input.docs-sourcelink:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.is-focused.input, .docstring > section > a.is-focused.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-focused, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.input:active, .docstring > section > a.input.docs-sourcelink:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.is-active.input, .docstring > section > a.is-active.input.docs-sourcelink, #documenter .docs-sidebar form.docs-search > input.is-primary.is-active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link, .is-link.textarea { + border-color: #2e63b8; } + .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.textarea:focus, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-focused, .is-link.is-focused.textarea, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.textarea:active, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-link.is-active, .is-link.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info, .is-info.textarea { + border-color: #209cee; } + .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.textarea:focus, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-focused, .is-info.is-focused.textarea, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.textarea:active, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-info.is-active, .is-info.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success, .is-success.textarea { + border-color: #22c35b; } + .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.textarea:focus, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-focused, .is-success.is-focused.textarea, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.textarea:active, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-success.is-active, .is-success.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning, .is-warning.textarea { + border-color: #ffdd57; } + .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.textarea:focus, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-focused, .is-warning.is-focused.textarea, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.textarea:active, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-warning.is-active, .is-warning.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger, .is-danger.textarea { + border-color: #da0b00; } + .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.textarea:focus, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-focused, .is-danger.is-focused.textarea, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.textarea:active, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-danger.is-active, .is-danger.is-active.textarea { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .is-small.input, #documenter .docs-sidebar form.docs-search > input, .is-small.textarea { + border-radius: 2px; + font-size: 0.75rem; } + .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium, .is-medium.textarea { + font-size: 1.25rem; } + .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large, .is-large.textarea { + font-size: 1.5rem; } + .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth, .is-fullwidth.textarea { + display: block; + width: 100%; } + .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline, .is-inline.textarea { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.checkbox, .radio { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .checkbox input, .radio input { + cursor: pointer; } + .checkbox:hover, .radio:hover { + color: #363636; } + .checkbox[disabled], .radio[disabled], + fieldset[disabled] .checkbox, + fieldset[disabled] .radio { + color: #7a7a7a; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, + fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .select.is-white select:hover, .select.is-white select.is-hovered { + border-color: #f2f2f2; } + .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); } + .select.is-black:not(:hover)::after { + border-color: #0a0a0a; } + .select.is-black select { + border-color: #0a0a0a; } + .select.is-black select:hover, .select.is-black select.is-hovered { + border-color: black; } + .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active { + box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); } + .select.is-light:not(:hover)::after { + border-color: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .select.is-light select:hover, .select.is-light select.is-hovered { + border-color: #e8e8e8; } + .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after { + border-color: #363636; } + .select.is-dark select, .content kbd.select select { + border-color: #363636; } + .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered { + border-color: #292929; } + .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active { + box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); } + .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after { + border-color: #4eb5de; } + .select.is-primary select, .docstring > section > a.select.docs-sourcelink select { + border-color: #4eb5de; } + .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered { + border-color: #39acda; } + .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .select.is-link:not(:hover)::after { + border-color: #2e63b8; } + .select.is-link select { + border-color: #2e63b8; } + .select.is-link select:hover, .select.is-link select.is-hovered { + border-color: #2958a4; } + .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select.is-info:not(:hover)::after { + border-color: #209cee; } + .select.is-info select { + border-color: #209cee; } + .select.is-info select:hover, .select.is-info select.is-hovered { + border-color: #118fe4; } + .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .select.is-success:not(:hover)::after { + border-color: #22c35b; } + .select.is-success select { + border-color: #22c35b; } + .select.is-success select:hover, .select.is-success select.is-hovered { + border-color: #1ead51; } + .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .select.is-warning:not(:hover)::after { + border-color: #ffdd57; } + .select.is-warning select { + border-color: #ffdd57; } + .select.is-warning select:hover, .select.is-warning select.is-hovered { + border-color: #ffd83d; } + .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .select.is-danger:not(:hover)::after { + border-color: #da0b00; } + .select.is-danger select { + border-color: #da0b00; } + .select.is-danger select:hover, .select.is-danger select.is-hovered { + border-color: #c10a00; } + .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .select.is-small, #documenter .docs-sidebar form.docs-search > input.select { + border-radius: 2px; + font-size: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #7a7a7a; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.select.is-loading:after { + font-size: 0.75rem; } + .select.is-loading.is-medium:after { + font-size: 1.25rem; } + .select.is-loading.is-large:after { + font-size: 1.5rem; } + +.file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + .file.is-white .file-cta { + background-color: white; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta { + background-color: #f9f9f9; + border-color: transparent; + color: #0a0a0a; } + .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25); + color: #0a0a0a; } + .file.is-white:active .file-cta, .file.is-white.is-active .file-cta { + background-color: #f2f2f2; + border-color: transparent; + color: #0a0a0a; } + .file.is-black .file-cta { + background-color: #0a0a0a; + border-color: transparent; + color: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25); + color: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta { + background-color: #2f2f2f; + border-color: transparent; + color: whitesmoke; } + .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25); + color: whitesmoke; } + .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta { + background-color: #292929; + border-color: transparent; + color: whitesmoke; } + .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25); + color: #fff; } + .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .file.is-link .file-cta { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25); + color: #fff; } + .file.is-link:active .file-cta, .file.is-link.is-active .file-cta { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .file.is-info .file-cta { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta { + background-color: #1496ed; + border-color: transparent; + color: #fff; } + .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25); + color: #fff; } + .file.is-info:active .file-cta, .file.is-info.is-active .file-cta { + background-color: #118fe4; + border-color: transparent; + color: #fff; } + .file.is-success .file-cta { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25); + color: #fff; } + .file.is-success:active .file-cta, .file.is-success.is-active .file-cta { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .file.is-warning .file-cta { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta { + background-color: #ffdb4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25); + color: rgba(0, 0, 0, 0.7); } + .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta { + background-color: #ffd83d; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .file.is-danger .file-cta { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25); + color: #fff; } + .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .file.is-small, #documenter .docs-sidebar form.docs-search > input.file { + font-size: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.file.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button:not([disabled]).is-hovered, + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]).is-hovered, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-hovered, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-hovered, + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]).is-hovered { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button:not([disabled]).is-focused, .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button:not([disabled]).is-active, + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input:not([disabled]).is-focused, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused, + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input:not([disabled]).is-active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active, + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select:not([disabled]).is-focused, + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select:not([disabled]).is-active { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button:not([disabled]).is-focused:hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button:not([disabled]).is-active:hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input:not([disabled]).is-focused:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-focused:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-focused:hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input:not([disabled]).is-active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]).is-active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]).is-active:hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select:not([disabled]).is-focused:hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select:not([disabled]).is-active:hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #7a7a7a; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, + .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.select ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon, + .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.select ~ .icon, + #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.select ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.control.is-loading:after { + font-size: 0.75rem; } + .control.is-loading.is-medium:after { + font-size: 1.25rem; } + .control.is-loading.is-large:after { + font-size: 1.5rem; } + +.breadcrumb { + font-size: 1rem; + white-space: nowrap; } + .breadcrumb a { + align-items: center; + color: #2e63b8; + display: flex; + justify-content: center; + padding: 0 0.75em; } + .breadcrumb a:hover { + color: #363636; } + .breadcrumb li { + align-items: center; + display: flex; } + .breadcrumb li:first-child a { + padding-left: 0; } + .breadcrumb li.is-active a { + color: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.75rem; } + .breadcrumb.is-medium { + font-size: 1.25rem; } + .breadcrumb.is-large { + font-size: 1.5rem; } + .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + +.card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1rem 1.25rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .level.is-mobile .level-item:not(.is-narrow) { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level { + display: flex; } + .level > .level-item:not(.is-narrow) { + flex-grow: 1; } } + +.level-item { + align-items: center; + display: flex; + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; + justify-content: center; } + .level-item .title, + .level-item .subtitle { + margin-bottom: 0; } + @media screen and (max-width: 768px) { + .level-item:not(:last-child) { + margin-bottom: 0.75rem; } } + +.level-left, +.level-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + .level-left .level-item.is-flexible, + .level-right .level-item.is-flexible { + flex-grow: 1; } + @media screen and (min-width: 769px), print { + .level-left .level-item:not(:last-child), + .level-right .level-item:not(:last-child) { + margin-right: 0.75rem; } } + +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } + +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } + +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.75rem; } + .menu.is-medium { + font-size: 1.25rem; } + .menu.is-large { + font-size: 1.5rem; } + +.menu-list { + line-height: 1.25; } + .menu-list a { + border-radius: 2px; + color: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #7a7a7a; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + border-radius: 4px; + font-size: 1rem; } + .message strong { + color: currentColor; } + .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .message.is-small, #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537e; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3b3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1em 1.25em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + +.modal-card-head { + border-bottom: 1px solid #dbdbdb; + border-top-left-radius: 6px; + border-top-right-radius: 6px; } + +.modal-card-title { + color: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + color: #0a0a0a; } + .navbar.is-white .navbar-brand > .navbar-item, + .navbar.is-white .navbar-brand .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active, + .navbar.is-white .navbar-brand .navbar-link:focus, + .navbar.is-white .navbar-brand .navbar-link:hover, + .navbar.is-white .navbar-brand .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-brand .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-burger { + color: #0a0a0a; } + @media screen and (min-width: 1056px) { + .navbar.is-white .navbar-start > .navbar-item, + .navbar.is-white .navbar-start .navbar-link, + .navbar.is-white .navbar-end > .navbar-item, + .navbar.is-white .navbar-end .navbar-link { + color: #0a0a0a; } + .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active, + .navbar.is-white .navbar-start .navbar-link:focus, + .navbar.is-white .navbar-start .navbar-link:hover, + .navbar.is-white .navbar-start .navbar-link.is-active, + .navbar.is-white .navbar-end > a.navbar-item:focus, + .navbar.is-white .navbar-end > a.navbar-item:hover, + .navbar.is-white .navbar-end > a.navbar-item.is-active, + .navbar.is-white .navbar-end .navbar-link:focus, + .navbar.is-white .navbar-end .navbar-link:hover, + .navbar.is-white .navbar-end .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-start .navbar-link::after, + .navbar.is-white .navbar-end .navbar-link::after { + border-color: #0a0a0a; } + .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #f2f2f2; + color: #0a0a0a; } + .navbar.is-white .navbar-dropdown a.navbar-item.is-active { + background-color: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active, + .navbar.is-black .navbar-brand .navbar-link:focus, + .navbar.is-black .navbar-brand .navbar-link:hover, + .navbar.is-black .navbar-brand .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @media screen and (min-width: 1056px) { + .navbar.is-black .navbar-start > .navbar-item, + .navbar.is-black .navbar-start .navbar-link, + .navbar.is-black .navbar-end > .navbar-item, + .navbar.is-black .navbar-end .navbar-link { + color: white; } + .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active, + .navbar.is-black .navbar-start .navbar-link:focus, + .navbar.is-black .navbar-start .navbar-link:hover, + .navbar.is-black .navbar-start .navbar-link.is-active, + .navbar.is-black .navbar-end > a.navbar-item:focus, + .navbar.is-black .navbar-end > a.navbar-item:hover, + .navbar.is-black .navbar-end > a.navbar-item.is-active, + .navbar.is-black .navbar-end .navbar-link:focus, + .navbar.is-black .navbar-end .navbar-link:hover, + .navbar.is-black .navbar-end .navbar-link.is-active { + background-color: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link { + background-color: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item, + .navbar.is-dark .navbar-brand .navbar-link, + .content kbd.navbar .navbar-brand .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + .navbar.is-dark .navbar-brand .navbar-link:focus, + .content kbd.navbar .navbar-brand .navbar-link:focus, + .navbar.is-dark .navbar-brand .navbar-link:hover, + .content kbd.navbar .navbar-brand .navbar-link:hover, + .navbar.is-dark .navbar-brand .navbar-link.is-active, + .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @media screen and (min-width: 1056px) { + .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item, + .navbar.is-dark .navbar-start .navbar-link, + .content kbd.navbar .navbar-start .navbar-link, + .navbar.is-dark .navbar-end > .navbar-item, + .content kbd.navbar .navbar-end > .navbar-item, + .navbar.is-dark .navbar-end .navbar-link, + .content kbd.navbar .navbar-end .navbar-link { + color: whitesmoke; } + .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active, + .navbar.is-dark .navbar-start .navbar-link:focus, + .content kbd.navbar .navbar-start .navbar-link:focus, + .navbar.is-dark .navbar-start .navbar-link:hover, + .content kbd.navbar .navbar-start .navbar-link:hover, + .navbar.is-dark .navbar-start .navbar-link.is-active, + .content kbd.navbar .navbar-start .navbar-link.is-active, + .navbar.is-dark .navbar-end > a.navbar-item:focus, + .content kbd.navbar .navbar-end > a.navbar-item:focus, + .navbar.is-dark .navbar-end > a.navbar-item:hover, + .content kbd.navbar .navbar-end > a.navbar-item:hover, + .navbar.is-dark .navbar-end > a.navbar-item.is-active, + .content kbd.navbar .navbar-end > a.navbar-item.is-active, + .navbar.is-dark .navbar-end .navbar-link:focus, + .content kbd.navbar .navbar-end .navbar-link:focus, + .navbar.is-dark .navbar-end .navbar-link:hover, + .content kbd.navbar .navbar-end .navbar-link:hover, + .navbar.is-dark .navbar-end .navbar-link.is-active, + .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after, + .navbar.is-dark .navbar-end .navbar-link::after, + .content kbd.navbar .navbar-end .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #292929; + color: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + .navbar.is-primary .navbar-brand .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + .navbar.is-primary .navbar-brand .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + .navbar.is-primary .navbar-brand .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + .navbar.is-primary .navbar-brand .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + .navbar.is-primary .navbar-start .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + .navbar.is-primary .navbar-end > .navbar-item, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + .navbar.is-primary .navbar-end .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + .navbar.is-primary .navbar-start .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + .navbar.is-primary .navbar-start .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + .navbar.is-primary .navbar-start .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + .navbar.is-primary .navbar-end > a.navbar-item:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + .navbar.is-primary .navbar-end > a.navbar-item:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + .navbar.is-primary .navbar-end > a.navbar-item.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + .navbar.is-primary .navbar-end .navbar-link:focus, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + .navbar.is-primary .navbar-end .navbar-link:hover, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + .navbar.is-primary .navbar-end .navbar-link.is-active, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + .navbar.is-primary .navbar-end .navbar-link::after, + .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #39acda; + color: #fff; } + .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #4eb5de; + color: #fff; } } + .navbar.is-link { + background-color: #2e63b8; + color: #fff; } + .navbar.is-link .navbar-brand > .navbar-item, + .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active, + .navbar.is-link .navbar-brand .navbar-link:focus, + .navbar.is-link .navbar-brand .navbar-link:hover, + .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-link .navbar-start > .navbar-item, + .navbar.is-link .navbar-start .navbar-link, + .navbar.is-link .navbar-end > .navbar-item, + .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active, + .navbar.is-link .navbar-start .navbar-link:focus, + .navbar.is-link .navbar-start .navbar-link:hover, + .navbar.is-link .navbar-start .navbar-link.is-active, + .navbar.is-link .navbar-end > a.navbar-item:focus, + .navbar.is-link .navbar-end > a.navbar-item:hover, + .navbar.is-link .navbar-end > a.navbar-item.is-active, + .navbar.is-link .navbar-end .navbar-link:focus, + .navbar.is-link .navbar-end .navbar-link:hover, + .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-start .navbar-link::after, + .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2958a4; + color: #fff; } + .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #2e63b8; + color: #fff; } } + .navbar.is-info { + background-color: #209cee; + color: #fff; } + .navbar.is-info .navbar-brand > .navbar-item, + .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active, + .navbar.is-info .navbar-brand .navbar-link:focus, + .navbar.is-info .navbar-brand .navbar-link:hover, + .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-info .navbar-start > .navbar-item, + .navbar.is-info .navbar-start .navbar-link, + .navbar.is-info .navbar-end > .navbar-item, + .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active, + .navbar.is-info .navbar-start .navbar-link:focus, + .navbar.is-info .navbar-start .navbar-link:hover, + .navbar.is-info .navbar-start .navbar-link.is-active, + .navbar.is-info .navbar-end > a.navbar-item:focus, + .navbar.is-info .navbar-end > a.navbar-item:hover, + .navbar.is-info .navbar-end > a.navbar-item.is-active, + .navbar.is-info .navbar-end .navbar-link:focus, + .navbar.is-info .navbar-end .navbar-link:hover, + .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-start .navbar-link::after, + .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #118fe4; + color: #fff; } + .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #209cee; + color: #fff; } } + .navbar.is-success { + background-color: #22c35b; + color: #fff; } + .navbar.is-success .navbar-brand > .navbar-item, + .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active, + .navbar.is-success .navbar-brand .navbar-link:focus, + .navbar.is-success .navbar-brand .navbar-link:hover, + .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-success .navbar-start > .navbar-item, + .navbar.is-success .navbar-start .navbar-link, + .navbar.is-success .navbar-end > .navbar-item, + .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active, + .navbar.is-success .navbar-start .navbar-link:focus, + .navbar.is-success .navbar-start .navbar-link:hover, + .navbar.is-success .navbar-start .navbar-link.is-active, + .navbar.is-success .navbar-end > a.navbar-item:focus, + .navbar.is-success .navbar-end > a.navbar-item:hover, + .navbar.is-success .navbar-end > a.navbar-item.is-active, + .navbar.is-success .navbar-end .navbar-link:focus, + .navbar.is-success .navbar-end .navbar-link:hover, + .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-start .navbar-link::after, + .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1ead51; + color: #fff; } + .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #22c35b; + color: #fff; } } + .navbar.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > .navbar-item, + .navbar.is-warning .navbar-brand .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + .navbar.is-warning .navbar-brand .navbar-link:focus, + .navbar.is-warning .navbar-brand .navbar-link:hover, + .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-burger { + color: rgba(0, 0, 0, 0.7); } + @media screen and (min-width: 1056px) { + .navbar.is-warning .navbar-start > .navbar-item, + .navbar.is-warning .navbar-start .navbar-link, + .navbar.is-warning .navbar-end > .navbar-item, + .navbar.is-warning .navbar-end .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active, + .navbar.is-warning .navbar-start .navbar-link:focus, + .navbar.is-warning .navbar-start .navbar-link:hover, + .navbar.is-warning .navbar-start .navbar-link.is-active, + .navbar.is-warning .navbar-end > a.navbar-item:focus, + .navbar.is-warning .navbar-end > a.navbar-item:hover, + .navbar.is-warning .navbar-end > a.navbar-item.is-active, + .navbar.is-warning .navbar-end .navbar-link:focus, + .navbar.is-warning .navbar-end .navbar-link:hover, + .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-start .navbar-link::after, + .navbar.is-warning .navbar-end .navbar-link::after { + border-color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } } + .navbar.is-danger { + background-color: #da0b00; + color: #fff; } + .navbar.is-danger .navbar-brand > .navbar-item, + .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + .navbar.is-danger .navbar-brand .navbar-link:focus, + .navbar.is-danger .navbar-brand .navbar-link:hover, + .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + .navbar.is-danger .navbar-start > .navbar-item, + .navbar.is-danger .navbar-start .navbar-link, + .navbar.is-danger .navbar-end > .navbar-item, + .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active, + .navbar.is-danger .navbar-start .navbar-link:focus, + .navbar.is-danger .navbar-start .navbar-link:hover, + .navbar.is-danger .navbar-start .navbar-link.is-active, + .navbar.is-danger .navbar-end > a.navbar-item:focus, + .navbar.is-danger .navbar-end > a.navbar-item:hover, + .navbar.is-danger .navbar-end > a.navbar-item.is-active, + .navbar.is-danger .navbar-end .navbar-link:focus, + .navbar.is-danger .navbar-end .navbar-link:hover, + .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-start .navbar-link::after, + .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #c10a00; + color: #fff; } + .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #da0b00; + color: #fff; } } + .navbar > .container { + align-items: stretch; + display: flex; + min-height: 3.25rem; + width: 100%; } + .navbar.has-shadow { + box-shadow: 0 2px 0 0 whitesmoke; } + .navbar.is-fixed-bottom, .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom { + bottom: 0; } + .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + border-bottom-color: #2e63b8; + border-bottom-style: solid; + border-bottom-width: 3px; + color: #2e63b8; + padding-bottom: calc(0.5rem - 3px); } + +.navbar-content { + flex-grow: 1; + flex-shrink: 1; } + +.navbar-link:not(.is-arrowless) { + padding-right: 2.5em; } + .navbar-link:not(.is-arrowless)::after { + border-color: #2e63b8; + margin-top: -0.375em; + right: 1.125em; } + +.navbar-dropdown { + font-size: 0.875rem; + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + .navbar-dropdown .navbar-item { + padding-left: 1.5rem; + padding-right: 1.5rem; } + +.navbar-divider { + background-color: whitesmoke; + border: none; + display: none; + height: 2px; + margin: 0.5rem 0; } + +@media screen and (max-width: 1055px) { + .navbar > .container { + display: block; } + .navbar-brand .navbar-item, + .navbar-tabs .navbar-item { + align-items: center; + display: flex; } + .navbar-link::after { + display: none; } + .navbar-menu { + background-color: white; + box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1); + padding: 0.5rem 0; } + .navbar-menu.is-active { + display: block; } + .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-touch { + bottom: 0; } + .navbar.is-fixed-bottom-touch.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-touch { + top: 0; } + .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu { + -webkit-overflow-scrolling: touch; + max-height: calc(100vh - 3.25rem); + overflow: auto; } + html.has-navbar-fixed-top-touch, + body.has-navbar-fixed-top-touch { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-touch, + body.has-navbar-fixed-bottom-touch { + padding-bottom: 3.25rem; } } + +@media screen and (min-width: 1056px) { + .navbar, + .navbar-menu, + .navbar-start, + .navbar-end { + align-items: stretch; + display: flex; } + .navbar { + min-height: 3.25rem; } + .navbar.is-spaced { + padding: 1rem 2rem; } + .navbar.is-spaced .navbar-start, + .navbar.is-spaced .navbar-end { + align-items: center; } + .navbar.is-spaced a.navbar-item, + .navbar.is-spaced .navbar-link { + border-radius: 4px; } + .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active, + .navbar.is-transparent .navbar-link:focus, + .navbar.is-transparent .navbar-link:hover, + .navbar.is-transparent .navbar-link.is-active { + background-color: transparent !important; } + .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link { + background-color: transparent !important; } + .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 2px solid #dbdbdb; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed { + border-radius: 6px; + border-top: none; + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + display: block; + opacity: 0; + pointer-events: none; + top: calc(100% + (-4px)); + transform: translateY(-5px); + transition-duration: 86ms; + transition-property: opacity, transform; } + .navbar-dropdown.is-right { + left: auto; + right: 0; } + .navbar-divider { + display: block; } + .navbar > .container .navbar-brand, + .container > .navbar .navbar-brand { + margin-left: -.75rem; } + .navbar > .container .navbar-menu, + .container > .navbar .navbar-menu { + margin-right: -.75rem; } + .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + .navbar.is-fixed-bottom-desktop { + bottom: 0; } + .navbar.is-fixed-bottom-desktop.has-shadow { + box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); } + .navbar.is-fixed-top-desktop { + top: 0; } + html.has-navbar-fixed-top-desktop, + body.has-navbar-fixed-top-desktop { + padding-top: 3.25rem; } + html.has-navbar-fixed-bottom-desktop, + body.has-navbar-fixed-bottom-desktop { + padding-bottom: 3.25rem; } + html.has-spaced-navbar-fixed-top, + body.has-spaced-navbar-fixed-top { + padding-top: 5.25rem; } + html.has-spaced-navbar-fixed-bottom, + body.has-spaced-navbar-fixed-bottom { + padding-bottom: 5.25rem; } + a.navbar-item.is-active, + .navbar-link.is-active { + color: #0a0a0a; } + a.navbar-item.is-active:not(:focus):not(:hover), + .navbar-link.is-active:not(:focus):not(:hover) { + background-color: transparent; } + .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #fafafa; } } + +.hero.is-fullheight-with-navbar { + min-height: calc(100vh - 3.25rem); } + +.pagination { + font-size: 1rem; + margin: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #2e63b8; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #7a7a7a; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + .panel-tabs a { + border-bottom: 1px solid #dbdbdb; + margin-bottom: -1px; + padding: 0.5em; } + .panel-tabs a.is-active { + border-bottom-color: #4a4a4a; + color: #363636; } + +.panel-list a { + color: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #7a7a7a; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !important; } + .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + .tabs.is-toggle a { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + .tabs.is-toggle a:hover { + background-color: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.75rem; } + .tabs.is-medium { + font-size: 1.25rem; } + .tabs.is-large { + font-size: 1.5rem; } + +.column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.33333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.33333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.66667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.66667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.33333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.33333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.66667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.66667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.33333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.33333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.66667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.66667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.33333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.33333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.66667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.66667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.33333%; } + .column.is-offset-1-mobile { + margin-left: 8.33333%; } + .column.is-2-mobile { + flex: none; + width: 16.66667%; } + .column.is-offset-2-mobile { + margin-left: 16.66667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.33333%; } + .column.is-offset-4-mobile { + margin-left: 33.33333%; } + .column.is-5-mobile { + flex: none; + width: 41.66667%; } + .column.is-offset-5-mobile { + margin-left: 41.66667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.33333%; } + .column.is-offset-7-mobile { + margin-left: 58.33333%; } + .column.is-8-mobile { + flex: none; + width: 66.66667%; } + .column.is-offset-8-mobile { + margin-left: 66.66667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.33333%; } + .column.is-offset-10-mobile { + margin-left: 83.33333%; } + .column.is-11-mobile { + flex: none; + width: 91.66667%; } + .column.is-offset-11-mobile { + margin-left: 91.66667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.33333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.33333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.66667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.66667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.33333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.33333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.66667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.66667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.33333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.33333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.66667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.66667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.33333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.33333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.66667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.66667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.33333%; } + .column.is-offset-1-touch { + margin-left: 8.33333%; } + .column.is-2-touch { + flex: none; + width: 16.66667%; } + .column.is-offset-2-touch { + margin-left: 16.66667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.33333%; } + .column.is-offset-4-touch { + margin-left: 33.33333%; } + .column.is-5-touch { + flex: none; + width: 41.66667%; } + .column.is-offset-5-touch { + margin-left: 41.66667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.33333%; } + .column.is-offset-7-touch { + margin-left: 58.33333%; } + .column.is-8-touch { + flex: none; + width: 66.66667%; } + .column.is-offset-8-touch { + margin-left: 66.66667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.33333%; } + .column.is-offset-10-touch { + margin-left: 83.33333%; } + .column.is-11-touch { + flex: none; + width: 91.66667%; } + .column.is-offset-11-touch { + margin-left: 91.66667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.33333%; } + .column.is-offset-1-desktop { + margin-left: 8.33333%; } + .column.is-2-desktop { + flex: none; + width: 16.66667%; } + .column.is-offset-2-desktop { + margin-left: 16.66667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.33333%; } + .column.is-offset-4-desktop { + margin-left: 33.33333%; } + .column.is-5-desktop { + flex: none; + width: 41.66667%; } + .column.is-offset-5-desktop { + margin-left: 41.66667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.33333%; } + .column.is-offset-7-desktop { + margin-left: 58.33333%; } + .column.is-8-desktop { + flex: none; + width: 66.66667%; } + .column.is-offset-8-desktop { + margin-left: 66.66667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.33333%; } + .column.is-offset-10-desktop { + margin-left: 83.33333%; } + .column.is-11-desktop { + flex: none; + width: 91.66667%; } + .column.is-offset-11-desktop { + margin-left: 91.66667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.33333%; } + .column.is-offset-1-widescreen { + margin-left: 8.33333%; } + .column.is-2-widescreen { + flex: none; + width: 16.66667%; } + .column.is-offset-2-widescreen { + margin-left: 16.66667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.33333%; } + .column.is-offset-4-widescreen { + margin-left: 33.33333%; } + .column.is-5-widescreen { + flex: none; + width: 41.66667%; } + .column.is-offset-5-widescreen { + margin-left: 41.66667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.33333%; } + .column.is-offset-7-widescreen { + margin-left: 58.33333%; } + .column.is-8-widescreen { + flex: none; + width: 66.66667%; } + .column.is-offset-8-widescreen { + margin-left: 66.66667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.33333%; } + .column.is-offset-10-widescreen { + margin-left: 83.33333%; } + .column.is-11-widescreen { + flex: none; + width: 91.66667%; } + .column.is-offset-11-widescreen { + margin-left: 91.66667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.33333%; } + .column.is-offset-1-fullhd { + margin-left: 8.33333%; } + .column.is-2-fullhd { + flex: none; + width: 16.66667%; } + .column.is-offset-2-fullhd { + margin-left: 16.66667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.33333%; } + .column.is-offset-4-fullhd { + margin-left: 33.33333%; } + .column.is-5-fullhd { + flex: none; + width: 41.66667%; } + .column.is-offset-5-fullhd { + margin-left: 41.66667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.33333%; } + .column.is-offset-7-fullhd { + margin-left: 58.33333%; } + .column.is-8-fullhd { + flex: none; + width: 66.66667%; } + .column.is-offset-8-fullhd { + margin-left: 66.66667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.33333%; } + .column.is-offset-10-fullhd { + margin-left: 83.33333%; } + .column.is-11-fullhd { + flex: none; + width: 91.66667%; } + .column.is-offset-11-fullhd { + margin-left: 91.66667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } + +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.75rem); } + .columns.is-centered { + justify-content: center; } + .columns.is-gapless { + margin-left: 0; + margin-right: 0; + margin-top: 0; } + .columns.is-gapless > .column { + margin: 0; + padding: 0 !important; } + .columns.is-gapless:not(:last-child) { + margin-bottom: 1.5rem; } + .columns.is-gapless:last-child { + margin-bottom: 0; } + .columns.is-mobile { + display: flex; } + .columns.is-multiline { + flex-wrap: wrap; } + .columns.is-vcentered { + align-items: center; } + @media screen and (min-width: 769px), print { + .columns:not(.is-desktop) { + display: flex; } } + @media screen and (min-width: 1056px) { + .columns.is-desktop { + display: flex; } } + +.columns.is-variable { + --columnGap: 0.75rem; + margin-left: calc(-1 * var(--columnGap)); + margin-right: calc(-1 * var(--columnGap)); } + .columns.is-variable .column { + padding-left: var(--columnGap); + padding-right: var(--columnGap); } + .columns.is-variable.is-0 { + --columnGap: 0rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-0-mobile { + --columnGap: 0rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-0-tablet { + --columnGap: 0rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-0-tablet-only { + --columnGap: 0rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-0-touch { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-0-desktop { + --columnGap: 0rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-0-desktop-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-0-widescreen { + --columnGap: 0rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-0-widescreen-only { + --columnGap: 0rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-0-fullhd { + --columnGap: 0rem; } } + .columns.is-variable.is-1 { + --columnGap: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.75rem; } } + .columns.is-variable.is-4 { + --columnGap: 1rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-4-mobile { + --columnGap: 1rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-4-tablet { + --columnGap: 1rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-4-tablet-only { + --columnGap: 1rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-4-touch { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-4-desktop { + --columnGap: 1rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-4-desktop-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-4-widescreen { + --columnGap: 1rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-4-widescreen-only { + --columnGap: 1rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-4-fullhd { + --columnGap: 1rem; } } + .columns.is-variable.is-5 { + --columnGap: 1.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-5-mobile { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-5-tablet { + --columnGap: 1.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-5-tablet-only { + --columnGap: 1.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-5-touch { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-5-desktop { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-5-desktop-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-5-widescreen { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-5-widescreen-only { + --columnGap: 1.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-5-fullhd { + --columnGap: 1.25rem; } } + .columns.is-variable.is-6 { + --columnGap: 1.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-6-mobile { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-6-tablet { + --columnGap: 1.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-6-tablet-only { + --columnGap: 1.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-6-touch { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-6-desktop { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-6-desktop-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-6-widescreen { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-6-widescreen-only { + --columnGap: 1.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-6-fullhd { + --columnGap: 1.5rem; } } + .columns.is-variable.is-7 { + --columnGap: 1.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-7-mobile { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-7-tablet { + --columnGap: 1.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-7-tablet-only { + --columnGap: 1.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-7-touch { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-7-desktop { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-7-desktop-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-7-widescreen { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-7-widescreen-only { + --columnGap: 1.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-7-fullhd { + --columnGap: 1.75rem; } } + .columns.is-variable.is-8 { + --columnGap: 2rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-8-mobile { + --columnGap: 2rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-8-tablet { + --columnGap: 2rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-8-tablet-only { + --columnGap: 2rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-8-touch { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-8-desktop { + --columnGap: 2rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-8-desktop-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-8-widescreen { + --columnGap: 2rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-8-widescreen-only { + --columnGap: 2rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-8-fullhd { + --columnGap: 2rem; } } + +.tile { + align-items: stretch; + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + min-height: min-content; } + .tile.is-ancestor { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.33333%; } + .tile.is-2 { + flex: none; + width: 16.66667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.33333%; } + .tile.is-5 { + flex: none; + width: 41.66667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.33333%; } + .tile.is-8 { + flex: none; + width: 66.66667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.33333%; } + .tile.is-11 { + flex: none; + width: 91.66667%; } + .tile.is-12 { + flex: none; + width: 100%; } } + +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + color: #0a0a0a; } + .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-white strong { + color: inherit; } + .hero.is-white .title { + color: #0a0a0a; } + .hero.is-white .subtitle { + color: rgba(10, 10, 10, 0.9); } + .hero.is-white .subtitle a:not(.button), + .hero.is-white .subtitle strong { + color: #0a0a0a; } + @media screen and (max-width: 1055px) { + .hero.is-white .navbar-menu { + background-color: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e6e6e6 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-black strong { + color: inherit; } + .hero.is-black .title { + color: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @media screen and (max-width: 1055px) { + .hero.is-black .navbar-menu { + background-color: #0a0a0a; } } + .hero.is-black .navbar-item, + .hero.is-black .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active, + .hero.is-black .navbar-link:hover, + .hero.is-black .navbar-link.is-active { + background-color: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover { + background-color: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-dark strong, + .content kbd.hero strong { + color: inherit; } + .hero.is-dark .title, .content kbd.hero .title { + color: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .content kbd.hero .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover, .content kbd.hero .tabs.is-toggle li.is-active a:hover { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #118fe4; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #04a6d7 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83d; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffaf24 0%, #ffdd57 71%, #fffa70 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } + +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } + +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +.admonition { + background-color: #b5b5b5; + border-style: solid; + border-width: 1px; + border-color: #363636; + border-radius: 4px; + font-size: 1rem; } + .admonition strong { + color: currentColor; } + .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.75rem; } + .admonition.is-medium { + font-size: 1.25rem; } + .admonition.is-large { + font-size: 1.5rem; } + .admonition.is-default { + background-color: #b5b5b5; + border-color: #363636; } + .admonition.is-default > .admonition-header { + background-color: #363636; + color: #fff; } + .admonition.is-default > .admonition-body { + color: #fff; } + .admonition.is-info { + background-color: #b8dffa; + border-color: #209cee; } + .admonition.is-info > .admonition-header { + background-color: #209cee; + color: #fff; } + .admonition.is-info > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-success { + background-color: #9beeb8; + border-color: #22c35b; } + .admonition.is-success > .admonition-header { + background-color: #22c35b; + color: #fff; } + .admonition.is-success > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning { + background-color: #fff3c5; + border-color: #ffdd57; } + .admonition.is-warning > .admonition-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .admonition.is-warning > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + .admonition.is-danger { + background-color: #ff857e; + border-color: #da0b00; } + .admonition.is-danger > .admonition-header { + background-color: #da0b00; + color: #fff; } + .admonition.is-danger > .admonition-body { + color: #fff; } + .admonition.is-compat { + background-color: #99e6f0; + border-color: #1db5c9; } + .admonition.is-compat > .admonition-header { + background-color: #1db5c9; + color: #fff; } + .admonition.is-compat > .admonition-body { + color: rgba(0, 0, 0, 0.7); } + +.admonition-header { + color: #fff; + background-color: #363636; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75em; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 1em 1.25em; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 1rem 1.25rem; + border-bottom: 1px solid #dbdbdb; } + .docstring > section:last-child { + border-bottom: none; } + .docstring > section > a.docs-sourcelink { + transition: opacity 0.3s; + opacity: 0; + position: absolute; + right: 0.625rem; + bottom: 0.5rem; } + .docstring:hover > section > a.docs-sourcelink { + opacity: 0.2; } + .docstring > section:hover a.docs-sourcelink { + opacity: 1; } + +.documenter-example-output { + background-color: white; } + +.content pre { + border: 1px solid #dbdbdb; } + +.content code { + font-weight: inherit; } + +.content a code { + color: #2e63b8; } + +.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code { + color: #222222; } + +.content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + +.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child { + margin-top: 0; } + +.breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover { + color: #222222; } + +.hljs { + background: initial !important; + padding: initial !important; } + +.katex .katex-mathml { + top: 0; + right: 0; } + +.katex-display, mjx-container, .MathJax_Display { + margin: 0.5em 0 !important; } + +html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + +/* This file contain the overall layout. + * + * The main container is
                                                    that is identified by id #documenter. + */ +#documenter .docs-main > article { + overflow-wrap: break-word; } + #documenter .docs-main > article .math-container { + overflow-x: auto; } + +@media screen and (min-width: 1056px) { + #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + +@media screen and (max-width: 1055px) { + #documenter .docs-main { + width: 100%; } + #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + #documenter .docs-main > header, #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + +#documenter .docs-main header.docs-navbar { + background-color: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom { + top: -4.5rem; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } } + +#documenter .docs-main section.footnotes { + border-top: 1px solid #dbdbdb; } + #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + +#documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #dbdbdb; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + +#documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #0a0a0a; + background-color: whitesmoke; + border-right: 1px solid #dbdbdb; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 1rem; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.8rem #bbb; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar.visible { + box-shadow: none; } } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar { + left: 0; + top: 0; } } + #documenter .docs-sidebar .docs-logo { + margin-top: 1rem; + padding: 0 1rem; } + #documenter .docs-sidebar .docs-logo > img { + max-height: 6rem; + margin: auto; } + #documenter .docs-sidebar .docs-package-name { + flex-shrink: 0; + font-size: 1.5rem; + font-weight: 700; + text-align: center; + white-space: nowrap; + overflow: hidden; + padding: 0.5rem 0; } + #documenter .docs-sidebar .docs-package-name .docs-autofit { + max-width: 16.2rem; } + #documenter .docs-sidebar .docs-version-selector { + border-top: 1px solid #dbdbdb; + display: none; + padding: 0.5rem; } + #documenter .docs-sidebar .docs-version-selector.visible { + display: flex; } + #documenter .docs-sidebar ul.docs-menu { + flex-grow: 1; + user-select: none; + border-top: 1px solid #dbdbdb; + padding-bottom: 1.5rem; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.95rem; + margin-left: 1em; + border-left: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #0a0a0a; + background-color: #ebebeb; } + #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #dbdbdb; + border-bottom: 1px solid #dbdbdb; + background-color: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #ebebeb; + color: #0a0a0a; } + #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #dbdbdb; } + #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @media screen and (max-width: 1055px) { + #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +/* + +Original highlight.js style (c) Ivan Sagalaev + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #F0F0F0; } + +/* Base color: saturation 0; */ +.hljs, +.hljs-subst { + color: #444; } + +.hljs-comment { + color: #888888; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR99/assets/themeswap.js b/previews/PR99/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR99/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR99/couplerstate/index.html b/previews/PR99/couplerstate/index.html new file mode 100644 index 000000000..5e98156ec --- /dev/null +++ b/previews/PR99/couplerstate/index.html @@ -0,0 +1,6 @@ + +Coupler State · ClimaCoupler.jl

                                                    Coupler State

                                                    The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.

                                                    The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.

                                                    Coupler Object API

                                                    ClimaCoupler.CouplerStateType
                                                    CouplerState()

                                                    Type for holding coupler "state". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.

                                                    A field is exported by one component and imported by one or more other components.

                                                    source
                                                    ClimaCoupler.coupler_add_field!Function
                                                    coupler_add_field!(
                                                    +        coupler::CouplerState,
                                                    +        fieldname::Symbol,
                                                    +        fieldvalue,
                                                    +    )

                                                    Add a field to the coupler that is accessible with key fieldname.

                                                    Arguments

                                                    • coupler: coupler object the field is added to.
                                                    • fieldname: key to access the field in the coupler.
                                                    • fieldvalue: data array of field values.
                                                    source
                                                    ClimaCoupler.coupler_getFunction
                                                    coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])

                                                    Retrieve data array corresponding to fieldname.

                                                    If a target_sim is passed, the field is remapped to that simulation's boundary space.

                                                    source
                                                    diff --git a/previews/PR99/images/cplsetup.png b/previews/PR99/images/cplsetup.png new file mode 100644 index 0000000000000000000000000000000000000000..701b4d1eecf73655cb2b31cd9f9c600d04b752fd GIT binary patch literal 49923 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 LeYFCW8=?OLeUP{m literal 0 HcmV?d00001 diff --git a/previews/PR99/index.html b/previews/PR99/index.html new file mode 100644 index 000000000..31ae7a52c --- /dev/null +++ b/previews/PR99/index.html @@ -0,0 +1,2 @@ + +Home · ClimaCoupler.jl

                                                    ClimaCoupler.jl

                                                    Coupling CliMA Models

                                                    ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:

                                                    • coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.
                                                    • support for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.

                                                    The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.

                                                    Coupler Scheme
                                                    ClimaCoupler.jl allows for independent development of interchangeable component models.
                                                    diff --git a/previews/PR99/search/index.html b/previews/PR99/search/index.html new file mode 100644 index 000000000..73fc11a95 --- /dev/null +++ b/previews/PR99/search/index.html @@ -0,0 +1,2 @@ + +Search · ClimaCoupler.jl

                                                    Loading search...

                                                      diff --git a/previews/PR99/search_index.js b/previews/PR99/search_index.js new file mode 100644 index 000000000..247959995 --- /dev/null +++ b/previews/PR99/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"couplerstate/#Coupler-State","page":"Coupler State","title":"Coupler State","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The coupler provides a space to store information being passed between coupled model components at their boundaries. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, filtering, etc.","category":"page"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":"The ClimaCoupler defines a type CouplerState for a container variable that holds information about the field boundary values that are being used to couple components. Components can use a coupler_put! operation to export a set of field values to a CouplerState variable. A coupler_get operation is used to retrieve a set of field values from a CplState variable. During this exchange, the coupler manages ancillary operations such as regridding, unit conversions, or filtering.","category":"page"},{"location":"couplerstate/#Coupler-Object-API","page":"Coupler State","title":"Coupler Object API","text":"","category":"section"},{"location":"couplerstate/","page":"Coupler State","title":"Coupler State","text":" ClimaCoupler.CouplerState\n ClimaCoupler.coupler_add_field!\n ClimaCoupler.coupler_put!\n ClimaCoupler.coupler_get","category":"page"},{"location":"couplerstate/#ClimaCoupler.CouplerState","page":"Coupler State","title":"ClimaCoupler.CouplerState","text":"CouplerState()\n\nType for holding coupler \"state\". This is the namespace through which coupled components communicate. Its role is to provide a level of indirection so that components remain modular and so that any data communication, interpolation, reindexing/unit conversions and filtering etc... can be embeded in the intermdediate coupling layer.\n\nA field is exported by one component and imported by one or more other components.\n\n\n\n\n\n","category":"type"},{"location":"couplerstate/#ClimaCoupler.coupler_add_field!","page":"Coupler State","title":"ClimaCoupler.coupler_add_field!","text":"coupler_add_field!(\n coupler::CouplerState,\n fieldname::Symbol,\n fieldvalue,\n )\n\nAdd a field to the coupler that is accessible with key fieldname. \n\nArguments\n\ncoupler: coupler object the field is added to.\nfieldname: key to access the field in the coupler.\nfieldvalue: data array of field values.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_put!","page":"Coupler State","title":"ClimaCoupler.coupler_put!","text":"coupler_put!(coupler::CouplerState, fieldname::Symbol, fieldvalue)\n\nSets coupler field fieldname to fieldvalue.\n\n\n\n\n\n","category":"function"},{"location":"couplerstate/#ClimaCoupler.coupler_get","page":"Coupler State","title":"ClimaCoupler.coupler_get","text":"coupler_get(coupler::CouplerState, fieldname::Symbol [, target_sim::AbstractSimulation])\n\nRetrieve data array corresponding to fieldname.\n\nIf a target_sim is passed, the field is remapped to that simulation's boundary space.\n\n\n\n\n\n","category":"function"},{"location":"#ClimaCoupler.jl","page":"Home","title":"ClimaCoupler.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Coupling CliMA Models","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = ClimaCoupler","category":"page"},{"location":"","page":"Home","title":"Home","text":"ClimaCoupler.jl provides a means to couple CliMA model components. It is designed to provide a flexible way to map boundary fluxes of quantities, like moisture and heat, that leave one component model (for example the atmosphere) to boundary fluxes of another component model (for example the ocean model). Functionality includes:","category":"page"},{"location":"","page":"Home","title":"Home","text":"coupled system time stepping control that integrates fluxes in time for sharing between components with differing time steps and/or time stepping schemes.\nsupport for mapping import and export boundary information between components so that fluxes of properties transferred between components are conserved.","category":"page"},{"location":"","page":"Home","title":"Home","text":"The ClimaCoupler supports coupling components that are all within the same process or coupling components (using MPI) that are running on different processes.","category":"page"},{"location":"","page":"Home","title":"Home","text":"(Image: Coupler Scheme)\nClimaCoupler.jl allows for independent development of interchangeable component models.","category":"page"},{"location":"","page":"Home","title":"Home","text":" ClimaCoupler","category":"page"},{"location":"#ClimaCoupler.ClimaCoupler","page":"Home","title":"ClimaCoupler.ClimaCoupler","text":"ClimaCoupler\n\nCoupling module sufficient for initial atmos-ocean-land coupled simulation.\n\n\n\n\n\n","category":"module"},{"location":"timestepping/#Coupled-Simulations-and-Timestepping","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"","category":"section"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"step!: advances the component model in time\ncoupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls\ncoupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.","category":"page"},{"location":"timestepping/","page":"Coupled Simulations & Timestepping","title":"Coupled Simulations & Timestepping","text":"ClimaCoupler.CoupledSimulation\nClimaCoupler.run!\nClimaCoupler.step!\nClimaCoupler.coupler_push!\nClimaCoupler.coupler_pull!","category":"page"},{"location":"timestepping/#ClimaCoupler.run!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.run!","text":"run!(::CoupledSimulation)\n\nA simple outer timestepping loop for coupled system runs.\n\nThis will be formalized when the run! functionality for component models is implemented so to have a consistent interface.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.step!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.step!","text":"step!(sim, dt)\n\nAdvances a simulation by dt.\n\nNote that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_push!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_push!","text":"coupler_push!(coupler::CouplerState, model)\n\nUpdate coupler with fields retrieved from the coupler.\n\ncoupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.\n\n\n\n\n\n","category":"function"},{"location":"timestepping/#ClimaCoupler.coupler_pull!","page":"Coupled Simulations & Timestepping","title":"ClimaCoupler.coupler_pull!","text":"coupler_pull!(model, coupler::CouplerState)\n\nUpdate model with fields retrieved from the coupler.\n\ncoupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.\n\n\n\n\n\n","category":"function"}] +} diff --git a/previews/PR99/siteinfo.js b/previews/PR99/siteinfo.js new file mode 100644 index 000000000..b1491ac23 --- /dev/null +++ b/previews/PR99/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR99"; diff --git a/previews/PR99/timestepping/index.html b/previews/PR99/timestepping/index.html new file mode 100644 index 000000000..ea3e1d857 --- /dev/null +++ b/previews/PR99/timestepping/index.html @@ -0,0 +1,2 @@ + +Coupled Simulations & Timestepping · ClimaCoupler.jl

                                                      Coupled Simulations & Timestepping

                                                      ClimaCoupler.jl organizes coupled models and their execution via the CoupledSimulation interface. An implementation of a CoupledSimulation, like any CliMA simulation, must implement a ClimaCoupler.step! method, which in this context specifies the coupling scheme details (e.g. explicit, leap-frog, concurrent, etc...).

                                                      Component models being coupled must provide three methods for use in a CoupledSimulation's ClimaCoupler.step! method:

                                                      • step!: advances the component model in time
                                                      • coupler_push!: prepares and puts coupled fields from the model into the coupler via coupler_put! calls
                                                      • coupler_pull!: gets coupled fields from the coupler via coupler_get! calls and prepares them to be ingested by the model.
                                                      Missing docstring.

                                                      Missing docstring for ClimaCoupler.CoupledSimulation. Check Documenter's build log for details.

                                                      ClimaCoupler.run!Function
                                                      run!(::CoupledSimulation)

                                                      A simple outer timestepping loop for coupled system runs.

                                                      This will be formalized when the run! functionality for component models is implemented so to have a consistent interface.

                                                      source
                                                      ClimaCoupler.step!Function
                                                      step!(sim, dt)

                                                      Advances a simulation by dt.

                                                      Note that dt is not necessarily the simulation's timestep length; a simuation could take several shorter steps that total to dt.

                                                      source
                                                      ClimaCoupler.coupler_push!Function
                                                      coupler_push!(coupler::CouplerState, model)

                                                      Update coupler with fields retrieved from the coupler.

                                                      coupler_push! is an adapter function to be implemented for each model component using the coupler. It should send coupling fields via coupler_put! calls and perform any operations on these fields to prepare them for the coupler.

                                                      source
                                                      ClimaCoupler.coupler_pull!Function
                                                      coupler_pull!(model, coupler::CouplerState)

                                                      Update model with fields retrieved from the coupler.

                                                      coupler_pull! is an adapter function to be implemented for each model component using the coupler. It should get coupling fields via coupler_get calls and perform any operations on these fields to prepare them for use in the component model.

                                                      source
                                                      diff --git a/versions.js b/versions.js new file mode 100644 index 000000000..4ec0f8f9c --- /dev/null +++ b/versions.js @@ -0,0 +1,5 @@ +var DOC_VERSIONS = [ + "dev", +]; +var DOCUMENTER_NEWEST = "dev"; +var DOCUMENTER_STABLE = "dev";